aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/access/common/heaptuple.c74
-rw-r--r--src/backend/access/common/printtup.c74
-rw-r--r--src/backend/access/common/scankey.c8
-rw-r--r--src/backend/access/common/tupdesc.c4
-rw-r--r--src/backend/access/gist/gist.c8
-rw-r--r--src/backend/access/gist/gistscan.c2
-rw-r--r--src/backend/access/hash/hash.c8
-rw-r--r--src/backend/access/hash/hashfunc.c6
-rw-r--r--src/backend/access/hash/hashpage.c6
-rw-r--r--src/backend/access/heap/heapam.c112
-rw-r--r--src/backend/access/heap/hio.c23
-rw-r--r--src/backend/access/index/genam.c4
-rw-r--r--src/backend/access/index/istrat.c14
-rw-r--r--src/backend/access/nbtree/nbtcompare.c4
-rw-r--r--src/backend/access/nbtree/nbtinsert.c41
-rw-r--r--src/backend/access/nbtree/nbtpage.c15
-rw-r--r--src/backend/access/nbtree/nbtree.c20
-rw-r--r--src/backend/access/nbtree/nbtscan.c18
-rw-r--r--src/backend/access/nbtree/nbtsearch.c33
-rw-r--r--src/backend/access/nbtree/nbtsort.c10
-rw-r--r--src/backend/access/rtree/rtree.c10
-rw-r--r--src/backend/access/rtree/rtscan.c4
-rw-r--r--src/backend/access/transam/transam.c14
-rw-r--r--src/backend/access/transam/varsup.c4
-rw-r--r--src/backend/access/transam/xact.c24
-rw-r--r--src/backend/access/transam/xid.c2
-rw-r--r--src/backend/bootstrap/bootstrap.c8
-rw-r--r--src/backend/catalog/catalog.c10
-rw-r--r--src/backend/catalog/heap.c115
-rw-r--r--src/backend/catalog/index.c54
-rw-r--r--src/backend/catalog/indexing.c36
-rw-r--r--src/backend/catalog/pg_operator.c84
-rw-r--r--src/backend/catalog/pg_proc.c14
-rw-r--r--src/backend/catalog/pg_type.c21
-rw-r--r--src/backend/commands/_deadcode/recipe.c40
-rw-r--r--src/backend/commands/_deadcode/version.c6
-rw-r--r--src/backend/commands/async.c196
-rw-r--r--src/backend/commands/cluster.c44
-rw-r--r--src/backend/commands/command.c26
-rw-r--r--src/backend/commands/copy.c198
-rw-r--r--src/backend/commands/creatinh.c38
-rw-r--r--src/backend/commands/dbcommands.c34
-rw-r--r--src/backend/commands/define.c6
-rw-r--r--src/backend/commands/explain.c48
-rw-r--r--src/backend/commands/indexcmds.c14
-rw-r--r--src/backend/commands/remove.c6
-rw-r--r--src/backend/commands/rename.c8
-rw-r--r--src/backend/commands/sequence.c20
-rw-r--r--src/backend/commands/trigger.c82
-rw-r--r--src/backend/commands/user.c88
-rw-r--r--src/backend/commands/vacuum.c398
-rw-r--r--src/backend/commands/variable.c60
-rw-r--r--src/backend/commands/view.c8
-rw-r--r--src/backend/executor/_deadcode/nodeTee.c19
-rw-r--r--src/backend/executor/execAmi.c4
-rw-r--r--src/backend/executor/execMain.c686
-rw-r--r--src/backend/executor/execQual.c296
-rw-r--r--src/backend/executor/execTuples.c4
-rw-r--r--src/backend/executor/execUtils.c45
-rw-r--r--src/backend/executor/functions.c8
-rw-r--r--src/backend/executor/nodeAgg.c89
-rw-r--r--src/backend/executor/nodeAppend.c4
-rw-r--r--src/backend/executor/nodeGroup.c6
-rw-r--r--src/backend/executor/nodeHash.c166
-rw-r--r--src/backend/executor/nodeHashjoin.c80
-rw-r--r--src/backend/executor/nodeIndexscan.c81
-rw-r--r--src/backend/executor/nodeMaterial.c12
-rw-r--r--src/backend/executor/nodeMergejoin.c10
-rw-r--r--src/backend/executor/nodeResult.c9
-rw-r--r--src/backend/executor/nodeSeqscan.c22
-rw-r--r--src/backend/executor/nodeSubplan.c19
-rw-r--r--src/backend/executor/spi.c64
-rw-r--r--src/backend/lib/fstack.c10
-rw-r--r--src/backend/lib/stringinfo.c26
-rw-r--r--src/backend/libpq/auth.c71
-rw-r--r--src/backend/libpq/be-dumpdata.c8
-rw-r--r--src/backend/libpq/be-fsstubs.c20
-rw-r--r--src/backend/libpq/crypt.c59
-rw-r--r--src/backend/libpq/hba.c153
-rw-r--r--src/backend/libpq/password.c16
-rw-r--r--src/backend/libpq/portal.c6
-rw-r--r--src/backend/libpq/portalbuf.c4
-rw-r--r--src/backend/libpq/pqcomm.c107
-rw-r--r--src/backend/libpq/pqformat.c46
-rw-r--r--src/backend/libpq/util.c4
-rw-r--r--src/backend/nodes/copyfuncs.c45
-rw-r--r--src/backend/nodes/equalfuncs.c48
-rw-r--r--src/backend/nodes/freefuncs.c41
-rw-r--r--src/backend/nodes/list.c9
-rw-r--r--src/backend/nodes/outfuncs.c503
-rw-r--r--src/backend/nodes/print.c10
-rw-r--r--src/backend/nodes/readfuncs.c61
-rw-r--r--src/backend/optimizer/geqo/geqo_eval.c46
-rw-r--r--src/backend/optimizer/geqo/geqo_main.c8
-rw-r--r--src/backend/optimizer/geqo/geqo_misc.c4
-rw-r--r--src/backend/optimizer/geqo/geqo_pool.c4
-rw-r--r--src/backend/optimizer/geqo/minspantree.c4
-rw-r--r--src/backend/optimizer/path/_deadcode/predmig.c32
-rw-r--r--src/backend/optimizer/path/_deadcode/xfunc.c80
-rw-r--r--src/backend/optimizer/path/allpaths.c24
-rw-r--r--src/backend/optimizer/path/clausesel.c6
-rw-r--r--src/backend/optimizer/path/costsize.c53
-rw-r--r--src/backend/optimizer/path/hashutils.c8
-rw-r--r--src/backend/optimizer/path/indxpath.c166
-rw-r--r--src/backend/optimizer/path/joinpath.c214
-rw-r--r--src/backend/optimizer/path/joinrels.c79
-rw-r--r--src/backend/optimizer/path/mergeutils.c19
-rw-r--r--src/backend/optimizer/path/orindxpath.c46
-rw-r--r--src/backend/optimizer/path/pathkeys.c83
-rw-r--r--src/backend/optimizer/path/prune.c13
-rw-r--r--src/backend/optimizer/plan/createplan.c157
-rw-r--r--src/backend/optimizer/plan/initsplan.c23
-rw-r--r--src/backend/optimizer/plan/planmain.c13
-rw-r--r--src/backend/optimizer/plan/planner.c355
-rw-r--r--src/backend/optimizer/plan/setrefs.c205
-rw-r--r--src/backend/optimizer/plan/subselect.c10
-rw-r--r--src/backend/optimizer/prep/prepkeyset.c180
-rw-r--r--src/backend/optimizer/prep/prepqual.c29
-rw-r--r--src/backend/optimizer/prep/preptlist.c33
-rw-r--r--src/backend/optimizer/prep/prepunion.c6
-rw-r--r--src/backend/optimizer/util/clauses.c34
-rw-r--r--src/backend/optimizer/util/indexnode.c4
-rw-r--r--src/backend/optimizer/util/joininfo.c8
-rw-r--r--src/backend/optimizer/util/keys.c36
-rw-r--r--src/backend/optimizer/util/ordering.c24
-rw-r--r--src/backend/optimizer/util/pathnode.c157
-rw-r--r--src/backend/optimizer/util/plancat.c6
-rw-r--r--src/backend/optimizer/util/relnode.c6
-rw-r--r--src/backend/optimizer/util/restrictinfo.c8
-rw-r--r--src/backend/optimizer/util/tlist.c44
-rw-r--r--src/backend/optimizer/util/var.c18
-rw-r--r--src/backend/parser/analyze.c293
-rw-r--r--src/backend/parser/parse_agg.c26
-rw-r--r--src/backend/parser/parse_clause.c138
-rw-r--r--src/backend/parser/parse_coerce.c24
-rw-r--r--src/backend/parser/parse_expr.c87
-rw-r--r--src/backend/parser/parse_func.c113
-rw-r--r--src/backend/parser/parse_oper.c22
-rw-r--r--src/backend/parser/parse_relation.c6
-rw-r--r--src/backend/parser/parse_target.c50
-rw-r--r--src/backend/parser/parse_type.c3
-rw-r--r--src/backend/parser/parser.c4
-rw-r--r--src/backend/parser/scansup.c8
-rw-r--r--src/backend/port/dynloader/freebsd.c2
-rw-r--r--src/backend/port/hpux/fixade.h6
-rw-r--r--src/backend/port/snprintf.c26
-rw-r--r--src/backend/postmaster/postmaster.c61
-rw-r--r--src/backend/regex/regcomp.c10
-rw-r--r--src/backend/regex/retest.c58
-rw-r--r--src/backend/rewrite/rewriteDefine.c42
-rw-r--r--src/backend/rewrite/rewriteHandler.c2273
-rw-r--r--src/backend/rewrite/rewriteManip.c445
-rw-r--r--src/backend/rewrite/rewriteRemove.c4
-rw-r--r--src/backend/storage/buffer/buf_init.c9
-rw-r--r--src/backend/storage/buffer/bufmgr.c74
-rw-r--r--src/backend/storage/buffer/freelist.c4
-rw-r--r--src/backend/storage/buffer/s_lock.c8
-rw-r--r--src/backend/storage/file/fd.c93
-rw-r--r--src/backend/storage/ipc/ipc.c5
-rw-r--r--src/backend/storage/ipc/ipci.c12
-rw-r--r--src/backend/storage/ipc/shmem.c46
-rw-r--r--src/backend/storage/ipc/sinval.c6
-rw-r--r--src/backend/storage/ipc/sinvaladt.c6
-rw-r--r--src/backend/storage/large_object/inv_api.c72
-rw-r--r--src/backend/storage/lmgr/lmgr.c18
-rw-r--r--src/backend/storage/lmgr/lock.c186
-rw-r--r--src/backend/storage/lmgr/multi.c3
-rw-r--r--src/backend/storage/lmgr/proc.c53
-rw-r--r--src/backend/storage/page/bufpage.c16
-rw-r--r--src/backend/storage/page/itemptr.c4
-rw-r--r--src/backend/storage/smgr/md.c16
-rw-r--r--src/backend/storage/smgr/mm.c10
-rw-r--r--src/backend/storage/smgr/smgr.c4
-rw-r--r--src/backend/tcop/dest.c42
-rw-r--r--src/backend/tcop/postgres.c102
-rw-r--r--src/backend/tcop/pquery.c6
-rw-r--r--src/backend/tcop/utility.c5
-rw-r--r--src/backend/tioga/Varray.c2
-rw-r--r--src/backend/tioga/tgRecipe.h5
-rw-r--r--src/backend/utils/adt/acl.c8
-rw-r--r--src/backend/utils/adt/arrayfuncs.c134
-rw-r--r--src/backend/utils/adt/cash.c6
-rw-r--r--src/backend/utils/adt/char.c8
-rw-r--r--src/backend/utils/adt/chunk.c12
-rw-r--r--src/backend/utils/adt/date.c3
-rw-r--r--src/backend/utils/adt/datetime.c18
-rw-r--r--src/backend/utils/adt/dt.c78
-rw-r--r--src/backend/utils/adt/float.c33
-rw-r--r--src/backend/utils/adt/inet_net_ntop.c23
-rw-r--r--src/backend/utils/adt/inet_net_pton.c61
-rw-r--r--src/backend/utils/adt/int8.c99
-rw-r--r--src/backend/utils/adt/like.c28
-rw-r--r--src/backend/utils/adt/mac.c228
-rw-r--r--src/backend/utils/adt/nabstime.c21
-rw-r--r--src/backend/utils/adt/name.c3
-rw-r--r--src/backend/utils/adt/network.c20
-rw-r--r--src/backend/utils/adt/not_in.c8
-rw-r--r--src/backend/utils/adt/numeric.c1046
-rw-r--r--src/backend/utils/adt/numutils.c10
-rw-r--r--src/backend/utils/adt/regproc.c19
-rw-r--r--src/backend/utils/adt/ruleutils.c165
-rw-r--r--src/backend/utils/adt/selfuncs.c4
-rw-r--r--src/backend/utils/adt/varchar.c35
-rw-r--r--src/backend/utils/adt/varlena.c25
-rw-r--r--src/backend/utils/cache/catcache.c5
-rw-r--r--src/backend/utils/cache/inval.c12
-rw-r--r--src/backend/utils/cache/rel.c6
-rw-r--r--src/backend/utils/cache/relcache.c39
-rw-r--r--src/backend/utils/cache/syscache.c22
-rw-r--r--src/backend/utils/cache/temprel.c34
-rw-r--r--src/backend/utils/error/elog.c24
-rw-r--r--src/backend/utils/error/exc.c4
-rw-r--r--src/backend/utils/error/excid.c14
-rw-r--r--src/backend/utils/error/format.c3
-rw-r--r--src/backend/utils/fmgr/dfmgr.c11
-rw-r--r--src/backend/utils/fmgr/fmgr.c38
-rw-r--r--src/backend/utils/hash/dynahash.c50
-rw-r--r--src/backend/utils/init/enbl.c4
-rw-r--r--src/backend/utils/init/findbe.c4
-rw-r--r--src/backend/utils/init/globals.c3
-rw-r--r--src/backend/utils/init/miscinit.c20
-rw-r--r--src/backend/utils/init/postinit.c6
-rw-r--r--src/backend/utils/mb/alt.c106
-rw-r--r--src/backend/utils/mb/big5.c614
-rw-r--r--src/backend/utils/mb/common.c5
-rw-r--r--src/backend/utils/mb/conv.c536
-rw-r--r--src/backend/utils/mb/iso.c106
-rw-r--r--src/backend/utils/mb/mbutils.c12
-rw-r--r--src/backend/utils/mb/variable.c10
-rw-r--r--src/backend/utils/mb/wchar.c56
-rw-r--r--src/backend/utils/mb/win.c106
-rw-r--r--src/backend/utils/misc/database.c4
-rw-r--r--src/backend/utils/misc/trace.c18
-rw-r--r--src/backend/utils/mmgr/aset.c98
-rw-r--r--src/backend/utils/mmgr/mcxt.c42
-rw-r--r--src/backend/utils/mmgr/oset.c24
-rw-r--r--src/backend/utils/mmgr/palloc.c5
-rw-r--r--src/backend/utils/mmgr/portalmem.c62
-rw-r--r--src/backend/utils/sort/psort.c43
-rw-r--r--src/backend/utils/time/tqual.c95
240 files changed, 8389 insertions, 7775 deletions
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index be725418021..2a07be49f8e 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.50 1999/03/14 20:17:20 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.51 1999/05/25 16:06:35 momjian Exp $
*
* NOTES
* The old interface functions have been converted to macros
@@ -124,7 +124,7 @@ DataFill(char *data,
*bitP |= bitmask;
}
- data = (char *)att_align((long)data, att[i]->attlen, att[i]->attalign);
+ data = (char *) att_align((long) data, att[i]->attlen, att[i]->attalign);
switch (att[i]->attlen)
{
case -1:
@@ -151,7 +151,7 @@ DataFill(char *data,
att[i]->attlen);
break;
}
- data = (char *)att_addlength((long)data, att[i]->attlen, value[i]);
+ data = (char *) att_addlength((long) data, att[i]->attlen, value[i]);
}
}
@@ -210,7 +210,7 @@ heap_attisnull(HeapTuple tup, int attnum)
int
heap_sysattrlen(AttrNumber attno)
{
- HeapTupleHeader f = NULL;
+ HeapTupleHeader f = NULL;
switch (attno)
{
@@ -301,6 +301,7 @@ heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
}
return (Datum) NULL;
}
+
#endif
/* ----------------
@@ -328,11 +329,11 @@ nocachegetattr(HeapTuple tuple,
TupleDesc tupleDesc,
bool *isnull)
{
- char *tp; /* ptr to att in tuple */
- HeapTupleHeader tup = tuple->t_data;
- bits8 *bp = tup->t_bits; /* ptr to att in tuple */
- Form_pg_attribute *att = tupleDesc->attrs;
- int slow = 0; /* do we have to walk nulls? */
+ char *tp; /* ptr to att in tuple */
+ HeapTupleHeader tup = tuple->t_data;
+ bits8 *bp = tup->t_bits; /* ptr to att in tuple */
+ Form_pg_attribute *att = tupleDesc->attrs;
+ int slow = 0; /* do we have to walk nulls? */
#if IN_MACRO
@@ -376,6 +377,7 @@ nocachegetattr(HeapTuple tuple,
}
else
{
+
/*
* there's a null somewhere in the tuple
*/
@@ -404,12 +406,13 @@ nocachegetattr(HeapTuple tuple,
int finalbit = attnum & 0x07;
/* check for nulls "before" final bit of last byte */
- if ((~ bp[byte]) & ((1 << finalbit) - 1))
+ if ((~bp[byte]) & ((1 << finalbit) - 1))
slow = 1;
else
{
/* check for nulls in any "earlier" bytes */
- int i;
+ int i;
+
for (i = 0; i < byte; i++)
{
if (bp[i] != 0xFF)
@@ -439,6 +442,7 @@ nocachegetattr(HeapTuple tuple,
else if (!HeapTupleAllFixed(tuple))
{
int j;
+
/*
* In for(), we make this <= and not < because we want to test
* if we can go past it in initializing offsets.
@@ -456,9 +460,9 @@ nocachegetattr(HeapTuple tuple,
/*
* If slow is zero, and we got here, we know that we have a tuple with
- * no nulls or varlenas before the target attribute.
- * If possible, we also want to initialize the remainder of the
- * attribute cached offset values.
+ * no nulls or varlenas before the target attribute. If possible, we
+ * also want to initialize the remainder of the attribute cached
+ * offset values.
*/
if (!slow)
{
@@ -570,7 +574,7 @@ heap_copytuple(HeapTuple tuple)
newTuple->t_len = tuple->t_len;
newTuple->t_self = tuple->t_self;
newTuple->t_data = (HeapTupleHeader) ((char *) newTuple + HEAPTUPLESIZE);
- memmove((char *) newTuple->t_data,
+ memmove((char *) newTuple->t_data,
(char *) tuple->t_data, (int) tuple->t_len);
return newTuple;
}
@@ -589,11 +593,11 @@ heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest)
dest->t_data = NULL;
return;
}
-
+
dest->t_len = src->t_len;
dest->t_self = src->t_self;
dest->t_data = (HeapTupleHeader) palloc(src->t_len);
- memmove((char *) dest->t_data,
+ memmove((char *) dest->t_data,
(char *) src->t_data, (int) src->t_len);
return;
}
@@ -657,14 +661,14 @@ heap_formtuple(TupleDesc tupleDescriptor,
Datum *value,
char *nulls)
{
- HeapTuple tuple; /* return tuple */
- HeapTupleHeader td; /* tuple data */
- int bitmaplen;
- long len;
- int hoff;
- bool hasnull = false;
- int i;
- int numberOfAttributes = tupleDescriptor->natts;
+ HeapTuple tuple; /* return tuple */
+ HeapTupleHeader td; /* tuple data */
+ int bitmaplen;
+ long len;
+ int hoff;
+ bool hasnull = false;
+ int i;
+ int numberOfAttributes = tupleDescriptor->natts;
len = offsetof(HeapTupleHeaderData, t_bits);
@@ -760,9 +764,9 @@ heap_modifytuple(HeapTuple tuple,
if (repl[attoff] == ' ')
{
value[attoff] = heap_getattr(tuple,
- AttrOffsetGetAttrNumber(attoff),
- RelationGetDescr(relation),
- &isNull);
+ AttrOffsetGetAttrNumber(attoff),
+ RelationGetDescr(relation),
+ &isNull);
nulls[attoff] = (isNull) ? 'n' : ' ';
}
@@ -790,12 +794,12 @@ heap_modifytuple(HeapTuple tuple,
infomask = newTuple->t_data->t_infomask;
memmove((char *) &newTuple->t_data->t_oid, /* XXX */
(char *) &tuple->t_data->t_oid,
- ((char *) &tuple->t_data->t_hoff -
- (char *) &tuple->t_data->t_oid)); /* XXX */
+ ((char *) &tuple->t_data->t_hoff -
+ (char *) &tuple->t_data->t_oid)); /* XXX */
newTuple->t_data->t_infomask = infomask;
newTuple->t_data->t_natts = numberOfAttributes;
newTuple->t_self = tuple->t_self;
-
+
return newTuple;
}
@@ -809,10 +813,10 @@ heap_addheader(uint32 natts, /* max domain index */
int structlen, /* its length */
char *structure) /* pointer to the struct */
{
- HeapTuple tuple;
- HeapTupleHeader td; /* tuple data */
- long len;
- int hoff;
+ HeapTuple tuple;
+ HeapTupleHeader td; /* tuple data */
+ long len;
+ int hoff;
AssertArg(natts > 0);
diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c
index 7615c79a748..0a2eee932f5 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.45 1999/05/10 00:44:50 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.46 1999/05/25 16:06:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -25,9 +25,9 @@
#include "libpq/pqformat.h"
#include "utils/syscache.h"
-static void printtup_setup(DestReceiver* self, TupleDesc typeinfo);
-static void printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self);
-static void printtup_cleanup(DestReceiver* self);
+static void printtup_setup(DestReceiver * self, TupleDesc typeinfo);
+static void printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver * self);
+static void printtup_cleanup(DestReceiver * self);
/* ----------------------------------------------------------------
* printtup / debugtup support
@@ -43,7 +43,7 @@ static void printtup_cleanup(DestReceiver* self);
* ----------------
*/
int
-getTypeOutAndElem(Oid type, Oid* typOutput, Oid* typElem)
+getTypeOutAndElem(Oid type, Oid *typOutput, Oid *typElem)
{
HeapTuple typeTuple;
@@ -54,6 +54,7 @@ getTypeOutAndElem(Oid type, Oid* typOutput, Oid* typElem)
if (HeapTupleIsValid(typeTuple))
{
Form_pg_type pt = (Form_pg_type) GETSTRUCT(typeTuple);
+
*typOutput = (Oid) pt->typoutput;
*typElem = (Oid) pt->typelem;
return OidIsValid(*typOutput);
@@ -70,27 +71,29 @@ getTypeOutAndElem(Oid type, Oid* typOutput, Oid* typElem)
* Private state for a printtup destination object
* ----------------
*/
-typedef struct { /* Per-attribute information */
+typedef struct
+{ /* Per-attribute information */
Oid typoutput; /* Oid for the attribute's type output fn */
Oid typelem; /* typelem value to pass to the output fn */
FmgrInfo finfo; /* Precomputed call info for typoutput */
-} PrinttupAttrInfo;
+} PrinttupAttrInfo;
-typedef struct {
- DestReceiver pub; /* publicly-known function pointers */
- TupleDesc attrinfo; /* The attr info we are set up for */
- int nattrs;
- PrinttupAttrInfo *myinfo; /* Cached info about each attr */
-} DR_printtup;
+typedef struct
+{
+ DestReceiver pub; /* publicly-known function pointers */
+ TupleDesc attrinfo; /* The attr info we are set up for */
+ int nattrs;
+ PrinttupAttrInfo *myinfo; /* Cached info about each attr */
+} DR_printtup;
/* ----------------
* Initialize: create a DestReceiver for printtup
* ----------------
*/
-DestReceiver*
+DestReceiver *
printtup_create_DR()
{
- DR_printtup* self = (DR_printtup*) palloc(sizeof(DR_printtup));
+ DR_printtup *self = (DR_printtup *) palloc(sizeof(DR_printtup));
self->pub.receiveTuple = printtup;
self->pub.setup = printtup_setup;
@@ -100,42 +103,43 @@ printtup_create_DR()
self->nattrs = 0;
self->myinfo = NULL;
- return (DestReceiver*) self;
+ return (DestReceiver *) self;
}
static void
-printtup_setup(DestReceiver* self, TupleDesc typeinfo)
+printtup_setup(DestReceiver * self, TupleDesc typeinfo)
{
/* ----------------
* We could set up the derived attr info at this time, but we postpone it
* until the first call of printtup, for 3 reasons:
* 1. We don't waste time (compared to the old way) if there are no
- * tuples at all to output.
+ * tuples at all to output.
* 2. Checking in printtup allows us to handle the case that the tuples
- * change type midway through (although this probably can't happen in
- * the current executor).
+ * change type midway through (although this probably can't happen in
+ * the current executor).
* 3. Right now, ExecutorRun passes a NULL for typeinfo anyway :-(
* ----------------
*/
}
static void
-printtup_prepare_info(DR_printtup* myState, TupleDesc typeinfo, int numAttrs)
+printtup_prepare_info(DR_printtup * myState, TupleDesc typeinfo, int numAttrs)
{
- int i;
+ int i;
if (myState->myinfo)
- pfree(myState->myinfo); /* get rid of any old data */
+ pfree(myState->myinfo); /* get rid of any old data */
myState->myinfo = NULL;
myState->attrinfo = typeinfo;
myState->nattrs = numAttrs;
if (numAttrs <= 0)
return;
- myState->myinfo = (PrinttupAttrInfo*)
+ myState->myinfo = (PrinttupAttrInfo *)
palloc(numAttrs * sizeof(PrinttupAttrInfo));
for (i = 0; i < numAttrs; i++)
{
- PrinttupAttrInfo* thisState = myState->myinfo + i;
+ PrinttupAttrInfo *thisState = myState->myinfo + i;
+
if (getTypeOutAndElem((Oid) typeinfo->attrs[i]->atttypid,
&thisState->typoutput, &thisState->typelem))
fmgr_info(thisState->typoutput, &thisState->finfo);
@@ -147,9 +151,9 @@ printtup_prepare_info(DR_printtup* myState, TupleDesc typeinfo, int numAttrs)
* ----------------
*/
static void
-printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
+printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver * self)
{
- DR_printtup *myState = (DR_printtup*) self;
+ DR_printtup *myState = (DR_printtup *) self;
StringInfoData buf;
int i,
j,
@@ -178,7 +182,7 @@ printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
k = 1 << 7;
for (i = 0; i < tuple->t_data->t_natts; ++i)
{
- if (! heap_attisnull(tuple, i + 1))
+ if (!heap_attisnull(tuple, i + 1))
j |= k; /* set bit if not null */
k >>= 1;
if (k == 0) /* end of byte? */
@@ -197,7 +201,8 @@ printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
*/
for (i = 0; i < tuple->t_data->t_natts; ++i)
{
- PrinttupAttrInfo* thisState = myState->myinfo + i;
+ PrinttupAttrInfo *thisState = myState->myinfo + i;
+
attr = heap_getattr(tuple, i + 1, typeinfo, &isnull);
if (isnull)
continue;
@@ -223,9 +228,10 @@ printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
* ----------------
*/
static void
-printtup_cleanup(DestReceiver* self)
+printtup_cleanup(DestReceiver * self)
{
- DR_printtup* myState = (DR_printtup*) self;
+ DR_printtup *myState = (DR_printtup *) self;
+
if (myState->myinfo)
pfree(myState->myinfo);
pfree(myState);
@@ -274,7 +280,7 @@ showatts(char *name, TupleDesc tupleDesc)
* ----------------
*/
void
-debugtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
+debugtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver * self)
{
int i;
Datum attr;
@@ -310,7 +316,7 @@ debugtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
* ----------------
*/
void
-printtup_internal(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
+printtup_internal(HeapTuple tuple, TupleDesc typeinfo, DestReceiver * self)
{
StringInfoData buf;
int i,
@@ -334,7 +340,7 @@ printtup_internal(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
k = 1 << 7;
for (i = 0; i < tuple->t_data->t_natts; ++i)
{
- if (! heap_attisnull(tuple, i + 1))
+ if (!heap_attisnull(tuple, i + 1))
j |= k; /* set bit if not null */
k >>= 1;
if (k == 0) /* end of byte? */
diff --git a/src/backend/access/common/scankey.c b/src/backend/access/common/scankey.c
index bd3e047e6a7..7dd9b6a9206 100644
--- a/src/backend/access/common/scankey.c
+++ b/src/backend/access/common/scankey.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/common/scankey.c,v 1.13 1999/02/13 23:14:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/common/scankey.c,v 1.14 1999/05/25 16:06:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,7 +18,7 @@
#include <access/skey.h>
/*
- * ScanKeyEntryIsLegal
+ * ScanKeyEntryIsLegal
* True iff the scan key entry is legal.
*/
#define ScanKeyEntryIsLegal(entry) \
@@ -28,7 +28,7 @@
)
/*
- * ScanKeyEntrySetIllegal
+ * ScanKeyEntrySetIllegal
* Marks a scan key entry as illegal.
*/
void
@@ -43,7 +43,7 @@ ScanKeyEntrySetIllegal(ScanKey entry)
}
/*
- * ScanKeyEntryInitialize
+ * ScanKeyEntryInitialize
* Initializes an scan key entry.
*
* Note:
diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c
index 656b997404d..71e8db45a43 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.48 1999/02/13 23:14:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.49 1999/05/25 16:06:42 momjian Exp $
*
* NOTES
* some of the executor utility code such as "ExecTypeFromTL" should be
@@ -487,7 +487,7 @@ BuildDescForRelation(List *schema, char *relname)
{
/* array of XXX is _XXX */
snprintf(typename, NAMEDATALEN,
- "_%.*s", NAMEDATALEN - 2, entry->typename->name);
+ "_%.*s", NAMEDATALEN - 2, entry->typename->name);
attdim = length(arry);
}
else
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index 1342bc6aec8..06321990a8d 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -344,7 +344,7 @@ gistinsert(Relation r, Datum *datum, char *nulls, ItemPointer ht_ctid, Relation
/*
* Notes in ExecUtils:ExecOpenIndices()
*
- RelationSetLockForWrite(r);
+ * RelationSetLockForWrite(r);
*/
res = gistdoinsert(r, itup, &giststate);
@@ -1106,10 +1106,10 @@ gistdelete(Relation r, ItemPointer tid)
Page page;
/*
- * Notes in ExecUtils:ExecOpenIndices()
- * Also note that only vacuum deletes index tuples now...
+ * Notes in ExecUtils:ExecOpenIndices() Also note that only vacuum
+ * deletes index tuples now...
*
- RelationSetLockForWrite(r);
+ * RelationSetLockForWrite(r);
*/
blkno = ItemPointerGetBlockNumber(tid);
diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
index 92353d71b2b..d26387d8280 100644
--- a/src/backend/access/gist/gistscan.c
+++ b/src/backend/access/gist/gistscan.c
@@ -68,7 +68,7 @@ gistbeginscan(Relation r,
/*
* Let index_beginscan does its work...
*
- RelationSetLockForRead(r);
+ * RelationSetLockForRead(r);
*/
s = RelationGetIndexScan(r, fromEnd, nkeys, key);
diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c
index 122c9ad3797..65d04658c50 100644
--- a/src/backend/access/hash/hash.c
+++ b/src/backend/access/hash/hash.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.25 1999/02/13 23:14:17 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.26 1999/05/25 16:06:54 momjian Exp $
*
* NOTES
* This file contains only the public interface routines.
@@ -485,9 +485,9 @@ hashrestrpos(IndexScanDesc scan)
/* bump lock on currentMarkData and copy to currentItemData */
if (ItemPointerIsValid(&(scan->currentMarkData)))
{
- so->hashso_curbuf =_hash_getbuf(scan->relation,
- BufferGetBlockNumber(so->hashso_mrkbuf),
- HASH_READ);
+ so->hashso_curbuf = _hash_getbuf(scan->relation,
+ BufferGetBlockNumber(so->hashso_mrkbuf),
+ HASH_READ);
scan->currentItemData = scan->currentMarkData;
}
diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c
index c8be6dc60ed..f5605a3f109 100644
--- a/src/backend/access/hash/hashfunc.c
+++ b/src/backend/access/hash/hashfunc.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/hash/hashfunc.c,v 1.16 1999/03/14 16:27:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/hash/hashfunc.c,v 1.17 1999/05/25 16:06:56 momjian Exp $
*
* NOTES
* These functions are stored in pg_amproc. For each operator class
@@ -34,9 +34,9 @@ hashint4(uint32 key)
}
uint32
-hashint8(int64 *key)
+hashint8(int64 * key)
{
- return ~((uint32)*key);
+ return ~((uint32) *key);
}
/* Hash function from Chris Torek. */
diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c
index 7c81e7ab5c1..bcda5f85e73 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.19 1999/02/13 23:14:20 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/hash/hashpage.c,v 1.20 1999/05/25 16:06:58 momjian Exp $
*
* NOTES
* Postgres hash pages look like ordinary relation pages. The opaque
@@ -321,7 +321,7 @@ _hash_setpagelock(Relation rel,
{
switch (access)
{
- case HASH_WRITE:
+ case HASH_WRITE:
LockPage(rel, blkno, ExclusiveLock);
break;
case HASH_READ:
@@ -345,7 +345,7 @@ _hash_unsetpagelock(Relation rel,
{
switch (access)
{
- case HASH_WRITE:
+ case HASH_WRITE:
UnlockPage(rel, blkno, ExclusiveLock);
break;
case HASH_READ:
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 63fd52d124f..1ea78ec8633 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.42 1999/03/28 20:31:56 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.43 1999/05/25 16:07:04 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -117,7 +117,7 @@ initscan(HeapScanDesc scan,
* relation is empty
* ----------------
*/
- scan->rs_ntup.t_data = scan->rs_ctup.t_data =
+ scan->rs_ntup.t_data = scan->rs_ctup.t_data =
scan->rs_ptup.t_data = NULL;
scan->rs_nbuf = scan->rs_cbuf = scan->rs_pbuf = InvalidBuffer;
}
@@ -216,15 +216,15 @@ heapgettup(Relation relation,
int nkeys,
ScanKey key)
{
- ItemId lpp;
- Page dp;
- int page;
- int pages;
- int lines;
- OffsetNumber lineoff;
- int linesleft;
- ItemPointer tid = (tuple->t_data == NULL) ?
- (ItemPointer) NULL : &(tuple->t_self);
+ ItemId lpp;
+ Page dp;
+ int page;
+ int pages;
+ int lines;
+ OffsetNumber lineoff;
+ int linesleft;
+ ItemPointer tid = (tuple->t_data == NULL) ?
+ (ItemPointer) NULL : &(tuple->t_self);
/* ----------------
* increment access statistics
@@ -290,8 +290,8 @@ heapgettup(Relation relation,
return;
}
*buffer = RelationGetBufferWithBuffer(relation,
- ItemPointerGetBlockNumber(tid),
- *buffer);
+ ItemPointerGetBlockNumber(tid),
+ *buffer);
if (!BufferIsValid(*buffer))
elog(ERROR, "heapgettup: failed ReadBuffer");
@@ -439,7 +439,8 @@ heapgettup(Relation relation,
}
else
{
- ++lpp; /* move forward in this page's ItemId array */
+ ++lpp; /* move forward in this page's ItemId
+ * array */
++lineoff;
}
}
@@ -816,6 +817,7 @@ heap_getnext(HeapScanDesc scandesc, int backw)
}
else
{ /* NONTUP */
+
/*
* Don't release scan->rs_cbuf at this point, because
* heapgettup doesn't increase PrivateRefCount if it is
@@ -897,6 +899,7 @@ heap_getnext(HeapScanDesc scandesc, int backw)
}
else
{ /* NONTUP */
+
/*
* Don't release scan->rs_cbuf at this point, because
* heapgettup doesn't increase PrivateRefCount if it is
@@ -966,11 +969,11 @@ heap_fetch(Relation relation,
HeapTuple tuple,
Buffer *userbuf)
{
- ItemId lp;
- Buffer buffer;
- PageHeader dp;
- ItemPointer tid = &(tuple->t_self);
- OffsetNumber offnum;
+ ItemId lp;
+ Buffer buffer;
+ PageHeader dp;
+ ItemPointer tid = &(tuple->t_self);
+ OffsetNumber offnum;
AssertMacro(PointerIsValid(userbuf)); /* see comments above */
@@ -1093,9 +1096,7 @@ heap_insert(Relation relation, HeapTuple tup)
RelationPutHeapTupleAtEnd(relation, tup);
if (IsSystemRelationName(RelationGetRelationName(relation)->data))
- {
RelationInvalidateHeapTuple(relation, tup);
- }
return tup->t_data->t_oid;
}
@@ -1106,11 +1107,11 @@ heap_insert(Relation relation, HeapTuple tup)
int
heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid)
{
- ItemId lp;
- HeapTupleData tp;
- PageHeader dp;
- Buffer buffer;
- int result;
+ ItemId lp;
+ HeapTupleData tp;
+ PageHeader dp;
+ Buffer buffer;
+ int result;
/* increment access statistics */
IncrHeapAccessStat(local_delete);
@@ -1130,10 +1131,10 @@ heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid)
tp.t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp);
tp.t_len = ItemIdGetLength(lp);
tp.t_self = *tid;
-
+
l1:
result = HeapTupleSatisfiesUpdate(&tp);
-
+
if (result == HeapTupleInvisible)
{
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
@@ -1142,7 +1143,7 @@ l1:
}
else if (result == HeapTupleBeingUpdated)
{
- TransactionId xwait = tp.t_data->t_xmax;
+ TransactionId xwait = tp.t_data->t_xmax;
/* sleep untill concurrent transaction ends */
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
@@ -1177,8 +1178,8 @@ l1:
/* store transaction information of xact deleting the tuple */
TransactionIdStore(GetCurrentTransactionId(), &(tp.t_data->t_xmax));
tp.t_data->t_cmax = GetCurrentCommandId();
- tp.t_data->t_infomask &= ~(HEAP_XMAX_COMMITTED |
- HEAP_XMAX_INVALID | HEAP_MARKED_FOR_UPDATE);
+ tp.t_data->t_infomask &= ~(HEAP_XMAX_COMMITTED |
+ HEAP_XMAX_INVALID | HEAP_MARKED_FOR_UPDATE);
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
@@ -1194,14 +1195,14 @@ l1:
* heap_replace - replace a tuple
*/
int
-heap_replace(Relation relation, ItemPointer otid, HeapTuple newtup,
- ItemPointer ctid)
+heap_replace(Relation relation, ItemPointer otid, HeapTuple newtup,
+ ItemPointer ctid)
{
- ItemId lp;
- HeapTupleData oldtup;
- PageHeader dp;
- Buffer buffer;
- int result;
+ ItemId lp;
+ HeapTupleData oldtup;
+ PageHeader dp;
+ Buffer buffer;
+ int result;
/* increment access statistics */
IncrHeapAccessStat(local_replace);
@@ -1223,7 +1224,7 @@ heap_replace(Relation relation, ItemPointer otid, HeapTuple newtup,
l2:
result = HeapTupleSatisfiesUpdate(&oldtup);
-
+
if (result == HeapTupleInvisible)
{
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
@@ -1232,7 +1233,7 @@ l2:
}
else if (result == HeapTupleBeingUpdated)
{
- TransactionId xwait = oldtup.t_data->t_xmax;
+ TransactionId xwait = oldtup.t_data->t_xmax;
/* sleep untill concurrent transaction ends */
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
@@ -1275,19 +1276,20 @@ l2:
/* logically delete old item */
TransactionIdStore(GetCurrentTransactionId(), &(oldtup.t_data->t_xmax));
oldtup.t_data->t_cmax = GetCurrentCommandId();
- oldtup.t_data->t_infomask &= ~(HEAP_XMAX_COMMITTED |
- HEAP_XMAX_INVALID | HEAP_MARKED_FOR_UPDATE);
+ oldtup.t_data->t_infomask &= ~(HEAP_XMAX_COMMITTED |
+ HEAP_XMAX_INVALID | HEAP_MARKED_FOR_UPDATE);
/* insert new item */
if ((unsigned) DOUBLEALIGN(newtup->t_len) <= PageGetFreeSpace((Page) dp))
RelationPutHeapTuple(relation, buffer, newtup);
else
{
+
/*
- * New item won't fit on same page as old item, have to look
- * for a new place to put it. Note that we have to unlock
- * current buffer context - not good but RelationPutHeapTupleAtEnd
- * uses extend lock.
+ * New item won't fit on same page as old item, have to look for a
+ * new place to put it. Note that we have to unlock current buffer
+ * context - not good but RelationPutHeapTupleAtEnd uses extend
+ * lock.
*/
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
RelationPutHeapTupleAtEnd(relation, newtup);
@@ -1295,8 +1297,8 @@ l2:
}
/*
- * New item in place, now record address of new tuple in
- * t_ctid of old one.
+ * New item in place, now record address of new tuple in t_ctid of old
+ * one.
*/
oldtup.t_data->t_ctid = newtup->t_self;
@@ -1316,10 +1318,10 @@ l2:
int
heap_mark4update(Relation relation, HeapTuple tuple, Buffer *buffer)
{
- ItemPointer tid = &(tuple->t_self);
- ItemId lp;
- PageHeader dp;
- int result;
+ ItemPointer tid = &(tuple->t_self);
+ ItemId lp;
+ PageHeader dp;
+ int result;
/* increment access statistics */
IncrHeapAccessStat(local_mark4update);
@@ -1336,10 +1338,10 @@ heap_mark4update(Relation relation, HeapTuple tuple, Buffer *buffer)
lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid));
tuple->t_data = (HeapTupleHeader) PageGetItem((Page) dp, lp);
tuple->t_len = ItemIdGetLength(lp);
-
+
l3:
result = HeapTupleSatisfiesUpdate(tuple);
-
+
if (result == HeapTupleInvisible)
{
LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
@@ -1348,7 +1350,7 @@ l3:
}
else if (result == HeapTupleBeingUpdated)
{
- TransactionId xwait = tuple->t_data->t_xmax;
+ TransactionId xwait = tuple->t_data->t_xmax;
/* sleep untill concurrent transaction ends */
LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
diff --git a/src/backend/access/heap/hio.c b/src/backend/access/heap/hio.c
index f991b206d44..682c072c199 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.19 1999/05/07 01:22:53 vadim Exp $
+ * $Id: hio.c,v 1.20 1999/05/25 16:07:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -39,11 +39,11 @@ RelationPutHeapTuple(Relation relation,
Buffer buffer,
HeapTuple tuple)
{
- Page pageHeader;
- OffsetNumber offnum;
- unsigned int len;
- ItemId itemId;
- Item item;
+ Page pageHeader;
+ OffsetNumber offnum;
+ unsigned int len;
+ ItemId itemId;
+ Item item;
/* ----------------
* increment access statistics
@@ -62,13 +62,13 @@ RelationPutHeapTuple(Relation relation,
itemId = PageGetItemId((Page) pageHeader, offnum);
item = PageGetItem((Page) pageHeader, itemId);
- ItemPointerSet(&((HeapTupleHeader) item)->t_ctid,
- BufferGetBlockNumber(buffer), offnum);
+ ItemPointerSet(&((HeapTupleHeader) item)->t_ctid,
+ BufferGetBlockNumber(buffer), offnum);
/*
* Let the caller do this!
*
- WriteBuffer(buffer);
+ * WriteBuffer(buffer);
*/
/* return an accurate tuple */
@@ -111,8 +111,8 @@ RelationPutHeapTupleAtEnd(Relation relation, HeapTuple tuple)
Item item;
/*
- * Lock relation for extention. We can use LockPage here as long as
- * in all other places we use page-level locking for indices only.
+ * Lock relation for extention. We can use LockPage here as long as in
+ * all other places we use page-level locking for indices only.
* Alternatevely, we could define pseudo-table as we do for
* transactions with XactLockTable.
*/
@@ -132,6 +132,7 @@ RelationPutHeapTupleAtEnd(Relation relation, HeapTuple tuple)
{
buffer = ReadBuffer(relation, lastblock);
pageHeader = (Page) BufferGetPage(buffer);
+
/*
* There was IF instead of ASSERT here ?!
*/
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c
index 5752f2cf443..70b9ae2a4b0 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.16 1999/02/13 23:14:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/index/genam.c,v 1.17 1999/05/25 16:07:12 momjian Exp $
*
* NOTES
* many of the old access method routines have been turned into
@@ -270,5 +270,5 @@ IndexScanRestorePosition(IndexScanDesc scan)
scan->flags = 0x0; /* XXX should have a symbolic name */
}
-#endif
+#endif
diff --git a/src/backend/access/index/istrat.c b/src/backend/access/index/istrat.c
index e0b4e61a15b..61cbe560656 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.31 1999/02/13 23:14:30 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.32 1999/05/25 16:07:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -57,7 +57,7 @@ static bool StrategyTermIsValid(StrategyTerm term,
*/
/*
- * StrategyMapGetScanKeyEntry
+ * StrategyMapGetScanKeyEntry
* Returns a scan key entry of a index strategy mapping member.
*
* Note:
@@ -75,7 +75,7 @@ StrategyMapGetScanKeyEntry(StrategyMap map,
}
/*
- * IndexStrategyGetStrategyMap
+ * IndexStrategyGetStrategyMap
* Returns an index strategy mapping of an index strategy.
*
* Note:
@@ -97,7 +97,7 @@ IndexStrategyGetStrategyMap(IndexStrategy indexStrategy,
}
/*
- * AttributeNumberGetIndexStrategySize
+ * AttributeNumberGetIndexStrategySize
* Computes the size of an index strategy.
*/
Size
@@ -294,8 +294,8 @@ RelationGetStrategy(Relation relation,
Assert(RegProcedureIsValid(procedure));
strategyMap = IndexStrategyGetStrategyMap(RelationGetIndexStrategy(relation),
- evaluation->maxStrategy,
- attributeNumber);
+ evaluation->maxStrategy,
+ attributeNumber);
/* get a strategy number for the procedure ignoring flags for now */
for (index = 0; index < evaluation->maxStrategy; index += 1)
@@ -526,7 +526,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation,
/*
- * IndexSupportInitialize
+ * IndexSupportInitialize
* Initializes an index strategy and associated support procedures.
*/
void
diff --git a/src/backend/access/nbtree/nbtcompare.c b/src/backend/access/nbtree/nbtcompare.c
index 127f2b03576..796087f812f 100644
--- a/src/backend/access/nbtree/nbtcompare.c
+++ b/src/backend/access/nbtree/nbtcompare.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.22 1999/03/14 05:08:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.23 1999/05/25 16:07:21 momjian Exp $
*
* NOTES
* These functions are stored in pg_amproc. For each operator class
@@ -40,7 +40,7 @@ btint4cmp(int32 a, int32 b)
}
int32
-btint8cmp(int64 *a, int64 *b)
+btint8cmp(int64 * a, int64 * b)
{
if (*a > *b)
return 1;
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index 265a658363a..3cc67661cd2 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.39 1999/05/01 16:09:45 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.40 1999/05/25 16:07:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -99,13 +99,13 @@ l1:
/* key on the page before trying to compare it */
if (!PageIsEmpty(page) && offset <= maxoff)
{
- TupleDesc itupdesc;
- BTItem cbti;
- HeapTupleData htup;
- BTPageOpaque opaque;
- Buffer nbuf;
- BlockNumber blkno;
- bool chtup = true;
+ TupleDesc itupdesc;
+ BTItem cbti;
+ HeapTupleData htup;
+ BTPageOpaque opaque;
+ Buffer nbuf;
+ BlockNumber blkno;
+ bool chtup = true;
itupdesc = RelationGetDescr(rel);
nbuf = InvalidBuffer;
@@ -122,15 +122,16 @@ l1:
*/
while (_bt_isequal(itupdesc, page, offset, natts, itup_scankey))
{ /* they're equal */
+
/*
- * Have to check is inserted heap tuple deleted one
- * (i.e. just moved to another place by vacuum)!
+ * Have to check is inserted heap tuple deleted one (i.e.
+ * just moved to another place by vacuum)!
*/
if (chtup)
{
htup.t_self = btitem->bti_itup.t_tid;
heap_fetch(heapRel, SnapshotDirty, &htup, &buffer);
- if (htup.t_data == NULL) /* YES! */
+ if (htup.t_data == NULL) /* YES! */
break;
/* Live tuple was inserted */
ReleaseBuffer(buffer);
@@ -139,11 +140,11 @@ l1:
cbti = (BTItem) PageGetItem(page, PageGetItemId(page, offset));
htup.t_self = cbti->bti_itup.t_tid;
heap_fetch(heapRel, SnapshotDirty, &htup, &buffer);
- if (htup.t_data != NULL) /* it is a duplicate */
+ if (htup.t_data != NULL) /* it is a duplicate */
{
- TransactionId xwait =
- (TransactionIdIsValid(SnapshotDirty->xmin)) ?
- SnapshotDirty->xmin : SnapshotDirty->xmax;
+ TransactionId xwait =
+ (TransactionIdIsValid(SnapshotDirty->xmin)) ?
+ SnapshotDirty->xmin : SnapshotDirty->xmax;
/*
* If this tuple is being updated by other transaction
@@ -156,7 +157,7 @@ l1:
_bt_relbuf(rel, nbuf, BT_READ);
_bt_relbuf(rel, buf, BT_WRITE);
XactLockTableWait(xwait);
- goto l1; /* continue from the begin */
+ goto l1;/* continue from the begin */
}
elog(ERROR, "Cannot insert a duplicate key into a unique index");
}
@@ -571,10 +572,10 @@ _bt_insertonpg(Relation rel,
* reasoning).
*/
-l_spl:;
+l_spl: ;
if (stack == (BTStack) NULL)
{
- if (!is_root) /* if this page was not root page */
+ if (!is_root) /* if this page was not root page */
{
elog(DEBUG, "btree: concurrent ROOT page split");
stack = (BTStack) palloc(sizeof(BTStackData));
@@ -1144,8 +1145,8 @@ _bt_newroot(Relation rel, Buffer lbuf, Buffer rbuf)
lpage = BufferGetPage(lbuf);
rpage = BufferGetPage(rbuf);
- ((BTPageOpaque) PageGetSpecialPointer(lpage))->btpo_parent =
- ((BTPageOpaque) PageGetSpecialPointer(rpage))->btpo_parent =
+ ((BTPageOpaque) PageGetSpecialPointer(lpage))->btpo_parent =
+ ((BTPageOpaque) PageGetSpecialPointer(rpage))->btpo_parent =
rootbknum;
/*
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index daff4e6bdd4..5a936160549 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.20 1999/04/22 08:19:59 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.21 1999/05/25 16:07:26 momjian Exp $
*
* NOTES
* Postgres btree pages look like ordinary relation pages. The opaque
@@ -421,7 +421,7 @@ _bt_pageinit(Page page, Size size)
MemSet(page, 0, size);
PageInit(page, size, sizeof(BTPageOpaqueData));
- ((BTPageOpaque) PageGetSpecialPointer(page))->btpo_parent =
+ ((BTPageOpaque) PageGetSpecialPointer(page))->btpo_parent =
InvalidBlockNumber;
}
@@ -494,17 +494,16 @@ _bt_getstackbuf(Relation rel, BTStack stack, int access)
opaque = (BTPageOpaque) PageGetSpecialPointer(page);
maxoff = PageGetMaxOffsetNumber(page);
- if (stack->bts_offset == InvalidOffsetNumber ||
+ if (stack->bts_offset == InvalidOffsetNumber ||
maxoff >= stack->bts_offset)
{
+
/*
- * _bt_insertonpg set bts_offset to InvalidOffsetNumber
- * in the case of concurrent ROOT page split
+ * _bt_insertonpg set bts_offset to InvalidOffsetNumber in the
+ * case of concurrent ROOT page split
*/
if (stack->bts_offset == InvalidOffsetNumber)
- {
i = P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY;
- }
else
{
itemid = PageGetItemId(page, stack->bts_offset);
@@ -524,7 +523,7 @@ _bt_getstackbuf(Relation rel, BTStack stack, int access)
}
/* if the item has just moved right on this page, we're done */
- for ( ;
+ for (;
i <= maxoff;
i = OffsetNumberNext(i))
{
diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index 2ded78b1a67..b45d189a855 100644
--- a/src/backend/access/nbtree/nbtree.c
+++ b/src/backend/access/nbtree/nbtree.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.37 1999/03/28 20:31:58 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.38 1999/05/25 16:07:27 momjian Exp $
*
* NOTES
* This file contains only the public interface routines.
@@ -367,7 +367,7 @@ btinsert(Relation rel, Datum *datum, char *nulls, ItemPointer ht_ctid, Relation
btitem = _bt_formitem(itup);
res = _bt_doinsert(rel, btitem,
- IndexIsUnique(RelationGetRelid(rel)), heapRel);
+ IndexIsUnique(RelationGetRelid(rel)), heapRel);
pfree(btitem);
pfree(itup);
@@ -391,9 +391,10 @@ btgettuple(IndexScanDesc scan, ScanDirection dir)
if (ItemPointerIsValid(&(scan->currentItemData)))
{
+
/*
- * Restore scan position using heap TID returned
- * by previous call to btgettuple().
+ * Restore scan position using heap TID returned by previous call
+ * to btgettuple().
*/
_bt_restscan(scan);
res = _bt_next(scan, dir);
@@ -623,16 +624,15 @@ _bt_restscan(IndexScanDesc scan)
BlockNumber blkno;
/*
- * We use this as flag when first index tuple on page
- * is deleted but we do not move left (this would
- * slowdown vacuum) - so we set current->ip_posid
- * before first index tuple on the current page
+ * We use this as flag when first index tuple on page is deleted but
+ * we do not move left (this would slowdown vacuum) - so we set
+ * current->ip_posid before first index tuple on the current page
* (_bt_step will move it right)...
*/
if (!ItemPointerIsValid(&target))
{
- ItemPointerSetOffsetNumber(&(scan->currentItemData),
- OffsetNumberPrev(P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY));
+ ItemPointerSetOffsetNumber(&(scan->currentItemData),
+ OffsetNumberPrev(P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY));
return;
}
diff --git a/src/backend/access/nbtree/nbtscan.c b/src/backend/access/nbtree/nbtscan.c
index a2a6707d195..79e0c879d04 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.20 1999/03/28 20:31:58 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.21 1999/05/25 16:07:29 momjian Exp $
*
*
* NOTES
@@ -112,12 +112,12 @@ _bt_adjscans(Relation rel, ItemPointer tid)
static void
_bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
{
- ItemPointer current;
- Buffer buf;
- BTScanOpaque so;
- OffsetNumber start;
- Page page;
- BTPageOpaque opaque;
+ ItemPointer current;
+ Buffer buf;
+ BTScanOpaque so;
+ OffsetNumber start;
+ Page page;
+ BTPageOpaque opaque;
so = (BTScanOpaque) scan->opaque;
buf = so->btso_curbuf;
@@ -140,7 +140,7 @@ _bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
{
Page pg = BufferGetPage(buf);
BTItem btitem = (BTItem) PageGetItem(pg,
- PageGetItemId(pg, ItemPointerGetOffsetNumber(current)));
+ PageGetItemId(pg, ItemPointerGetOffsetNumber(current)));
so->curHeapIptr = btitem->bti_itup.t_tid;
}
@@ -181,7 +181,7 @@ _bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
{
Page pg = BufferGetPage(buf);
BTItem btitem = (BTItem) PageGetItem(pg,
- PageGetItemId(pg, ItemPointerGetOffsetNumber(current)));
+ PageGetItemId(pg, ItemPointerGetOffsetNumber(current)));
so->mrkHeapIptr = btitem->bti_itup.t_tid;
}
diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index 1ea080abd72..cc3fc7475b4 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.43 1999/04/13 17:18:28 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.44 1999/05/25 16:07:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -706,7 +706,7 @@ _bt_next(IndexScanDesc scan, ScanDirection dir)
so = (BTScanOpaque) scan->opaque;
current = &(scan->currentItemData);
- Assert (BufferIsValid(so->btso_curbuf));
+ Assert(BufferIsValid(so->btso_curbuf));
/* we still have the buffer pinned and locked */
buf = so->btso_curbuf;
@@ -733,8 +733,8 @@ _bt_next(IndexScanDesc scan, ScanDirection dir)
return res;
}
- } while (keysok >= so->numberOfFirstKeys ||
- (keysok == -1 && ScanDirectionIsBackward(dir)));
+ } while (keysok >= so->numberOfFirstKeys ||
+ (keysok == -1 && ScanDirectionIsBackward(dir)));
ItemPointerSetInvalid(current);
so->btso_curbuf = InvalidBuffer;
@@ -776,8 +776,8 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
BTScanOpaque so;
ScanKeyData skdata;
Size keysok;
- int i;
- int nKeyIndex = -1;
+ int i;
+ int nKeyIndex = -1;
rel = scan->relation;
so = (BTScanOpaque) scan->opaque;
@@ -795,27 +795,27 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
if (ScanDirectionIsBackward(dir))
{
- for (i=0; i<so->numberOfKeys; i++)
+ for (i = 0; i < so->numberOfKeys; i++)
{
if (so->keyData[i].sk_attno != 1)
break;
- strat = _bt_getstrat(rel, so->keyData[i].sk_attno,
- so->keyData[i].sk_procedure);
+ strat = _bt_getstrat(rel, so->keyData[i].sk_attno,
+ so->keyData[i].sk_procedure);
if (strat == BTLessStrategyNumber ||
- strat == BTLessEqualStrategyNumber||
- strat == BTEqualStrategyNumber)
+ strat == BTLessEqualStrategyNumber ||
+ strat == BTEqualStrategyNumber)
{
nKeyIndex = i;
break;
}
}
}
- else
+ else
{
strat = _bt_getstrat(rel, 1, so->keyData[0].sk_procedure);
if (strat == BTLessStrategyNumber ||
- strat == BTLessEqualStrategyNumber)
+ strat == BTLessEqualStrategyNumber)
;
else
nKeyIndex = 0;
@@ -850,7 +850,7 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
}
proc = index_getprocid(rel, 1, BTORDER_PROC);
ScanKeyEntryInitialize(&skdata, so->keyData[nKeyIndex].sk_flags,
- 1, proc, so->keyData[nKeyIndex].sk_argument);
+ 1, proc, so->keyData[nKeyIndex].sk_argument);
stack = _bt_search(rel, 1, &skdata, &buf);
_bt_freestack(stack);
@@ -1104,9 +1104,10 @@ _bt_step(IndexScanDesc scan, Buffer *bufP, ScanDirection dir)
rel = scan->relation;
current = &(scan->currentItemData);
+
/*
- * Don't use ItemPointerGetOffsetNumber or you risk to get
- * assertion due to ability of ip_posid to be equal 0.
+ * Don't use ItemPointerGetOffsetNumber or you risk to get assertion
+ * due to ability of ip_posid to be equal 0.
*/
offnum = current->ip_posid;
page = BufferGetPage(*bufP);
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index c8c494d3f94..d5c2c30bef8 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.38 1999/05/09 00:53:19 tgl Exp $
+ * $Id: nbtsort.c,v 1.39 1999/05/25 16:07:34 momjian Exp $
*
* NOTES
*
@@ -552,16 +552,16 @@ _bt_spoolinit(Relation index, int ntapes, bool isunique)
btspool->bts_tape = 0;
btspool->isunique = isunique;
- btspool->bts_itape =(BTTapeBlock **) palloc(sizeof(BTTapeBlock *) * ntapes);
- btspool->bts_otape =(BTTapeBlock **) palloc(sizeof(BTTapeBlock *) * ntapes);
+ btspool->bts_itape = (BTTapeBlock **) palloc(sizeof(BTTapeBlock *) * ntapes);
+ btspool->bts_otape = (BTTapeBlock **) palloc(sizeof(BTTapeBlock *) * ntapes);
if (btspool->bts_itape == (BTTapeBlock **) NULL ||
btspool->bts_otape == (BTTapeBlock **) NULL)
elog(ERROR, "_bt_spoolinit: out of memory");
for (i = 0; i < ntapes; ++i)
{
- btspool->bts_itape[i] = _bt_tapecreate();
- btspool->bts_otape[i] = _bt_tapecreate();
+ btspool->bts_itape[i] = _bt_tapecreate();
+ btspool->bts_otape[i] = _bt_tapecreate();
}
_bt_isortcmpinit(index, btspool);
diff --git a/src/backend/access/rtree/rtree.c b/src/backend/access/rtree/rtree.c
index 57e89424500..f62a4bf648a 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.31 1999/02/13 23:14:42 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.32 1999/05/25 16:07:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -307,7 +307,7 @@ rtinsert(Relation r, Datum *datum, char *nulls, ItemPointer ht_ctid, Relation he
/*
* Notes in ExecUtils:ExecOpenIndices()
*
- RelationSetLockForWrite(r);
+ * RelationSetLockForWrite(r);
*/
res = rtdoinsert(r, itup, &rtState);
@@ -947,10 +947,10 @@ rtdelete(Relation r, ItemPointer tid)
Page page;
/*
- * Notes in ExecUtils:ExecOpenIndices()
- * Also note that only vacuum deletes index tuples now...
+ * Notes in ExecUtils:ExecOpenIndices() Also note that only vacuum
+ * deletes index tuples now...
*
- RelationSetLockForWrite(r);
+ * RelationSetLockForWrite(r);
*/
blkno = ItemPointerGetBlockNumber(tid);
diff --git a/src/backend/access/rtree/rtscan.c b/src/backend/access/rtree/rtscan.c
index 596972960bd..b74a341304a 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.22 1999/02/13 23:14:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.23 1999/05/25 16:07:40 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -69,7 +69,7 @@ rtbeginscan(Relation r,
/*
* Let index_beginscan does its work...
*
- RelationSetLockForRead(r);
+ * RelationSetLockForRead(r);
*/
s = RelationGetIndexScan(r, fromEnd, nkeys, key);
diff --git a/src/backend/access/transam/transam.c b/src/backend/access/transam/transam.c
index 35f07e6185a..fe1d57d769c 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.25 1999/03/30 01:37:21 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/transam.c,v 1.26 1999/05/25 16:07:45 momjian Exp $
*
* NOTES
* This file contains the high level access-method interface to the
@@ -221,7 +221,7 @@ TransactionLogUpdate(TransactionId transactionId, /* trans id to update */
/*
* update (invalidate) our single item TransactionLogTest cache.
*
- if (status != XID_COMMIT)
+ * if (status != XID_COMMIT)
*
* What's the hell ?! Why != XID_COMMIT ?!
*/
@@ -374,7 +374,7 @@ TransRecover(Relation logRelation)
*/
/*
- * InitializeTransactionLog
+ * InitializeTransactionLog
* Initializes transaction logging.
*/
void
@@ -484,7 +484,7 @@ InitializeTransactionLog(void)
*/
/*
- * TransactionIdDidCommit
+ * TransactionIdDidCommit
* True iff transaction associated with the identifier did commit.
*
* Note:
@@ -500,7 +500,7 @@ TransactionIdDidCommit(TransactionId transactionId)
}
/*
- * TransactionIdDidAborted
+ * TransactionIdDidAborted
* True iff transaction associated with the identifier did abort.
*
* Note:
@@ -541,7 +541,7 @@ TransactionIdIsInProgress(TransactionId transactionId)
*/
/*
- * TransactionIdCommit
+ * TransactionIdCommit
* Commits the transaction associated with the identifier.
*
* Note:
@@ -557,7 +557,7 @@ TransactionIdCommit(TransactionId transactionId)
}
/*
- * TransactionIdAbort
+ * TransactionIdAbort
* Aborts the transaction associated with the identifier.
*
* Note:
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c
index f910ea5f0f1..4bcc55bb92c 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.19 1999/02/13 23:14:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.20 1999/05/25 16:07:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -260,7 +260,7 @@ VariableRelationPutNextOid(Oid *oidP)
* In the version 2 transaction system, transaction id's are
* restricted in several ways.
*
- * -- Old comments removed
+ * -- Old comments removed
*
* Second, since we may someday preform compression of the data
* in the log and time relations, we cause the numbering of the
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index f125baed6db..000abbc7ecb 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.35 1999/05/13 00:34:57 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.36 1999/05/25 16:07:50 momjian Exp $
*
* NOTES
* Transaction aborts can now occur two ways:
@@ -194,8 +194,8 @@ TransactionStateData CurrentTransactionStateData = {
TransactionState CurrentTransactionState = &CurrentTransactionStateData;
-int DefaultXactIsoLevel = XACT_READ_COMMITTED;
-int XactIsoLevel;
+int DefaultXactIsoLevel = XACT_READ_COMMITTED;
+int XactIsoLevel;
/* ----------------
* info returned when the system is disabled
@@ -299,6 +299,7 @@ IsTransactionState(void)
*/
return false;
}
+
#endif
/* --------------------------------
@@ -516,7 +517,7 @@ CommandCounterIncrement()
AtStart_Cache();
TransactionIdFlushCache();
-
+
}
void
@@ -695,9 +696,9 @@ AtCommit_Memory()
/* ----------------
* Release memory in the blank portal.
- * Since EndPortalAllocMode implicitly works on the current context,
- * first make real sure that the blank portal is the selected context.
- * (This is probably not necessary, but seems like a good idea...)
+ * Since EndPortalAllocMode implicitly works on the current context,
+ * first make real sure that the blank portal is the selected context.
+ * (This is probably not necessary, but seems like a good idea...)
* ----------------
*/
portal = GetPortalByName(NULL);
@@ -789,9 +790,9 @@ AtAbort_Memory()
/* ----------------
* Release memory in the blank portal.
- * Since EndPortalAllocMode implicitly works on the current context,
- * first make real sure that the blank portal is the selected context.
- * (This is ESSENTIAL in case we aborted from someplace where it wasn't.)
+ * Since EndPortalAllocMode implicitly works on the current context,
+ * first make real sure that the blank portal is the selected context.
+ * (This is ESSENTIAL in case we aborted from someplace where it wasn't.)
* ----------------
*/
portal = GetPortalByName(NULL);
@@ -1074,7 +1075,7 @@ StartTransactionCommand()
break;
/* ----------------
- * As with BEGIN, we should never experience this
+ * As with BEGIN, we should never experience this
* if we do it means the END state was not changed in the
* previous CommitTransactionCommand(). If we get it, we
* print a warning, commit the transaction, start a new
@@ -1509,6 +1510,7 @@ AbortOutOfAnyTransaction()
*/
if (s->state != TRANS_DEFAULT)
AbortTransaction();
+
/*
* Now reset the high-level state
*/
diff --git a/src/backend/access/transam/xid.c b/src/backend/access/transam/xid.c
index e7b68d48e7f..2b15fec1bf6 100644
--- a/src/backend/access/transam/xid.c
+++ b/src/backend/access/transam/xid.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: xid.c,v 1.21 1999/02/13 23:14:49 momjian Exp $
+ * $Id: xid.c,v 1.22 1999/05/25 16:07:52 momjian Exp $
*
* OLD COMMENTS
* XXX WARNING
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index 80f1142949f..6c7e7c16fa1 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.59 1999/05/10 00:44:52 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.60 1999/05/25 16:07:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -182,7 +182,7 @@ static char *relname; /* current relation name */
Form_pg_attribute attrtypes[MAXATTR]; /* points to attribute info */
static char *values[MAXATTR]; /* cooresponding attribute values */
int numattr; /* number of attributes for cur. rel */
-extern bool disableFsync; /* do not fsync the database */
+extern bool disableFsync; /* do not fsync the database */
int DebugMode;
static GlobalMemory nogc = (GlobalMemory) NULL; /* special no-gc mem
@@ -587,7 +587,9 @@ DefineAttr(char *name, char *type, int attnum)
printf("<%s %s> ", attrtypes[attnum]->attname.data, type);
attrtypes[attnum]->attnum = 1 + attnum; /* fillatt */
attlen = attrtypes[attnum]->attlen = Procid[typeoid].len;
- /* Cheat like mad to fill in these items from the length only.
+
+ /*
+ * Cheat like mad to fill in these items from the length only.
* This only has to work for types used in the system catalogs...
*/
switch (attlen)
diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c
index 8e0953809c4..5e720714354 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.20 1999/02/13 23:14:55 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.21 1999/05/25 16:08:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -29,8 +29,8 @@
char *
relpath(char *relname)
{
- char *path;
- int bufsize = 0;
+ char *path;
+ int bufsize = 0;
if (IsSharedSystemRelationName(relname))
{
@@ -43,7 +43,7 @@ relpath(char *relname)
}
/*
- * IsSystemRelationName
+ * IsSystemRelationName
* True iff name is the name of a system catalog relation.
*
* We now make a new requirement where system catalog relns must begin
@@ -64,7 +64,7 @@ IsSystemRelationName(char *relname)
}
/*
- * IsSharedSystemRelationName
+ * IsSharedSystemRelationName
* True iff name is the name of a shared system catalog relation.
*/
bool
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index c82a258a3b2..89e45fb2bfc 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.84 1999/05/22 04:12:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.85 1999/05/25 16:08:03 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -70,8 +70,8 @@
#endif
static void AddNewRelationTuple(Relation pg_class_desc,
- Relation new_rel_desc, Oid new_rel_oid, unsigned natts,
- char relkind, char *temp_relname);
+ Relation new_rel_desc, Oid new_rel_oid, unsigned natts,
+ char relkind, char *temp_relname);
static void AddToNoNameRelList(Relation r);
static void DeleteAttributeTuples(Relation rel);
static void DeleteRelationTuple(Relation rel);
@@ -185,7 +185,7 @@ heap_create(char *relname,
bool nailme = false;
int natts = tupDesc->natts;
static unsigned int uniqueId = 0;
-
+
extern GlobalMemory CacheCxt;
MemoryContext oldcxt;
@@ -240,23 +240,21 @@ heap_create(char *relname,
nailme = true;
}
else
- {
relid = newoid();
- }
if (isnoname)
{
Assert(!relname);
relname = palloc(NAMEDATALEN);
snprintf(relname, NAMEDATALEN, "pg_noname.%d.%u",
- (int) MyProcPid, uniqueId++);
+ (int) MyProcPid, uniqueId++);
}
if (istemp)
{
/* replace relname of caller */
snprintf(relname, NAMEDATALEN, "pg_temp.%d.%u",
- (int) MyProcPid, uniqueId++);
+ (int) MyProcPid, uniqueId++);
}
/* ----------------
@@ -272,7 +270,7 @@ heap_create(char *relname,
/*
* create a new tuple descriptor from the one passed in
- */
+ */
rel->rd_att = CreateTupleDescCopyConstr(tupDesc);
/* ----------------
@@ -321,7 +319,7 @@ heap_create(char *relname,
* ----------------
*/
- rel->rd_nonameunlinked = TRUE; /* change once table is created */
+ rel->rd_nonameunlinked = TRUE; /* change once table is created */
rel->rd_fd = (File) smgrcreate(DEFAULT_SMGR, rel);
rel->rd_nonameunlinked = FALSE;
@@ -479,8 +477,8 @@ RelnameFindRelid(char *relname)
if (!IsBootstrapProcessingMode())
{
tuple = SearchSysCacheTuple(RELNAME,
- PointerGetDatum(relname),
- 0, 0, 0);
+ PointerGetDatum(relname),
+ 0, 0, 0);
if (HeapTupleIsValid(tuple))
relid = tuple->t_data->t_oid;
else
@@ -488,10 +486,10 @@ RelnameFindRelid(char *relname)
}
else
{
- Relation pg_class_desc;
+ Relation pg_class_desc;
ScanKeyData key;
HeapScanDesc pg_class_scan;
-
+
pg_class_desc = heap_openr(RelationRelationName);
/* ----------------
@@ -504,7 +502,7 @@ RelnameFindRelid(char *relname)
(AttrNumber) Anum_pg_class_relname,
(RegProcedure) F_NAMEEQ,
(Datum) relname);
-
+
/* ----------------
* begin the scan
* ----------------
@@ -514,14 +512,14 @@ RelnameFindRelid(char *relname)
SnapshotNow,
1,
&key);
-
+
/* ----------------
* get a tuple. if the tuple is NULL then it means we
* didn't find an existing relation.
* ----------------
*/
tuple = heap_getnext(pg_class_scan, 0);
-
+
if (HeapTupleIsValid(tuple))
relid = tuple->t_data->t_oid;
else
@@ -594,7 +592,7 @@ AddNewAttributeTuples(Oid new_rel_oid,
(char *) *dpp);
heap_insert(rel, tup);
-
+
if (hasindex)
CatalogIndexInsert(idescs, Num_pg_attr_indices, rel, tup);
@@ -643,11 +641,11 @@ AddNewAttributeTuples(Oid new_rel_oid,
*/
static void
AddNewRelationTuple(Relation pg_class_desc,
- Relation new_rel_desc,
- Oid new_rel_oid,
- unsigned natts,
- char relkind,
- char *temp_relname)
+ Relation new_rel_desc,
+ Oid new_rel_oid,
+ unsigned natts,
+ char relkind,
+ char *temp_relname)
{
Form_pg_class new_rel_reltup;
HeapTuple tup;
@@ -678,12 +676,12 @@ AddNewRelationTuple(Relation pg_class_desc,
* the table has been proven to be small by VACUUM or CREATE INDEX.
* (NOTE: if user does CREATE TABLE, then CREATE INDEX, then loads
* the table, he still loses until he vacuums, because CREATE INDEX
- * will set reltuples to zero. Can't win 'em all. Maintaining the
+ * will set reltuples to zero. Can't win 'em all. Maintaining the
* stats on-the-fly would solve the problem, but the overhead of that
* would likely cost more than it'd save.)
* ----------------
*/
- new_rel_reltup->relpages = 10; /* bogus estimates */
+ new_rel_reltup->relpages = 10; /* bogus estimates */
new_rel_reltup->reltuples = 1000;
new_rel_reltup->relowner = GetUserId();
@@ -716,9 +714,10 @@ AddNewRelationTuple(Relation pg_class_desc,
if (temp_relname)
create_temp_relation(temp_relname, tup);
-
+
if (!isBootstrap)
{
+
/*
* First, open the catalog indices and insert index tuples for the
* new relation.
@@ -730,7 +729,7 @@ AddNewRelationTuple(Relation pg_class_desc,
/* now restore processing mode */
SetProcessingMode(NormalProcessing);
}
-
+
pfree(tup);
}
@@ -788,8 +787,8 @@ heap_create_with_catalog(char *relname,
Relation new_rel_desc;
Oid new_rel_oid;
int natts = tupdesc->natts;
- char *temp_relname = NULL;
-
+ char *temp_relname = NULL;
+
/* ----------------
* sanity checks
* ----------------
@@ -804,33 +803,34 @@ heap_create_with_catalog(char *relname,
/* temp tables can mask non-temp tables */
if ((!istemp && RelnameFindRelid(relname)) ||
- (istemp && get_temp_rel_by_name(relname) != NULL))
+ (istemp && get_temp_rel_by_name(relname) != NULL))
elog(ERROR, "Relation '%s' already exists", relname);
/* invalidate cache so non-temp table is masked by temp */
if (istemp)
{
- Oid relid = RelnameFindRelid(relname);
+ Oid relid = RelnameFindRelid(relname);
if (relid != InvalidOid)
{
+
/*
- * This is heavy-handed, but appears necessary bjm 1999/02/01
- * SystemCacheRelationFlushed(relid) is not enough either.
+ * This is heavy-handed, but appears necessary bjm 1999/02/01
+ * SystemCacheRelationFlushed(relid) is not enough either.
*/
RelationForgetRelation(relid);
ResetSystemCache();
- }
+ }
}
-
+
/* save user relation name because heap_create changes it */
if (istemp)
{
- temp_relname = pstrdup(relname); /* save original value */
+ temp_relname = pstrdup(relname); /* save original value */
relname = palloc(NAMEDATALEN);
- strcpy(relname, temp_relname); /* heap_create will change this */
+ strcpy(relname, temp_relname); /* heap_create will change this */
}
-
+
/* ----------------
* ok, relation does not already exist so now we
* create an uncataloged relation and pull its relation oid
@@ -838,7 +838,7 @@ heap_create_with_catalog(char *relname,
*
* Note: The call to heap_create() does all the "real" work
* of creating the disk file for the relation.
- * This changes relname for noname and temp tables.
+ * This changes relname for noname and temp tables.
* ----------------
*/
new_rel_desc = heap_create(relname, tupdesc, false, istemp);
@@ -866,11 +866,11 @@ heap_create_with_catalog(char *relname,
pg_class_desc = heap_openr(RelationRelationName);
AddNewRelationTuple(pg_class_desc,
- new_rel_desc,
- new_rel_oid,
- natts,
- relkind,
- temp_relname);
+ new_rel_desc,
+ new_rel_oid,
+ natts,
+ relkind,
+ temp_relname);
StoreConstraints(new_rel_desc);
@@ -1320,7 +1320,7 @@ heap_destroy_with_catalog(char *relname)
if (istemp)
remove_temp_relation(rid);
-
+
/* ----------------
* delete type tuple. here we want to see the effects
* of the deletions we just did, so we use setheapoverride().
@@ -1334,7 +1334,7 @@ heap_destroy_with_catalog(char *relname)
* delete relation tuple
* ----------------
*/
- /* must delete fake tuple in cache */
+ /* must delete fake tuple in cache */
DeleteRelationTuple(rel);
/*
@@ -1516,10 +1516,12 @@ StoreAttrDefault(Relation rel, AttrDefault *attrdef)
extern GlobalMemory CacheCxt;
start:
- /* Surround table name with double quotes to allow mixed-case and
+
+ /*
+ * Surround table name with double quotes to allow mixed-case and
* whitespaces in names. - BGA 1998-11-14
*/
- snprintf(str, MAX_PARSE_BUFFER,
+ snprintf(str, MAX_PARSE_BUFFER,
"select %s%s from \"%.*s\"", attrdef->adsrc, cast,
NAMEDATALEN, rel->rd_rel->relname.data);
setheapoverride(true);
@@ -1539,16 +1541,16 @@ start:
if (type != atp->atttypid)
{
if (IS_BINARY_COMPATIBLE(type, atp->atttypid))
- ; /* use without change */
+ ; /* use without change */
else if (can_coerce_type(1, &(type), &(atp->atttypid)))
- expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid,
- atp->atttypmod);
+ expr = coerce_type(NULL, (Node *) expr, type, atp->atttypid,
+ atp->atttypmod);
else if (IsA(expr, Const))
{
if (*cast != 0)
elog(ERROR, "DEFAULT clause const type '%s' mismatched with column type '%s'",
typeidTypeName(type), typeidTypeName(atp->atttypid));
- snprintf(cast, 2*NAMEDATALEN, ":: %s", typeidTypeName(atp->atttypid));
+ snprintf(cast, 2 * NAMEDATALEN, ":: %s", typeidTypeName(atp->atttypid));
goto start;
}
else
@@ -1598,12 +1600,13 @@ StoreRelCheck(Relation rel, ConstrCheck *check)
char nulls[4] = {' ', ' ', ' ', ' '};
extern GlobalMemory CacheCxt;
- /* Check for table's existance. Surround table name with double-quotes
+ /*
+ * Check for table's existance. Surround table name with double-quotes
* to allow mixed-case and whitespace names. - thomas 1998-11-12
*/
- snprintf(str, MAX_PARSE_BUFFER,
- "select 1 from \"%.*s\" where %s",
- NAMEDATALEN, rel->rd_rel->relname.data, check->ccsrc);
+ snprintf(str, MAX_PARSE_BUFFER,
+ "select 1 from \"%.*s\" where %s",
+ NAMEDATALEN, rel->rd_rel->relname.data, check->ccsrc);
setheapoverride(true);
planTree_list = pg_parse_and_plan(str, NULL, 0,
&queryTree_list, None, FALSE);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 7fc6cb0464a..93f34ce0749 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.74 1999/05/17 00:27:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.75 1999/05/25 16:08:06 momjian Exp $
*
*
* INTERFACE ROUTINES
@@ -60,8 +60,8 @@
#define NTUPLES_PER_PAGE(natts) (BLCKSZ/((natts)*AVG_TUPLE_SIZE))
/* non-export function prototypes */
-static Oid GetHeapRelationOid(char *heapRelationName, char *indexRelationName,
- bool istemp);
+static Oid GetHeapRelationOid(char *heapRelationName, char *indexRelationName,
+ bool istemp);
static TupleDesc BuildFuncTupleDesc(FuncIndexInfo *funcInfo);
static TupleDesc ConstructTupleDescriptor(Oid heapoid, Relation heapRelation,
List *attributeList,
@@ -77,7 +77,7 @@ static void
static void UpdateIndexRelation(Oid indexoid, Oid heapoid,
FuncIndexInfo *funcInfo, int natts,
AttrNumber *attNums, Oid *classOids, Node *predicate,
- List *attributeList, bool islossy, bool unique, bool primary);
+ List *attributeList, bool islossy, bool unique, bool primary);
static void DefaultBuild(Relation heapRelation, Relation indexRelation,
int numberOfAttributes, AttrNumber *attributeNumber,
IndexStrategy indexStrategy, uint16 parameterCount,
@@ -126,11 +126,11 @@ GetHeapRelationOid(char *heapRelationName, char *indexRelationName, bool istemp)
Oid indoid;
Oid heapoid;
-
+
indoid = RelnameFindRelid(indexRelationName);
if ((!istemp && OidIsValid(indoid)) ||
- (istemp && get_temp_rel_by_name(indexRelationName) != NULL))
+ (istemp && get_temp_rel_by_name(indexRelationName) != NULL))
elog(ERROR, "Cannot create index: '%s' already exists",
indexRelationName);
@@ -139,7 +139,7 @@ GetHeapRelationOid(char *heapRelationName, char *indexRelationName, bool istemp)
if (!OidIsValid(heapoid))
elog(ERROR, "Cannot create index on '%s': relation does not exist",
heapRelationName);
-
+
return heapoid;
}
@@ -356,7 +356,7 @@ ConstructTupleDescriptor(Oid heapoid,
}
/* ----------------------------------------------------------------
- * AccessMethodObjectIdGetForm
+ * AccessMethodObjectIdGetForm
* Returns the formated access method tuple given its object identifier.
*
* XXX ADD INDEXING
@@ -482,7 +482,7 @@ UpdateRelationRelation(Relation indexRelation, char *temp_relname)
if (temp_relname)
create_temp_relation(temp_relname, tuple);
-
+
/*
* During normal processing, we need to make sure that the system
* catalog indices are correct. Bootstrap (initdb) time doesn't
@@ -571,7 +571,7 @@ AppendAttributeTuples(Relation indexRelation, int numatts)
value[Anum_pg_attribute_attcacheoff - 1] = Int32GetDatum(-1);
init_tuple = heap_addheader(Natts_pg_attribute,
- ATTRIBUTE_TUPLE_SIZE,
+ ATTRIBUTE_TUPLE_SIZE,
(char *) (indexRelation->rd_att->attrs[0]));
hasind = false;
@@ -611,7 +611,7 @@ AppendAttributeTuples(Relation indexRelation, int numatts)
*/
memmove(GETSTRUCT(cur_tuple),
(char *) indexTupDesc->attrs[i],
- ATTRIBUTE_TUPLE_SIZE);
+ ATTRIBUTE_TUPLE_SIZE);
value[Anum_pg_attribute_attnum - 1] = Int16GetDatum(i + 1);
@@ -657,7 +657,7 @@ UpdateIndexRelation(Oid indexoid,
List *attributeList,
bool islossy,
bool unique,
- bool primary)
+ bool primary)
{
Form_pg_index indexForm;
IndexElem *IndexKey;
@@ -686,7 +686,7 @@ UpdateIndexRelation(Oid indexoid,
predLen = VARSIZE(predText);
itupLen = predLen + sizeof(FormData_pg_index);
indexForm = (Form_pg_index) palloc(itupLen);
- memset (indexForm, 0, sizeof(FormData_pg_index));
+ memset(indexForm, 0, sizeof(FormData_pg_index));
memmove((char *) &indexForm->indpred, (char *) predText, predLen);
@@ -939,7 +939,7 @@ index_create(char *heapRelationName,
Node *predicate,
bool islossy,
bool unique,
- bool primary)
+ bool primary)
{
Relation heapRelation;
Relation indexRelation;
@@ -948,15 +948,15 @@ index_create(char *heapRelationName,
Oid indexoid;
PredInfo *predInfo;
bool istemp = (get_temp_rel_by_name(heapRelationName) != NULL);
- char *temp_relname = NULL;
-
+ char *temp_relname = NULL;
+
/* ----------------
* check parameters
* ----------------
*/
if (numatts < 1)
elog(ERROR, "must index at least one attribute");
-
+
/* ----------------
* get heap relation oid and open the heap relation
* XXX ADD INDEXING
@@ -987,25 +987,27 @@ index_create(char *heapRelationName,
/* invalidate cache so possible non-temp index is masked by temp */
if (istemp)
{
- Oid relid = RelnameFindRelid(indexRelationName);
+ Oid relid = RelnameFindRelid(indexRelationName);
if (relid != InvalidOid)
{
+
/*
- * This is heavy-handed, but appears necessary bjm 1999/02/01
- * SystemCacheRelationFlushed(relid) is not enough either.
+ * This is heavy-handed, but appears necessary bjm 1999/02/01
+ * SystemCacheRelationFlushed(relid) is not enough either.
*/
RelationForgetRelation(relid);
ResetSystemCache();
}
}
-
+
/* save user relation name because heap_create changes it */
if (istemp)
{
- temp_relname = pstrdup(indexRelationName); /* save original value */
+ temp_relname = pstrdup(indexRelationName); /* save original value */
indexRelationName = palloc(NAMEDATALEN);
- strcpy(indexRelationName, temp_relname); /* heap_create will change this */
+ strcpy(indexRelationName, temp_relname); /* heap_create will
+ * change this */
}
/* ----------------
@@ -1122,8 +1124,8 @@ index_destroy(Oid indexId)
Relation relationRelation;
Relation attributeRelation;
HeapTuple tuple;
- int16 attnum;
-
+ int16 attnum;
+
Assert(OidIsValid(indexId));
/* Open now to obtain lock by referencing table? bjm */
@@ -1166,7 +1168,7 @@ index_destroy(Oid indexId)
/* does something only if it is a temp index */
remove_temp_relation(indexId);
-
+
/* ----------------
* fix INDEX relation
* ----------------
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 89230f16c0b..a7a1dda444c 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.37 1999/05/10 00:44:55 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.38 1999/05/25 16:08:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -46,15 +46,15 @@
*/
char *Name_pg_attr_indices[Num_pg_attr_indices] = {AttributeNameIndex,
- AttributeNumIndex,
- AttributeRelidIndex};
+ AttributeNumIndex,
+AttributeRelidIndex};
char *Name_pg_proc_indices[Num_pg_proc_indices] = {ProcedureNameIndex,
- ProcedureOidIndex,
- ProcedureSrcIndex};
+ ProcedureOidIndex,
+ProcedureSrcIndex};
char *Name_pg_type_indices[Num_pg_type_indices] = {TypeNameIndex,
- TypeOidIndex};
+TypeOidIndex};
char *Name_pg_class_indices[Num_pg_class_indices] = {ClassNameIndex,
- ClassOidIndex};
+ClassOidIndex};
char *Name_pg_attrdef_indices[Num_pg_attrdef_indices] = {AttrDefaultIndex};
char *Name_pg_relcheck_indices[Num_pg_relcheck_indices] = {RelCheckIndex};
@@ -63,9 +63,9 @@ char *Name_pg_trigger_indices[Num_pg_trigger_indices] = {TriggerRelidIndex};
static HeapTuple CatalogIndexFetchTuple(Relation heapRelation,
- Relation idesc,
- ScanKey skey,
- int16 num_keys);
+ Relation idesc,
+ ScanKey skey,
+ int16 num_keys);
/*
@@ -126,13 +126,13 @@ CatalogIndexInsert(Relation *idescs,
index_tup = SearchSysCacheTupleCopy(INDEXRELID,
ObjectIdGetDatum(idescs[i]->rd_id),
- 0, 0, 0);
+ 0, 0, 0);
Assert(index_tup);
index_form = (Form_pg_index) GETSTRUCT(index_tup);
if (index_form->indproc != InvalidOid)
{
- int fatts;
+ int fatts;
/*
* Compute the number of attributes we are indexing upon.
@@ -152,7 +152,7 @@ CatalogIndexInsert(Relation *idescs,
natts = RelationGetDescr(idescs[i])->natts;
finfoP = (FuncIndexInfo *) NULL;
}
-
+
FormIndexDatum(natts,
(AttrNumber *) index_form->indkey,
heapTuple,
@@ -229,11 +229,11 @@ CatalogIndexFetchTuple(Relation heapRelation,
ScanKey skey,
int16 num_keys)
{
- IndexScanDesc sd;
+ IndexScanDesc sd;
RetrieveIndexResult indexRes;
- HeapTupleData tuple;
- HeapTuple result = NULL;
- Buffer buffer;
+ HeapTupleData tuple;
+ HeapTuple result = NULL;
+ Buffer buffer;
sd = index_beginscan(idesc, false, num_keys, skey);
tuple.t_data = NULL;
@@ -462,7 +462,7 @@ ClassNameIndexScan(Relation heapRelation, char *relName)
*/
if ((tuple = get_temp_rel_by_name(relName)) != NULL)
return heap_copytuple(tuple);
-
+
ScanKeyEntryInitialize(&skey[0],
(bits16) 0x0,
(AttrNumber) 1,
diff --git a/src/backend/catalog/pg_operator.c b/src/backend/catalog/pg_operator.c
index b3b11f845ad..58c87302d0a 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.36 1999/05/10 00:44:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.37 1999/05/25 16:08:09 momjian Exp $
*
* NOTES
* these routines moved here from commands/define.c and somewhat cleaned up.
@@ -36,15 +36,15 @@
#endif
static Oid OperatorGetWithOpenRelation(Relation pg_operator_desc,
- const char *operatorName,
- Oid leftObjectId,
- Oid rightObjectId,
- bool *defined);
+ const char *operatorName,
+ Oid leftObjectId,
+ Oid rightObjectId,
+ bool *defined);
static Oid OperatorGet(char *operatorName,
- char *leftTypeName,
- char *rightTypeName,
- bool *defined);
+ char *leftTypeName,
+ char *rightTypeName,
+ bool *defined);
static Oid OperatorShellMakeWithOpenRelation(Relation pg_operator_desc,
char *operatorName,
@@ -135,6 +135,7 @@ OperatorGetWithOpenRelation(Relation pg_operator_desc,
if (HeapTupleIsValid(tup))
{
regproc oprcode = ((Form_pg_operator) GETSTRUCT(tup))->oprcode;
+
operatorObjectId = tup->t_data->t_oid;
*defined = RegProcedureIsValid(oprcode);
}
@@ -259,7 +260,7 @@ OperatorShellMakeWithOpenRelation(Relation pg_operator_desc,
/* ----------------
* initialize *values with the operator name and input data types.
- * Note that oprcode is set to InvalidOid, indicating it's a shell.
+ * Note that oprcode is set to InvalidOid, indicating it's a shell.
* ----------------
*/
i = 0;
@@ -356,9 +357,9 @@ OperatorShellMake(char *operatorName,
* ----------------
*/
operatorObjectId = OperatorShellMakeWithOpenRelation(pg_operator_desc,
- operatorName,
- leftObjectId,
- rightObjectId);
+ operatorName,
+ leftObjectId,
+ rightObjectId);
/* ----------------
* close the operator relation and return the oid.
* ----------------
@@ -506,8 +507,9 @@ OperatorDef(char *operatorName,
elog(ERROR, "OperatorDef: operator \"%s\" already defined",
operatorName);
- /* At this point, if operatorObjectId is not InvalidOid then
- * we are filling in a previously-created shell.
+ /*
+ * At this point, if operatorObjectId is not InvalidOid then we are
+ * filling in a previously-created shell.
*/
/* ----------------
@@ -580,7 +582,7 @@ OperatorDef(char *operatorName,
values[Anum_pg_operator_oprcode - 1] = ObjectIdGetDatum(tup->t_data->t_oid);
values[Anum_pg_operator_oprresult - 1] = ObjectIdGetDatum(((Form_pg_proc)
- GETSTRUCT(tup))->prorettype);
+ GETSTRUCT(tup))->prorettype);
/* ----------------
* find restriction
@@ -648,7 +650,8 @@ OperatorDef(char *operatorName,
values[i++] = ObjectIdGetDatum(leftTypeId);
values[i++] = ObjectIdGetDatum(rightTypeId);
- ++i; /* Skip "oprresult", it was filled in above */
+ ++i; /* Skip "oprresult", it was filled in
+ * above */
/*
* Set up the other operators. If they do not currently exist, create
@@ -663,16 +666,16 @@ OperatorDef(char *operatorName,
{
if (name[j])
{
- char *otherLeftTypeName = NULL;
- char *otherRightTypeName = NULL;
- Oid otherLeftTypeId = InvalidOid;
- Oid otherRightTypeId = InvalidOid;
- Oid other_oid = InvalidOid;
- bool otherDefined = false;
+ char *otherLeftTypeName = NULL;
+ char *otherRightTypeName = NULL;
+ Oid otherLeftTypeId = InvalidOid;
+ Oid otherRightTypeId = InvalidOid;
+ Oid other_oid = InvalidOid;
+ bool otherDefined = false;
switch (j)
{
- case 0: /* commutator has reversed arg types */
+ case 0: /* commutator has reversed arg types */
otherLeftTypeName = rightTypeName;
otherRightTypeName = leftTypeName;
otherLeftTypeId = rightTypeId;
@@ -683,7 +686,7 @@ OperatorDef(char *operatorName,
&otherDefined);
commutatorId = other_oid;
break;
- case 1: /* negator has same arg types */
+ case 1: /* negator has same arg types */
otherLeftTypeName = leftTypeName;
otherRightTypeName = rightTypeName;
otherLeftTypeId = leftTypeId;
@@ -694,7 +697,7 @@ OperatorDef(char *operatorName,
&otherDefined);
negatorId = other_oid;
break;
- case 2: /* left sort op takes left-side data type */
+ case 2: /* left sort op takes left-side data type */
otherLeftTypeName = leftTypeName;
otherRightTypeName = leftTypeName;
otherLeftTypeId = leftTypeId;
@@ -704,7 +707,8 @@ OperatorDef(char *operatorName,
otherRightTypeName,
&otherDefined);
break;
- case 3: /* right sort op takes right-side data type */
+ case 3: /* right sort op takes right-side data
+ * type */
otherLeftTypeName = rightTypeName;
otherRightTypeName = rightTypeName;
otherLeftTypeId = rightTypeId;
@@ -737,8 +741,10 @@ OperatorDef(char *operatorName,
}
else
{
- /* self-linkage to this operator; will fix below.
- * Note that only self-linkage for commutation makes sense.
+
+ /*
+ * self-linkage to this operator; will fix below. Note
+ * that only self-linkage for commutation makes sense.
*/
if (j != 0)
elog(ERROR,
@@ -804,15 +810,14 @@ OperatorDef(char *operatorName,
/*
* If a commutator and/or negator link is provided, update the other
- * operator(s) to point at this one, if they don't already have a link.
- * This supports an alternate style of operator definition wherein the
- * user first defines one operator without giving negator or
- * commutator, then defines the other operator of the pair with the
- * proper commutator or negator attribute. That style doesn't require
- * creation of a shell, and it's the only style that worked right before
- * Postgres version 6.5.
- * This code also takes care of the situation where the new operator
- * is its own commutator.
+ * operator(s) to point at this one, if they don't already have a
+ * link. This supports an alternate style of operator definition
+ * wherein the user first defines one operator without giving negator
+ * or commutator, then defines the other operator of the pair with the
+ * proper commutator or negator attribute. That style doesn't require
+ * creation of a shell, and it's the only style that worked right
+ * before Postgres version 6.5. This code also takes care of the
+ * situation where the new operator is its own commutator.
*/
if (selfCommutator)
commutatorId = operatorObjectId;
@@ -869,7 +874,8 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
tup = heap_getnext(pg_operator_scan, 0);
- /* if the commutator and negator are the same operator, do one update.
+ /*
+ * if the commutator and negator are the same operator, do one update.
* XXX this is probably useless code --- I doubt it ever makes sense
* for commutator and negator to be the same thing...
*/
@@ -1008,7 +1014,7 @@ OperatorCreate(char *operatorName,
if (!leftTypeName && !rightTypeName)
elog(ERROR, "OperatorCreate: at least one of leftarg or rightarg must be defined");
- if (! (leftTypeName && rightTypeName))
+ if (!(leftTypeName && rightTypeName))
{
/* If it's not a binary op, these things mustn't be set: */
if (commutatorName)
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 7c22ce007cd..3d31741cfe0 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.28 1999/05/13 07:28:27 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.29 1999/05/25 16:08:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -226,11 +226,11 @@ ProcedureCreate(char *procedureName,
* function name (the 'prosrc' value) is a known builtin function.
*
* NOTE: in Postgres versions before 6.5, the SQL name of the created
- * function could not be different from the internal name, and 'prosrc'
- * wasn't used. So there is code out there that does CREATE FUNCTION
- * xyz AS '' LANGUAGE 'internal'. To preserve some modicum of
- * backwards compatibility, accept an empty 'prosrc' value as meaning
- * the supplied SQL function name.
+ * function could not be different from the internal name, and
+ * 'prosrc' wasn't used. So there is code out there that does CREATE
+ * FUNCTION xyz AS '' LANGUAGE 'internal'. To preserve some modicum
+ * of backwards compatibility, accept an empty 'prosrc' value as
+ * meaning the supplied SQL function name.
*/
if (strcmp(languageName, "internal") == 0)
@@ -239,7 +239,7 @@ ProcedureCreate(char *procedureName,
prosrc = procedureName;
if (fmgr_lookupByName(prosrc) == (func_ptr) NULL)
elog(ERROR,
- "ProcedureCreate: there is no builtin function named \"%s\"",
+ "ProcedureCreate: there is no builtin function named \"%s\"",
prosrc);
}
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index 4d108a825ff..54856d4b76d 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.36 1999/04/20 03:51:14 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.37 1999/05/25 16:08:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -400,8 +400,8 @@ TypeCreate(char *typeName,
procname = procs[j];
/*
- * First look for a 1-argument func with all argtypes 0.
- * This is valid for all four kinds of procedure.
+ * First look for a 1-argument func with all argtypes 0. This is
+ * valid for all four kinds of procedure.
*/
MemSet(argList, 0, 8 * sizeof(Oid));
@@ -413,20 +413,23 @@ TypeCreate(char *typeName,
if (!HeapTupleIsValid(tup))
{
+
/*
- * For array types, the input procedures may take 3 args
- * (data value, element OID, atttypmod); the pg_proc
- * argtype signature is 0,0,INT4OID. The output procedures
- * may take 2 args (data value, element OID).
+ * For array types, the input procedures may take 3 args (data
+ * value, element OID, atttypmod); the pg_proc argtype
+ * signature is 0,0,INT4OID. The output procedures may take 2
+ * args (data value, element OID).
*/
if (OidIsValid(elementObjectId))
{
- int nargs;
+ int nargs;
+
if (j % 2)
{
/* output proc */
nargs = 2;
- } else
+ }
+ else
{
/* input proc */
nargs = 3;
diff --git a/src/backend/commands/_deadcode/recipe.c b/src/backend/commands/_deadcode/recipe.c
index b3ec01b9158..997c02d85da 100644
--- a/src/backend/commands/_deadcode/recipe.c
+++ b/src/backend/commands/_deadcode/recipe.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/recipe.c,v 1.2 1999/03/16 04:25:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/recipe.c,v 1.3 1999/05/25 16:08:30 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -121,18 +121,18 @@ static QueryTreeList *tg_parseTeeNode(TgRecipe * r,
void
beginRecipe(RecipeStmt *stmt)
{
- TgRecipe *r;
- int i,
- numTees;
+ TgRecipe *r;
+ int i,
+ numTees;
QueryTreeList *qList;
- char portalName[1024];
+ char portalName[1024];
- Plan *plan;
- TupleDesc attinfo;
- QueryDesc *queryDesc;
- Query *parsetree;
+ Plan *plan;
+ TupleDesc attinfo;
+ QueryDesc *queryDesc;
+ Query *parsetree;
- TeeInfo *teeInfo;
+ TeeInfo *teeInfo;
/*
* retrieveRecipe() reads the recipe from the database and returns a
@@ -808,21 +808,21 @@ tg_parseTeeNode(TgRecipe * r,
static QueryTreeList *
tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo)
{
- TgElement *elem;
- char *funcName;
- Oid typev[8], /* eight arguments maximum */
- relid;
- int i,
- parameterCount;
+ TgElement *elem;
+ char *funcName;
+ Oid typev[8], /* eight arguments maximum */
+ relid;
+ int i,
+ parameterCount;
QueryTreeList *qList; /* the parse tree of the nodeElement */
QueryTreeList *inputQlist; /* the list of parse trees for the inputs
* to this node */
QueryTreeList *q;
- TgNode *child;
- Relation rel;
- unsigned int len;
- TupleDesc tupdesc;
+ TgNode *child;
+ Relation rel;
+ unsigned int len;
+ TupleDesc tupdesc;
qList = NULL;
diff --git a/src/backend/commands/_deadcode/version.c b/src/backend/commands/_deadcode/version.c
index 9cb98cc5b3b..6eddfdccfaf 100644
--- a/src/backend/commands/_deadcode/version.c
+++ b/src/backend/commands/_deadcode/version.c
@@ -5,17 +5,17 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * The version stuff has not been tested under postgres95 and probably
+ * The version stuff has not been tested under postgres95 and probably
* doesn't work! - jolly 8/19/95
*
*
- * $Id: version.c,v 1.18 1999/02/13 23:15:12 momjian Exp $
+ * $Id: version.c,v 1.19 1999/05/25 16:08:32 momjian Exp $
*
* NOTES
* At the point the version is defined, 2 physical relations are created
* <vname>_added and <vname>_deleted.
*
- * In addition, 4 rules are defined which govern the semantics of
+ * In addition, 4 rules are defined which govern the semantics of
* versions w.r.t retrieves, appends, replaces and deletes.
*
*-------------------------------------------------------------------------
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index fb1c116bc47..0e3cb83aa93 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -6,7 +6,7 @@
* Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.46 1999/04/25 19:27:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.47 1999/05/25 16:08:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -31,17 +31,17 @@
* relname to a list of outstanding NOTIFY requests. Actual processing
* happens if and only if we reach transaction commit. At that time (in
* routine AtCommit_Notify) we scan pg_listener for matching relnames.
- * If the listenerPID in a matching tuple is ours, we just send a notify
+ * If the listenerPID in a matching tuple is ours, we just send a notify
* message to our own front end. If it is not ours, and "notification"
* is not already nonzero, we set notification to our own PID and send a
* SIGUSR2 signal to the receiving process (indicated by listenerPID).
* BTW: if the signal operation fails, we presume that the listener backend
- * crashed without removing this tuple, and remove the tuple for it.
+ * crashed without removing this tuple, and remove the tuple for it.
*
* 4. Upon receipt of a SIGUSR2 signal, the signal handler can call inbound-
* notify processing immediately if this backend is idle (ie, it is
* waiting for a frontend command and is not within a transaction block).
- * Otherwise the handler may only set a flag, which will cause the
+ * Otherwise the handler may only set a flag, which will cause the
* processing to occur just before we next go idle.
*
* 5. Inbound-notify processing consists of scanning pg_listener for tuples
@@ -53,7 +53,7 @@
*
* Note that the system's use of pg_listener is confined to very short
* intervals at the end of a transaction that contains NOTIFY statements,
- * or during the transaction caused by an inbound SIGUSR2. So the fact that
+ * or during the transaction caused by an inbound SIGUSR2. So the fact that
* pg_listener is a global resource shouldn't cause too much performance
* problem. But application authors ought to be discouraged from doing
* LISTEN or UNLISTEN near the start of a long transaction --- that would
@@ -109,8 +109,8 @@ extern CommandDest whereToSendOutput;
/*
* State for outbound notifies consists of a list of all relnames NOTIFYed
- * in the current transaction. We do not actually perform a NOTIFY until
- * and unless the transaction commits. pendingNotifies is NULL if no
+ * in the current transaction. We do not actually perform a NOTIFY until
+ * and unless the transaction commits. pendingNotifies is NULL if no
* NOTIFYs have been done in the current transaction.
*/
static Dllist *pendingNotifies = NULL;
@@ -125,8 +125,8 @@ static Dllist *pendingNotifies = NULL;
* does not grok "volatile", you'd be best advised to compile this file
* with all optimization turned off.
*/
-static volatile int notifyInterruptEnabled = 0;
-static volatile int notifyInterruptOccurred = 0;
+static volatile int notifyInterruptEnabled = 0;
+static volatile int notifyInterruptOccurred = 0;
/* True if we've registered an on_shmem_exit cleanup (or at least tried to). */
static int unlistenExitRegistered = 0;
@@ -142,7 +142,7 @@ static void ClearPendingNotifies(void);
/*
*--------------------------------------------------------------
- * Async_Notify
+ * Async_Notify
*
* This is executed by the SQL notify command.
*
@@ -164,28 +164,29 @@ Async_Notify(char *relname)
/*
* We allocate list memory from the global malloc pool to ensure that
- * it will live until we want to use it. This is probably not necessary
- * any longer, since we will use it before the end of the transaction.
- * DLList only knows how to use malloc() anyway, but we could probably
- * palloc() the strings...
+ * it will live until we want to use it. This is probably not
+ * necessary any longer, since we will use it before the end of the
+ * transaction. DLList only knows how to use malloc() anyway, but we
+ * could probably palloc() the strings...
*/
if (!pendingNotifies)
pendingNotifies = DLNewList();
notifyName = strdup(relname);
DLAddHead(pendingNotifies, DLNewElem(notifyName));
+
/*
* NOTE: we could check to see if pendingNotifies already has an entry
- * for relname, and thus avoid making duplicate entries. However, most
- * apps probably don't notify the same name multiple times per transaction,
- * so we'd likely just be wasting cycles to make such a check.
- * AsyncExistsPendingNotify() doesn't really care whether the list
- * contains duplicates...
+ * for relname, and thus avoid making duplicate entries. However,
+ * most apps probably don't notify the same name multiple times per
+ * transaction, so we'd likely just be wasting cycles to make such a
+ * check. AsyncExistsPendingNotify() doesn't really care whether the
+ * list contains duplicates...
*/
}
/*
*--------------------------------------------------------------
- * Async_Listen
+ * Async_Listen
*
* This is executed by the SQL listen command.
*
@@ -274,7 +275,7 @@ Async_Listen(char *relname, int pid)
/*
* now that we are listening, make sure we will unlisten before dying.
*/
- if (! unlistenExitRegistered)
+ if (!unlistenExitRegistered)
{
if (on_shmem_exit(Async_UnlistenOnExit, (caddr_t) NULL) < 0)
elog(NOTICE, "Async_Listen: out of shmem_exit slots");
@@ -284,7 +285,7 @@ Async_Listen(char *relname, int pid)
/*
*--------------------------------------------------------------
- * Async_Unlisten
+ * Async_Unlisten
*
* This is executed by the SQL unlisten command.
*
@@ -326,14 +327,16 @@ Async_Unlisten(char *relname, int pid)
UnlockRelation(lRel, AccessExclusiveLock);
heap_close(lRel);
}
- /* We do not complain about unlistening something not being listened;
+
+ /*
+ * We do not complain about unlistening something not being listened;
* should we?
*/
}
/*
*--------------------------------------------------------------
- * Async_UnlistenAll
+ * Async_UnlistenAll
*
* Unlisten all relations for this backend.
*
@@ -379,7 +382,7 @@ Async_UnlistenAll()
/*
*--------------------------------------------------------------
- * Async_UnlistenOnExit
+ * Async_UnlistenOnExit
*
* Clean up the pg_listener table at backend exit.
*
@@ -398,11 +401,12 @@ Async_UnlistenAll()
static void
Async_UnlistenOnExit()
{
+
/*
- * We need to start/commit a transaction for the unlisten,
- * but if there is already an active transaction we had better
- * abort that one first. Otherwise we'd end up committing changes
- * that probably ought to be discarded.
+ * We need to start/commit a transaction for the unlisten, but if
+ * there is already an active transaction we had better abort that one
+ * first. Otherwise we'd end up committing changes that probably
+ * ought to be discarded.
*/
AbortOutOfAnyTransaction();
/* Now we can do the unlisten */
@@ -413,7 +417,7 @@ Async_UnlistenOnExit()
/*
*--------------------------------------------------------------
- * AtCommit_Notify
+ * AtCommit_Notify
*
* This is called at transaction commit.
*
@@ -450,12 +454,14 @@ AtCommit_Notify()
int32 listenerPID;
if (!pendingNotifies)
- return; /* no NOTIFY statements in this transaction */
+ return; /* no NOTIFY statements in this
+ * transaction */
- /* NOTIFY is disabled if not normal processing mode.
- * This test used to be in xact.c, but it seems cleaner to do it here.
+ /*
+ * NOTIFY is disabled if not normal processing mode. This test used to
+ * be in xact.c, but it seems cleaner to do it here.
*/
- if (! IsNormalProcessingMode())
+ if (!IsNormalProcessingMode())
{
ClearPendingNotifies();
return;
@@ -487,10 +493,13 @@ AtCommit_Notify()
if (listenerPID == MyProcPid)
{
- /* Self-notify: no need to bother with table update.
+
+ /*
+ * Self-notify: no need to bother with table update.
* Indeed, we *must not* clear the notification field in
- * this path, or we could lose an outside notify, which'd be
- * bad for applications that ignore self-notify messages.
+ * this path, or we could lose an outside notify, which'd
+ * be bad for applications that ignore self-notify
+ * messages.
*/
TPRINTF(TRACE_NOTIFY, "AtCommit_Notify: notifying self");
NotifyMyFrontEnd(relname, listenerPID);
@@ -499,23 +508,27 @@ AtCommit_Notify()
{
TPRINTF(TRACE_NOTIFY, "AtCommit_Notify: notifying pid %d",
listenerPID);
+
/*
- * If someone has already notified this listener,
- * we don't bother modifying the table, but we do still send
- * a SIGUSR2 signal, just in case that backend missed the
- * earlier signal for some reason. It's OK to send the signal
- * first, because the other guy can't read pg_listener until
- * we unlock it.
+ * If someone has already notified this listener, we don't
+ * bother modifying the table, but we do still send a
+ * SIGUSR2 signal, just in case that backend missed the
+ * earlier signal for some reason. It's OK to send the
+ * signal first, because the other guy can't read
+ * pg_listener until we unlock it.
*/
#ifdef HAVE_KILL
if (kill(listenerPID, SIGUSR2) < 0)
{
- /* Get rid of pg_listener entry if it refers to a PID
+
+ /*
+ * Get rid of pg_listener entry if it refers to a PID
* that no longer exists. Presumably, that backend
* crashed without deleting its pg_listener entries.
- * This code used to only delete the entry if errno==ESRCH,
- * but as far as I can see we should just do it for any
- * failure (certainly at least for EPERM too...)
+ * This code used to only delete the entry if
+ * errno==ESRCH, but as far as I can see we should
+ * just do it for any failure (certainly at least for
+ * EPERM too...)
*/
heap_delete(lRel, &lTuple->t_self, NULL);
}
@@ -536,6 +549,7 @@ AtCommit_Notify()
}
heap_endscan(sRel);
+
/*
* We do not do RelationUnsetLockForWrite(lRel) here, because the
* transaction is about to be committed anyway.
@@ -549,7 +563,7 @@ AtCommit_Notify()
/*
*--------------------------------------------------------------
- * AtAbort_Notify
+ * AtAbort_Notify
*
* This is called at transaction abort.
*
@@ -569,7 +583,7 @@ AtAbort_Notify()
/*
*--------------------------------------------------------------
- * Async_NotifyHandler
+ * Async_NotifyHandler
*
* This is the signal handler for SIGUSR2.
*
@@ -588,25 +602,30 @@ AtAbort_Notify()
void
Async_NotifyHandler(SIGNAL_ARGS)
{
+
/*
- * Note: this is a SIGNAL HANDLER. You must be very wary what you do here.
- * Some helpful soul had this routine sprinkled with TPRINTFs, which would
- * likely lead to corruption of stdio buffers if they were ever turned on.
+ * Note: this is a SIGNAL HANDLER. You must be very wary what you do
+ * here. Some helpful soul had this routine sprinkled with TPRINTFs,
+ * which would likely lead to corruption of stdio buffers if they were
+ * ever turned on.
*/
if (notifyInterruptEnabled)
{
- /* I'm not sure whether some flavors of Unix might allow another
- * SIGUSR2 occurrence to recursively interrupt this routine.
- * To cope with the possibility, we do the same sort of dance that
- * EnableNotifyInterrupt must do --- see that routine for comments.
+
+ /*
+ * I'm not sure whether some flavors of Unix might allow another
+ * SIGUSR2 occurrence to recursively interrupt this routine. To
+ * cope with the possibility, we do the same sort of dance that
+ * EnableNotifyInterrupt must do --- see that routine for
+ * comments.
*/
notifyInterruptEnabled = 0; /* disable any recursive signal */
notifyInterruptOccurred = 1; /* do at least one iteration */
for (;;)
{
notifyInterruptEnabled = 1;
- if (! notifyInterruptOccurred)
+ if (!notifyInterruptOccurred)
break;
notifyInterruptEnabled = 0;
if (notifyInterruptOccurred)
@@ -621,14 +640,18 @@ Async_NotifyHandler(SIGNAL_ARGS)
}
else
{
- /* In this path it is NOT SAFE to do much of anything, except this: */
+
+ /*
+ * In this path it is NOT SAFE to do much of anything, except
+ * this:
+ */
notifyInterruptOccurred = 1;
}
}
/*
* --------------------------------------------------------------
- * EnableNotifyInterrupt
+ * EnableNotifyInterrupt
*
* This is called by the PostgresMain main loop just before waiting
* for a frontend command. If we are truly idle (ie, *not* inside
@@ -652,26 +675,27 @@ EnableNotifyInterrupt(void)
* notifyInterruptOccurred and then set notifyInterruptEnabled, we
* could fail to respond promptly to a signal that happens in between
* those two steps. (A very small time window, perhaps, but Murphy's
- * Law says you can hit it...) Instead, we first set the enable flag,
- * then test the occurred flag. If we see an unserviced interrupt
- * has occurred, we re-clear the enable flag before going off to do
- * the service work. (That prevents re-entrant invocation of
- * ProcessIncomingNotify() if another interrupt occurs.)
- * If an interrupt comes in between the setting and clearing of
- * notifyInterruptEnabled, then it will have done the service
- * work and left notifyInterruptOccurred zero, so we have to check
- * again after clearing enable. The whole thing has to be in a loop
- * in case another interrupt occurs while we're servicing the first.
- * Once we get out of the loop, enable is set and we know there is no
+ * Law says you can hit it...) Instead, we first set the enable flag,
+ * then test the occurred flag. If we see an unserviced interrupt has
+ * occurred, we re-clear the enable flag before going off to do the
+ * service work. (That prevents re-entrant invocation of
+ * ProcessIncomingNotify() if another interrupt occurs.) If an
+ * interrupt comes in between the setting and clearing of
+ * notifyInterruptEnabled, then it will have done the service work and
+ * left notifyInterruptOccurred zero, so we have to check again after
+ * clearing enable. The whole thing has to be in a loop in case
+ * another interrupt occurs while we're servicing the first. Once we
+ * get out of the loop, enable is set and we know there is no
* unserviced interrupt.
*
* NB: an overenthusiastic optimizing compiler could easily break this
- * code. Hopefully, they all understand what "volatile" means these days.
+ * code. Hopefully, they all understand what "volatile" means these
+ * days.
*/
for (;;)
{
notifyInterruptEnabled = 1;
- if (! notifyInterruptOccurred)
+ if (!notifyInterruptOccurred)
break;
notifyInterruptEnabled = 0;
if (notifyInterruptOccurred)
@@ -686,7 +710,7 @@ EnableNotifyInterrupt(void)
/*
* --------------------------------------------------------------
- * DisableNotifyInterrupt
+ * DisableNotifyInterrupt
*
* This is called by the PostgresMain main loop just after receiving
* a frontend command. Signal handler execution of inbound notifies
@@ -702,7 +726,7 @@ DisableNotifyInterrupt(void)
/*
* --------------------------------------------------------------
- * ProcessIncomingNotify
+ * ProcessIncomingNotify
*
* Deal with arriving NOTIFYs from other backends.
* This is called either directly from the SIGUSR2 signal handler,
@@ -777,6 +801,7 @@ ProcessIncomingNotify(void)
}
}
heap_endscan(sRel);
+
/*
* We do not do RelationUnsetLockForWrite(lRel) here, because the
* transaction is about to be committed anyway.
@@ -785,7 +810,10 @@ ProcessIncomingNotify(void)
CommitTransactionCommand();
- /* Must flush the notify messages to ensure frontend gets them promptly. */
+ /*
+ * Must flush the notify messages to ensure frontend gets them
+ * promptly.
+ */
pq_flush();
PS_SET_STATUS("idle");
@@ -800,20 +828,22 @@ NotifyMyFrontEnd(char *relname, int32 listenerPID)
if (whereToSendOutput == Remote)
{
StringInfoData buf;
+
pq_beginmessage(&buf);
pq_sendbyte(&buf, 'A');
pq_sendint(&buf, listenerPID, sizeof(int32));
pq_sendstring(&buf, relname);
pq_endmessage(&buf);
- /* NOTE: we do not do pq_flush() here. For a self-notify, it will
+
+ /*
+ * NOTE: we do not do pq_flush() here. For a self-notify, it will
* happen at the end of the transaction, and for incoming notifies
- * ProcessIncomingNotify will do it after finding all the notifies.
+ * ProcessIncomingNotify will do it after finding all the
+ * notifies.
*/
}
else
- {
elog(NOTICE, "NOTIFY for %s", relname);
- }
}
/* Does pendingNotifies include the given relname?
@@ -847,10 +877,12 @@ ClearPendingNotifies()
if (pendingNotifies)
{
- /* Since the referenced strings are malloc'd, we have to scan the
+
+ /*
+ * Since the referenced strings are malloc'd, we have to scan the
* list and delete them individually. If we used palloc for the
- * strings then we could just do DLFreeList to get rid of both
- * the list nodes and the list base...
+ * strings then we could just do DLFreeList to get rid of both the
+ * list nodes and the list base...
*/
while ((p = DLRemHead(pendingNotifies)) != NULL)
{
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index ae6cafa7b7c..29fb0d9a490 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.38 1999/02/13 23:15:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.39 1999/05/25 16:08:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -236,17 +236,17 @@ copy_heap(Oid OIDOldHeap)
static void
copy_index(Oid OIDOldIndex, Oid OIDNewHeap)
{
- Relation OldIndex,
- NewHeap;
- HeapTuple Old_pg_index_Tuple,
- Old_pg_index_relation_Tuple,
- pg_proc_Tuple;
+ Relation OldIndex,
+ NewHeap;
+ HeapTuple Old_pg_index_Tuple,
+ Old_pg_index_relation_Tuple,
+ pg_proc_Tuple;
Form_pg_index Old_pg_index_Form;
Form_pg_class Old_pg_index_relation_Form;
- Form_pg_proc pg_proc_Form;
- char *NewIndexName;
- AttrNumber *attnumP;
- int natts;
+ Form_pg_proc pg_proc_Form;
+ char *NewIndexName;
+ AttrNumber *attnumP;
+ int natts;
FuncIndexInfo *finfo;
NewHeap = heap_open(OIDNewHeap);
@@ -259,14 +259,14 @@ copy_index(Oid OIDOldIndex, Oid OIDNewHeap)
*/
Old_pg_index_Tuple = SearchSysCacheTuple(INDEXRELID,
ObjectIdGetDatum(RelationGetRelid(OldIndex)),
- 0, 0, 0);
+ 0, 0, 0);
Assert(Old_pg_index_Tuple);
Old_pg_index_Form = (Form_pg_index) GETSTRUCT(Old_pg_index_Tuple);
Old_pg_index_relation_Tuple = SearchSysCacheTuple(RELOID,
ObjectIdGetDatum(RelationGetRelid(OldIndex)),
- 0, 0, 0);
+ 0, 0, 0);
Assert(Old_pg_index_relation_Tuple);
Old_pg_index_relation_Form = (Form_pg_class) GETSTRUCT(Old_pg_index_relation_Tuple);
@@ -296,7 +296,7 @@ copy_index(Oid OIDOldIndex, Oid OIDNewHeap)
pg_proc_Tuple = SearchSysCacheTuple(PROOID,
ObjectIdGetDatum(Old_pg_index_Form->indproc),
- 0, 0, 0);
+ 0, 0, 0);
Assert(pg_proc_Tuple);
pg_proc_Form = (Form_pg_proc) GETSTRUCT(pg_proc_Tuple);
@@ -319,7 +319,7 @@ copy_index(Oid OIDOldIndex, Oid OIDNewHeap)
(uint16) 0, (Datum) NULL, NULL,
Old_pg_index_Form->indislossy,
Old_pg_index_Form->indisunique,
- Old_pg_index_Form->indisprimary);
+ Old_pg_index_Form->indisprimary);
heap_close(OldIndex);
heap_close(NewHeap);
@@ -329,14 +329,14 @@ copy_index(Oid OIDOldIndex, Oid OIDNewHeap)
static void
rebuildheap(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
{
- Relation LocalNewHeap,
- LocalOldHeap,
- LocalOldIndex;
- IndexScanDesc ScanDesc;
- RetrieveIndexResult ScanResult;
- HeapTupleData LocalHeapTuple;
- Buffer LocalBuffer;
- Oid OIDNewHeapInsert;
+ Relation LocalNewHeap,
+ LocalOldHeap,
+ LocalOldIndex;
+ IndexScanDesc ScanDesc;
+ RetrieveIndexResult ScanResult;
+ HeapTupleData LocalHeapTuple;
+ Buffer LocalBuffer;
+ Oid OIDNewHeapInsert;
/*
* Open the relations I need. Scan through the OldHeap on the OldIndex
diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c
index 7d8f72d51f9..f4c0f2115a7 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.44 1999/05/10 00:44:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.45 1999/05/25 16:08:17 momjian Exp $
*
* NOTES
* The PortalExecutorHeapMemory crap needs to be eliminated
@@ -117,18 +117,18 @@ PerformPortalFetch(char *name,
}
/* ----------------
- * Create a const node from the given count value
+ * Create a const node from the given count value
* ----------------
*/
memset(&limcount, 0, sizeof(limcount));
- limcount.type = T_Const;
- limcount.consttype = INT4OID;
- limcount.constlen = sizeof(int4);
- limcount.constvalue = (Datum)count;
- limcount.constisnull = FALSE;
+ limcount.type = T_Const;
+ limcount.consttype = INT4OID;
+ limcount.constlen = sizeof(int4);
+ limcount.constvalue = (Datum) count;
+ limcount.constisnull = FALSE;
limcount.constbyval = TRUE;
limcount.constisset = FALSE;
- limcount.constiscast = FALSE;
+ limcount.constiscast = FALSE;
/* ----------------
@@ -193,8 +193,8 @@ PerformPortalFetch(char *name,
*/
PortalExecutorHeapMemory = (MemoryContext) PortalGetHeapMemory(portal);
- ExecutorRun(queryDesc, PortalGetState(portal), feature,
- (Node *)NULL, (Node *)&limcount);
+ ExecutorRun(queryDesc, PortalGetState(portal), feature,
+ (Node *) NULL, (Node *) &limcount);
if (dest == None) /* MOVE */
pfree(queryDesc);
@@ -211,7 +211,7 @@ PerformPortalFetch(char *name,
* ----------------
*/
MemoryContextSwitchTo(
- (MemoryContext) PortalGetHeapMemory(GetPortalByName(NULL)));
+ (MemoryContext) PortalGetHeapMemory(GetPortalByName(NULL)));
}
/* --------------------------------
@@ -503,7 +503,7 @@ PerformAddAttribute(char *relationName,
heap_replace(rel, &reltup->t_self, reltup, NULL);
{
- HeapTuple temptup;
+ HeapTuple temptup;
if ((temptup = get_temp_rel_by_name(relationName)) != NULL)
((Form_pg_class) GETSTRUCT(temptup))->relnatts = maxatts;
@@ -519,7 +519,7 @@ PerformAddAttribute(char *relationName,
}
void
-LockTableCommand(LockStmt *lockstmt)
+LockTableCommand(LockStmt * lockstmt)
{
Relation rel;
int aclresult;
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 9347c6d67dd..d2b98ec4bc1 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.76 1999/05/10 00:44:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.77 1999/05/25 16:08:19 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -70,111 +70,138 @@ static int CountTuples(Relation relation);
static int lineno;
-/*
+/*
* Internal communications functions
*/
inline void CopySendData(void *databuf, int datasize, FILE *fp);
inline void CopySendString(char *str, FILE *fp);
inline void CopySendChar(char c, FILE *fp);
inline void CopyGetData(void *databuf, int datasize, FILE *fp);
-inline int CopyGetChar(FILE *fp);
-inline int CopyGetEof(FILE *fp);
-inline int CopyPeekChar(FILE *fp);
+inline int CopyGetChar(FILE *fp);
+inline int CopyGetEof(FILE *fp);
+inline int CopyPeekChar(FILE *fp);
inline void CopyDonePeek(FILE *fp, int c, int pickup);
/*
* CopySendData sends output data either to the file
- * specified by fp or, if fp is NULL, using the standard
- * backend->frontend functions
+ * specified by fp or, if fp is NULL, using the standard
+ * backend->frontend functions
*
* CopySendString does the same for null-terminated strings
* CopySendChar does the same for single characters
*
* NB: no data conversion is applied by these functions
*/
-inline void CopySendData(void *databuf, int datasize, FILE *fp) {
- if (!fp)
- pq_putbytes((char*) databuf, datasize);
- else
- fwrite(databuf, datasize, 1, fp);
+inline void
+CopySendData(void *databuf, int datasize, FILE *fp)
+{
+ if (!fp)
+ pq_putbytes((char *) databuf, datasize);
+ else
+ fwrite(databuf, datasize, 1, fp);
}
-
-inline void CopySendString(char *str, FILE *fp) {
- CopySendData(str,strlen(str),fp);
+
+inline void
+CopySendString(char *str, FILE *fp)
+{
+ CopySendData(str, strlen(str), fp);
}
-inline void CopySendChar(char c, FILE *fp) {
- CopySendData(&c,1,fp);
+inline void
+CopySendChar(char c, FILE *fp)
+{
+ CopySendData(&c, 1, fp);
}
/*
* CopyGetData reads output data either from the file
- * specified by fp or, if fp is NULL, using the standard
- * backend->frontend functions
+ * specified by fp or, if fp is NULL, using the standard
+ * backend->frontend functions
*
* CopyGetChar does the same for single characters
* CopyGetEof checks if it's EOF on the input
*
* NB: no data conversion is applied by these functions
*/
-inline void CopyGetData(void *databuf, int datasize, FILE *fp) {
- if (!fp)
- pq_getbytes((char*) databuf, datasize);
- else
- fread(databuf, datasize, 1, fp);
+inline void
+CopyGetData(void *databuf, int datasize, FILE *fp)
+{
+ if (!fp)
+ pq_getbytes((char *) databuf, datasize);
+ else
+ fread(databuf, datasize, 1, fp);
}
-inline int CopyGetChar(FILE *fp) {
- if (!fp)
- {
- unsigned char ch;
- if (pq_getbytes((char*) &ch, 1))
- return EOF;
- return ch;
- }
- else
- return getc(fp);
+inline int
+CopyGetChar(FILE *fp)
+{
+ if (!fp)
+ {
+ unsigned char ch;
+
+ if (pq_getbytes((char *) &ch, 1))
+ return EOF;
+ return ch;
+ }
+ else
+ return getc(fp);
}
-inline int CopyGetEof(FILE *fp) {
- if (!fp)
- return 0; /* Never return EOF when talking to frontend ? */
- else
- return feof(fp);
+inline int
+CopyGetEof(FILE *fp)
+{
+ if (!fp)
+ return 0; /* Never return EOF when talking to
+ * frontend ? */
+ else
+ return feof(fp);
}
/*
* CopyPeekChar reads a byte in "peekable" mode.
* after each call to CopyPeekChar, a call to CopyDonePeek _must_
* follow.
- * CopyDonePeek will either take the peeked char off the steam
+ * CopyDonePeek will either take the peeked char off the steam
* (if pickup is != 0) or leave it on the stream (if pickup == 0)
*/
-inline int CopyPeekChar(FILE *fp) {
- if (!fp)
- return pq_peekbyte();
- else
- return getc(fp);
+inline int
+CopyPeekChar(FILE *fp)
+{
+ if (!fp)
+ return pq_peekbyte();
+ else
+ return getc(fp);
}
-inline void CopyDonePeek(FILE *fp, int c, int pickup) {
- if (!fp) {
- if (pickup) {
- /* We want to pick it up - just receive again into dummy buffer */
- char c;
- pq_getbytes(&c, 1);
- }
- /* If we didn't want to pick it up, just leave it where it sits */
- }
- else {
- if (!pickup) {
- /* We don't want to pick it up - so put it back in there */
- ungetc(c,fp);
- }
- /* If we wanted to pick it up, it's already there */
- }
+inline void
+CopyDonePeek(FILE *fp, int c, int pickup)
+{
+ if (!fp)
+ {
+ if (pickup)
+ {
+
+ /*
+ * We want to pick it up - just receive again into dummy
+ * buffer
+ */
+ char c;
+
+ pq_getbytes(&c, 1);
+ }
+ /* If we didn't want to pick it up, just leave it where it sits */
+ }
+ else
+ {
+ if (!pickup)
+ {
+ /* We don't want to pick it up - so put it back in there */
+ ungetc(c, fp);
+ }
+ /* If we wanted to pick it up, it's already there */
+ }
}
-
+
/*
@@ -317,7 +344,7 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
else if (!from)
{
if (!binary)
- CopySendData("\\.\n",3,fp);
+ CopySendData("\\.\n", 3, fp);
if (IsUnderPostmaster)
pq_endcopyout(false);
}
@@ -395,8 +422,8 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
if (oids && !binary)
{
- CopySendString(oidout(tuple->t_data->t_oid),fp);
- CopySendChar(delim[0],fp);
+ CopySendString(oidout(tuple->t_data->t_oid), fp);
+ CopySendChar(delim[0], fp);
}
for (i = 0; i < attr_count; i++)
@@ -466,8 +493,8 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
}
}
}
- CopySendData((char *) tuple->t_data + tuple->t_data->t_hoff,
- length, fp);
+ CopySendData((char *) tuple->t_data + tuple->t_data->t_hoff,
+ length, fp);
}
}
@@ -521,7 +548,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
Node **indexPred = NULL;
TupleDesc rtupdesc;
ExprContext *econtext = NULL;
- EState *estate = makeNode(EState); /* for ExecConstraints() */
+ EState *estate = makeNode(EState); /* for ExecConstraints() */
#ifndef OMIT_PARTIAL_INDEX
TupleTable tupleTable;
@@ -566,11 +593,11 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
itupdescArr[i] = RelationGetDescr(index_rels[i]);
pgIndexTup = SearchSysCacheTuple(INDEXRELID,
ObjectIdGetDatum(RelationGetRelid(index_rels[i])),
- 0, 0, 0);
+ 0, 0, 0);
Assert(pgIndexTup);
pgIndexP[i] = (Form_pg_index) GETSTRUCT(pgIndexTup);
for (attnumP = &(pgIndexP[i]->indkey[0]), natts = 0;
- natts < INDEX_MAX_KEYS && *attnumP != InvalidAttrNumber;
+ natts < INDEX_MAX_KEYS && *attnumP != InvalidAttrNumber;
attnumP++, natts++);
if (pgIndexP[i]->indproc != InvalidOid)
{
@@ -777,7 +804,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
}
else if (nulls[i] != 'n')
{
- ptr = (char *)att_align(ptr, attr[i]->attlen, attr[i]->attalign);
+ ptr = (char *) att_align(ptr, attr[i]->attlen, attr[i]->attalign);
values[i] = (Datum) ptr;
ptr = att_addlength(ptr, attr[i]->attlen, ptr);
}
@@ -888,7 +915,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
pfree(index_nulls);
pfree(idatum);
pfree(byval);
-
+
if (!binary)
{
pfree(in_functions);
@@ -903,7 +930,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
{
if (index_rels[i] == NULL)
continue;
- if ((index_rels[i])->rd_rel->relam != BTREE_AM_OID &&
+ if ((index_rels[i])->rd_rel->relam != BTREE_AM_OID &&
(index_rels[i])->rd_rel->relam != HASH_AM_OID)
UnlockRelation(index_rels[i], AccessExclusiveLock);
index_close(index_rels[i]);
@@ -1022,12 +1049,12 @@ GetIndexRelations(Oid main_relation_oid,
{
index_relation_oid = (Oid) DatumGetInt32(heap_getattr(tuple, 2,
- tupDesc, &isnull));
+ tupDesc, &isnull));
if (index_relation_oid == main_relation_oid)
{
scan->index_rel_oid = (Oid) DatumGetInt32(heap_getattr(tuple,
- Anum_pg_index_indexrelid,
- tupDesc, &isnull));
+ Anum_pg_index_indexrelid,
+ tupDesc, &isnull));
(*n_indices)++;
scan->next = (RelationList *) palloc(sizeof(RelationList));
scan = scan->next;
@@ -1047,7 +1074,7 @@ GetIndexRelations(Oid main_relation_oid,
{
(*index_rels)[i] = index_open(scan->index_rel_oid);
/* comments in execUtils.c */
- if ((*index_rels)[i] != NULL &&
+ if ((*index_rels)[i] != NULL &&
((*index_rels)[i])->rd_rel->relam != BTREE_AM_OID &&
((*index_rels)[i])->rd_rel->relam != HASH_AM_OID)
LockRelation((*index_rels)[i], AccessExclusiveLock);
@@ -1176,26 +1203,29 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim)
if (ISOCTAL(c))
{
val = (val << 3) + VALUE(c);
- CopyDonePeek(fp, c, 1); /* Pick up the character! */
+ CopyDonePeek(fp, c, 1); /* Pick up the
+ * character! */
c = CopyPeekChar(fp);
- if (ISOCTAL(c)) {
- CopyDonePeek(fp,c,1); /* pick up! */
+ if (ISOCTAL(c))
+ {
+ CopyDonePeek(fp, c, 1); /* pick up! */
val = (val << 3) + VALUE(c);
}
else
{
- if (CopyGetEof(fp)) {
- CopyDonePeek(fp,c,1); /* pick up */
+ if (CopyGetEof(fp))
+ {
+ CopyDonePeek(fp, c, 1); /* pick up */
return NULL;
}
- CopyDonePeek(fp,c,0); /* Return to stream! */
+ CopyDonePeek(fp, c, 0); /* Return to stream! */
}
}
else
{
if (CopyGetEof(fp))
return NULL;
- CopyDonePeek(fp,c,0); /* Return to stream! */
+ CopyDonePeek(fp, c, 0); /* Return to stream! */
}
c = val & 0377;
}
diff --git a/src/backend/commands/creatinh.c b/src/backend/commands/creatinh.c
index 0d4c3fc8b87..e9c5fdcd894 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.40 1999/02/13 23:15:05 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.41 1999/05/25 16:08:20 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -39,7 +39,7 @@ static List *MergeAttributes(List *schema, List *supers, List **supconstr);
static void StoreCatalogInheritance(Oid relationId, List *supers);
/* ----------------------------------------------------------------
- * DefineRelation
+ * DefineRelation
* Creates a new relation.
* ----------------------------------------------------------------
*/
@@ -90,10 +90,10 @@ DefineRelation(CreateStmt *stmt, char relkind)
if (constraints != NIL)
{
- List *entry;
- int nconstr = length(constraints),
- ncheck = 0,
- i;
+ List *entry;
+ int nconstr = length(constraints),
+ ncheck = 0,
+ i;
ConstrCheck *check = (ConstrCheck *) palloc(nconstr * sizeof(ConstrCheck));
foreach(entry, constraints)
@@ -107,9 +107,9 @@ DefineRelation(CreateStmt *stmt, char relkind)
for (i = 0; i < ncheck; i++)
{
if (strcmp(check[i].ccname, cdef->name) == 0)
- elog(ERROR,
- "DefineRelation: name (%s) of CHECK constraint duplicated",
- cdef->name);
+ elog(ERROR,
+ "DefineRelation: name (%s) of CHECK constraint duplicated",
+ cdef->name);
}
check[ncheck].ccname = cdef->name;
}
@@ -145,7 +145,7 @@ DefineRelation(CreateStmt *stmt, char relkind)
}
/*
- * RemoveRelation
+ * RemoveRelation
* Deletes a new relation.
*
* Exceptions:
@@ -164,7 +164,7 @@ RemoveRelation(char *name)
/*
- * MergeAttributes
+ * MergeAttributes
* Returns new schema given initial schema and supers.
*
*
@@ -276,8 +276,8 @@ MergeAttributes(List *schema, List *supers, List **supconstr)
*/
attributeName = (attribute->attname).data;
tuple = SearchSysCacheTuple(TYPOID,
- ObjectIdGetDatum(attribute->atttypid),
- 0, 0, 0);
+ ObjectIdGetDatum(attribute->atttypid),
+ 0, 0, 0);
Assert(HeapTupleIsValid(tuple));
attributeType = (((Form_pg_type) GETSTRUCT(tuple))->typname).data;
@@ -365,7 +365,7 @@ MergeAttributes(List *schema, List *supers, List **supconstr)
}
/*
- * StoreCatalogInheritance
+ * StoreCatalogInheritance
* Updates the system catalogs with proper inheritance information.
*/
static void
@@ -411,9 +411,9 @@ StoreCatalogInheritance(Oid relationId, List *supers)
*/
idList = lappendi(idList, tuple->t_data->t_oid);
- datum[0] = ObjectIdGetDatum(relationId); /* inhrel */
- datum[1] = ObjectIdGetDatum(tuple->t_data->t_oid); /* inhparent */
- datum[2] = Int16GetDatum(seqNumber); /* inhseqno */
+ datum[0] = ObjectIdGetDatum(relationId); /* inhrel */
+ datum[1] = ObjectIdGetDatum(tuple->t_data->t_oid); /* inhparent */
+ datum[2] = Int16GetDatum(seqNumber); /* inhseqno */
nullarr[0] = ' ';
nullarr[1] = ' ';
@@ -467,8 +467,8 @@ StoreCatalogInheritance(Oid relationId, List *supers)
break;
lnext(current) = lconsi(((Form_pg_inherits)
- GETSTRUCT(tuple))->inhparent,
- NIL);
+ GETSTRUCT(tuple))->inhparent,
+ NIL);
current = lnext(current);
}
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 943d7acb432..06f0a8115a5 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.34 1999/05/10 00:44:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.35 1999/05/25 16:08:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,8 +47,8 @@ createdb(char *dbname, char *dbpath, int encoding, CommandDest dest)
Oid db_id;
int4 user_id;
char buf[512];
- char *lp,
- loc[512];
+ char *lp,
+ loc[512];
/*
* If this call returns, the database does not exist and we're allowed
@@ -80,13 +80,13 @@ createdb(char *dbname, char *dbpath, int encoding, CommandDest dest)
elog(ERROR, "Unable to create database directory '%s'", lp);
snprintf(buf, 512, "%s %s%cbase%ctemplate1%c* %s",
- COPY_CMD, DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR, lp);
+ COPY_CMD, DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR, lp);
system(buf);
- snprintf(buf, 512,
- "insert into pg_database (datname, datdba, encoding, datpath)"
- " values ('%s', '%d', '%d', '%s');", dbname, user_id, encoding,
- loc);
+ snprintf(buf, 512,
+ "insert into pg_database (datname, datdba, encoding, datpath)"
+ " values ('%s', '%d', '%d', '%s');", dbname, user_id, encoding,
+ loc);
pg_exec_query_dest(buf, dest, false);
}
@@ -96,9 +96,9 @@ destroydb(char *dbname, CommandDest dest)
{
int4 user_id;
Oid db_id;
- char *path,
- dbpath[MAXPGPATH + 1],
- buf[512];
+ char *path,
+ dbpath[MAXPGPATH + 1],
+ buf[512];
/*
* If this call returns, the database exists and we're allowed to
@@ -122,9 +122,9 @@ destroydb(char *dbname, CommandDest dest)
* remove the pg_database tuple FIRST, this may fail due to
* permissions problems
*/
- snprintf(buf, 512,
- "delete from pg_database where pg_database.oid = \'%u\'::oid", db_id);
- pg_exec_query_dest(buf ,dest, false);
+ snprintf(buf, 512,
+ "delete from pg_database where pg_database.oid = \'%u\'::oid", db_id);
+ pg_exec_query_dest(buf, dest, false);
/* drop pages for this database that are in the shared buffer cache */
DropBuffers(db_id);
@@ -294,13 +294,13 @@ static void
stop_vacuum(char *dbpath, char *dbname)
{
char filename[256];
- FILE *fp;
+ FILE *fp;
int pid;
if (strchr(dbpath, SEP_CHAR) != 0)
{
- snprintf(filename, 256, "%s%cbase%c%s%c%s.vacuum",
- DataDir, SEP_CHAR, SEP_CHAR, dbname, SEP_CHAR, dbname);
+ snprintf(filename, 256, "%s%cbase%c%s%c%s.vacuum",
+ DataDir, SEP_CHAR, SEP_CHAR, dbname, SEP_CHAR, dbname);
}
else
snprintf(filename, 256, "%s%c%s.vacuum", dbpath, SEP_CHAR, dbname);
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index 04bd1e89638..34d322524c7 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.28 1999/04/09 22:35:41 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.29 1999/05/25 16:08:22 momjian Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -203,7 +203,7 @@ interpret_AS_clause(const char *languageName, const char *as,
/*
- * CreateFunction
+ * CreateFunction
* Execute a CREATE FUNCTION utility statement.
*
*/
@@ -574,7 +574,7 @@ DefineAggregate(char *aggName, List *parameters)
}
/*
- * DefineType
+ * DefineType
* Registers a new type.
*
*/
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 6a04417964b..66fcd8647b0 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -4,7 +4,7 @@
*
* Copyright (c) 1994-5, Regents of the University of California
*
- * $Id: explain.c,v 1.36 1999/05/09 23:31:45 tgl Exp $
+ * $Id: explain.c,v 1.37 1999/05/25 16:08:23 momjian Exp $
*
*/
#include <stdio.h>
@@ -34,7 +34,7 @@ typedef struct ExplainState
} ExplainState;
static char *Explain_PlanToString(Plan *plan, ExplainState *es);
-static void printLongNotice(const char * header, const char * message);
+static void printLongNotice(const char *header, const char *message);
static void ExplainOneQuery(Query *query, bool verbose, CommandDest dest);
@@ -46,8 +46,8 @@ static void ExplainOneQuery(Query *query, bool verbose, CommandDest dest);
void
ExplainQuery(Query *query, bool verbose, CommandDest dest)
{
- List *rewritten;
- List *l;
+ List *rewritten;
+ List *l;
/* rewriter and planner may not work in aborted state? */
if (IsAbortedTransactionBlockState())
@@ -145,10 +145,10 @@ ExplainOneQuery(Query *query, bool verbose, CommandDest dest)
static void
explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
{
- List *l;
+ List *l;
Relation relation;
- char *pname;
- int i;
+ char *pname;
+ int i;
if (plan == NULL)
{
@@ -208,15 +208,13 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
case T_IndexScan:
appendStringInfo(str, " using ");
i = 0;
- foreach (l, ((IndexScan *) plan)->indxid)
+ foreach(l, ((IndexScan *) plan)->indxid)
{
relation = RelationIdCacheGetRelation((int) lfirst(l));
if (++i > 1)
- {
appendStringInfo(str, ", ");
- }
- appendStringInfo(str,
- stringStringInfo((RelationGetRelationName(relation))->data));
+ appendStringInfo(str,
+ stringStringInfo((RelationGetRelationName(relation))->data));
}
case T_SeqScan:
if (((Scan *) plan)->scanrelid > 0)
@@ -227,7 +225,7 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
if (strcmp(rte->refname, rte->relname) != 0)
{
appendStringInfo(str, "%s ",
- stringStringInfo(rte->relname));
+ stringStringInfo(rte->relname));
}
appendStringInfo(str, stringStringInfo(rte->refname));
}
@@ -238,7 +236,7 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
if (es->printCost)
{
appendStringInfo(str, " (cost=%.2f rows=%d width=%d)",
- plan->cost, plan->plan_size, plan->plan_width);
+ plan->cost, plan->plan_size, plan->plan_width);
}
appendStringInfo(str, "\n");
@@ -248,18 +246,14 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
List *saved_rtable = es->rtable;
List *lst;
- for (i = 0; i < indent; i++)
- {
+ for (i = 0; i < indent; i++)
appendStringInfo(str, " ");
- }
appendStringInfo(str, " InitPlan\n");
foreach(lst, plan->initPlan)
{
es->rtable = ((SubPlan *) lfirst(lst))->rtable;
for (i = 0; i < indent; i++)
- {
appendStringInfo(str, " ");
- }
appendStringInfo(str, " -> ");
explain_outNode(str, ((SubPlan *) lfirst(lst))->plan, indent + 2, es);
}
@@ -270,9 +264,7 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
if (outerPlan(plan))
{
for (i = 0; i < indent; i++)
- {
appendStringInfo(str, " ");
- }
appendStringInfo(str, " -> ");
explain_outNode(str, outerPlan(plan), indent + 3, es);
}
@@ -281,9 +273,7 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
if (innerPlan(plan))
{
for (i = 0; i < indent; i++)
- {
appendStringInfo(str, " ");
- }
appendStringInfo(str, " -> ");
explain_outNode(str, innerPlan(plan), indent + 3, es);
}
@@ -295,17 +285,13 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
List *lst;
for (i = 0; i < indent; i++)
- {
appendStringInfo(str, " ");
- }
appendStringInfo(str, " SubPlan\n");
foreach(lst, plan->subPlan)
{
es->rtable = ((SubPlan *) lfirst(lst))->rtable;
for (i = 0; i < indent; i++)
- {
appendStringInfo(str, " ");
- }
appendStringInfo(str, " -> ");
explain_outNode(str, ((SubPlan *) lfirst(lst))->plan, indent + 4, es);
}
@@ -336,9 +322,7 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
es->rtable = nth(whichplan, appendplan->unionrtables);
for (i = 0; i < indent; i++)
- {
appendStringInfo(str, " ");
- }
appendStringInfo(str, " -> ");
explain_outNode(str, subnode, indent + 4, es);
@@ -353,7 +337,7 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es)
static char *
Explain_PlanToString(Plan *plan, ExplainState *es)
{
- StringInfoData str;
+ StringInfoData str;
/* see stringinfo.h for an explanation of this maneuver */
initStringInfo(&str);
@@ -367,9 +351,9 @@ Explain_PlanToString(Plan *plan, ExplainState *es)
* This is a crock ... there shouldn't be an upper limit to what you can elog().
*/
static void
-printLongNotice(const char * header, const char * message)
+printLongNotice(const char *header, const char *message)
{
- int len = strlen(message);
+ int len = strlen(message);
elog(NOTICE, "%.20s%.*s", header, ELOG_MAXLEN - 64, message);
len -= ELOG_MAXLEN - 64;
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 5907205bd87..e7f047477ca 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.3 1999/05/10 00:44:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.4 1999/05/25 16:08:24 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,7 +53,7 @@ static void NormIndexAttrs(List *attList, AttrNumber *attNumP,
static char *GetDefaultOpClass(Oid atttypid);
/*
- * DefineIndex
+ * DefineIndex
* Creates a new index.
*
* 'attributeList' is a list of IndexElem specifying either a functional
@@ -164,7 +164,7 @@ DefineIndex(char *heapRelationName,
if (nargs > INDEX_MAX_KEYS)
{
elog(ERROR,
- "Too many args to function, limit of %d", INDEX_MAX_KEYS);
+ "Too many args to function, limit of %d", INDEX_MAX_KEYS);
}
FIsetnArgs(&fInfo, nargs);
@@ -207,7 +207,7 @@ DefineIndex(char *heapRelationName,
/*
- * ExtendIndex
+ * ExtendIndex
* Extends a partial index.
*
* Exceptions:
@@ -304,7 +304,7 @@ ExtendIndex(char *indexRelationName, Expr *predicate, List *rangetable)
predInfo->oldPred = oldPred;
attributeNumberA = (AttrNumber *) palloc(numberOfAttributes *
- sizeof attributeNumberA[0]);
+ sizeof attributeNumberA[0]);
classObjectId = (Oid *) palloc(numberOfAttributes * sizeof classObjectId[0]);
@@ -501,7 +501,7 @@ NormIndexAttrs(List *attList, /* list of IndexElem's */
/* we just set the type name because that is all we need */
attribute->typename = makeNode(TypeName);
attribute->typename->name = nameout(&((Form_pg_type) GETSTRUCT(tuple))->typname);
-
+
/* we all need the typmod for the char and varchar types. */
attribute->typename->typmod = attform->atttypmod;
}
@@ -547,7 +547,7 @@ GetDefaultOpClass(Oid atttypid)
}
/*
- * RemoveIndex
+ * RemoveIndex
* Deletes an index.
*
* Exceptions:
diff --git a/src/backend/commands/remove.c b/src/backend/commands/remove.c
index 5334bd347d2..7ae4c2c176d 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.32 1999/02/13 23:15:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.33 1999/05/25 16:08:25 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -36,7 +36,7 @@
#endif
/*
- * RemoveOperator
+ * RemoveOperator
* Deletes an operator.
*
* Exceptions:
@@ -288,7 +288,7 @@ RemoveType(char *typeName) /* type name to be removed */
}
/*
- * RemoveFunction
+ * RemoveFunction
* Deletes a function.
*
* Exceptions:
diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c
index 457facdd8fc..061534054a9 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.24 1999/05/17 18:24:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.25 1999/05/25 16:08:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -142,7 +142,7 @@ renameatt(char *relname,
}
}
-
+
if ((relid = RelnameFindRelid(relname)) == InvalidOid)
elog(ERROR, "renameatt: relation \"%s\" nonexistent", relname);
@@ -201,7 +201,7 @@ renameatt(char *relname,
void
renamerel(char *oldrelname, char *newrelname)
{
- int i;
+ int i;
Relation relrelation; /* for RELATION relation */
HeapTuple oldreltup;
char oldpath[MAXPGPATH],
@@ -237,7 +237,7 @@ renamerel(char *oldrelname, char *newrelname)
{
sprintf(toldpath, "%s.%d", oldpath, i);
sprintf(tnewpath, "%s.%d", newpath, i);
- if(rename(toldpath, tnewpath) < 0)
+ if (rename(toldpath, tnewpath) < 0)
break;
}
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index d76eb07481d..a6f18e01d3d 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -66,7 +66,7 @@ static void init_params(CreateSeqStmt *seq, Form_pg_sequence new);
static int get_param(DefElem *def);
/*
- * DefineSequence
+ * DefineSequence
* Creates a new sequence relation
*/
void
@@ -218,8 +218,8 @@ nextval(struct varlena * seqin)
return elm->last;
}
- seq = read_info("nextval", elm, &buf); /* lock page' buffer and read
- * tuple */
+ seq = read_info("nextval", elm, &buf); /* lock page' buffer and
+ * read tuple */
next = result = seq->last_value;
incby = seq->increment_by;
@@ -327,8 +327,8 @@ setval(struct varlena * seqin, int4 next)
/* open and AccessShareLock sequence */
elm = init_sequence("setval", seqname);
- seq = read_info("setval", elm, &buf); /* lock page' buffer and read
- * tuple */
+ seq = read_info("setval", elm, &buf); /* lock page' buffer and
+ * read tuple */
if (seq->cache_value != 1)
{
@@ -361,11 +361,11 @@ setval(struct varlena * seqin, int4 next)
static Form_pg_sequence
read_info(char *caller, SeqTable elm, Buffer *buf)
{
- PageHeader page;
- ItemId lp;
- HeapTupleData tuple;
+ PageHeader page;
+ ItemId lp;
+ HeapTupleData tuple;
sequence_magic *sm;
- Form_pg_sequence seq;
+ Form_pg_sequence seq;
if (RelationGetNumberOfBlocks(elm->rel) != 1)
elog(ERROR, "%s.%s: invalid number of blocks in sequence",
@@ -464,7 +464,7 @@ init_sequence(char *caller, char *name)
/*
- * CloseSequences
+ * CloseSequences
* is calling by xact mgr at commit/abort.
*/
void
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 09b7fdcbc3d..cc3d27599c1 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -362,9 +362,9 @@ RelationBuildTriggers(Relation relation)
Form_pg_trigger pg_trigger;
Relation irel;
ScanKeyData skey;
- HeapTupleData tuple;
- IndexScanDesc sd;
- RetrieveIndexResult indexRes;
+ HeapTupleData tuple;
+ IndexScanDesc sd;
+ RetrieveIndexResult indexRes;
Buffer buffer;
struct varlena *val;
bool isnull;
@@ -659,14 +659,14 @@ ExecARInsertTriggers(Relation rel, HeapTuple trigtuple)
bool
ExecBRDeleteTriggers(EState *estate, ItemPointer tupleid)
{
- Relation rel = estate->es_result_relation_info->ri_RelationDesc;
- TriggerData *SaveTriggerData;
- int ntrigs = rel->trigdesc->n_before_row[TRIGGER_EVENT_DELETE];
- Trigger **trigger = rel->trigdesc->tg_before_row[TRIGGER_EVENT_DELETE];
- HeapTuple trigtuple;
- HeapTuple newtuple = NULL;
+ Relation rel = estate->es_result_relation_info->ri_RelationDesc;
+ TriggerData *SaveTriggerData;
+ int ntrigs = rel->trigdesc->n_before_row[TRIGGER_EVENT_DELETE];
+ Trigger **trigger = rel->trigdesc->tg_before_row[TRIGGER_EVENT_DELETE];
+ HeapTuple trigtuple;
+ HeapTuple newtuple = NULL;
TupleTableSlot *newSlot;
- int i;
+ int i;
trigtuple = GetTupleForTrigger(estate, tupleid, &newSlot);
if (trigtuple == NULL)
@@ -697,7 +697,7 @@ ExecBRDeleteTriggers(EState *estate, ItemPointer tupleid)
void
ExecARDeleteTriggers(EState *estate, ItemPointer tupleid)
{
- Relation rel = estate->es_result_relation_info->ri_RelationDesc;
+ Relation rel = estate->es_result_relation_info->ri_RelationDesc;
TriggerData *SaveTriggerData;
int ntrigs = rel->trigdesc->n_after_row[TRIGGER_EVENT_DELETE];
Trigger **trigger = rel->trigdesc->tg_after_row[TRIGGER_EVENT_DELETE];
@@ -727,23 +727,23 @@ ExecARDeleteTriggers(EState *estate, ItemPointer tupleid)
HeapTuple
ExecBRUpdateTriggers(EState *estate, ItemPointer tupleid, HeapTuple newtuple)
{
- Relation rel = estate->es_result_relation_info->ri_RelationDesc;
- TriggerData *SaveTriggerData;
- int ntrigs = rel->trigdesc->n_before_row[TRIGGER_EVENT_UPDATE];
- Trigger **trigger = rel->trigdesc->tg_before_row[TRIGGER_EVENT_UPDATE];
- HeapTuple trigtuple;
- HeapTuple oldtuple;
- HeapTuple intuple = newtuple;
+ Relation rel = estate->es_result_relation_info->ri_RelationDesc;
+ TriggerData *SaveTriggerData;
+ int ntrigs = rel->trigdesc->n_before_row[TRIGGER_EVENT_UPDATE];
+ Trigger **trigger = rel->trigdesc->tg_before_row[TRIGGER_EVENT_UPDATE];
+ HeapTuple trigtuple;
+ HeapTuple oldtuple;
+ HeapTuple intuple = newtuple;
TupleTableSlot *newSlot;
- int i;
+ int i;
trigtuple = GetTupleForTrigger(estate, tupleid, &newSlot);
if (trigtuple == NULL)
return NULL;
/*
- * In READ COMMITTED isolevel it's possible that newtuple
- * was changed due to concurrent update.
+ * In READ COMMITTED isolevel it's possible that newtuple was changed
+ * due to concurrent update.
*/
if (newSlot != NULL)
intuple = newtuple = ExecRemoveJunk(estate->es_junkFilter, newSlot);
@@ -772,7 +772,7 @@ ExecBRUpdateTriggers(EState *estate, ItemPointer tupleid, HeapTuple newtuple)
void
ExecARUpdateTriggers(EState *estate, ItemPointer tupleid, HeapTuple newtuple)
{
- Relation rel = estate->es_result_relation_info->ri_RelationDesc;
+ Relation rel = estate->es_result_relation_info->ri_RelationDesc;
TriggerData *SaveTriggerData;
int ntrigs = rel->trigdesc->n_after_row[TRIGGER_EVENT_UPDATE];
Trigger **trigger = rel->trigdesc->tg_after_row[TRIGGER_EVENT_UPDATE];
@@ -799,22 +799,22 @@ ExecARUpdateTriggers(EState *estate, ItemPointer tupleid, HeapTuple newtuple)
return;
}
-extern TupleTableSlot *EvalPlanQual(EState *estate, Index rti, ItemPointer tid);
+extern TupleTableSlot *EvalPlanQual(EState *estate, Index rti, ItemPointer tid);
static HeapTuple
GetTupleForTrigger(EState *estate, ItemPointer tid, TupleTableSlot **newSlot)
{
- Relation relation = estate->es_result_relation_info->ri_RelationDesc;
- HeapTupleData tuple;
- HeapTuple result;
- Buffer buffer;
+ Relation relation = estate->es_result_relation_info->ri_RelationDesc;
+ HeapTupleData tuple;
+ HeapTuple result;
+ Buffer buffer;
if (newSlot != NULL)
{
- int test;
+ int test;
/*
- * mark tuple for update
+ * mark tuple for update
*/
*newSlot = NULL;
tuple.t_self = *tid;
@@ -824,7 +824,7 @@ ltrmark:;
{
case HeapTupleSelfUpdated:
ReleaseBuffer(buffer);
- return(NULL);
+ return (NULL);
case HeapTupleMayBeUpdated:
break;
@@ -835,9 +835,9 @@ ltrmark:;
elog(ERROR, "Can't serialize access due to concurrent update");
else if (!(ItemPointerEquals(&(tuple.t_self), tid)))
{
- TupleTableSlot *epqslot = EvalPlanQual(estate,
- estate->es_result_relation_info->ri_RangeTableIndex,
- &(tuple.t_self));
+ TupleTableSlot *epqslot = EvalPlanQual(estate,
+ estate->es_result_relation_info->ri_RangeTableIndex,
+ &(tuple.t_self));
if (!(TupIsNull(epqslot)))
{
@@ -846,23 +846,23 @@ ltrmark:;
goto ltrmark;
}
}
- /*
- * if tuple was deleted or PlanQual failed
- * for updated tuple - we have not process
- * this tuple!
+
+ /*
+ * if tuple was deleted or PlanQual failed for updated
+ * tuple - we have not process this tuple!
*/
- return(NULL);
+ return (NULL);
default:
ReleaseBuffer(buffer);
elog(ERROR, "Unknown status %u from heap_mark4update", test);
- return(NULL);
+ return (NULL);
}
}
else
{
- PageHeader dp;
- ItemId lp;
+ PageHeader dp;
+ ItemId lp;
buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 2b99c8efa89..57ac35fb1f4 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -5,11 +5,11 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: user.c,v 1.27 1999/04/02 06:16:36 tgl Exp $
+ * $Id: user.c,v 1.28 1999/05/25 16:08:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
-#include <stdio.h>
+#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -35,7 +35,7 @@
static void CheckPgUserAclNotNull(void);
-#define SQL_LENGTH 512
+#define SQL_LENGTH 512
/*---------------------------------------------------------------------
* UpdatePgPwdFile
@@ -49,9 +49,9 @@ void
UpdatePgPwdFile(char *sql, CommandDest dest)
{
- char *filename,
- *tempname;
- int bufsize;
+ char *filename,
+ *tempname;
+ int bufsize;
/*
* Create a temporary filename to be renamed later. This prevents the
@@ -68,9 +68,9 @@ UpdatePgPwdFile(char *sql, CommandDest dest)
* SEPCHAR character as the delimiter between fields. Then rename the
* file to its final name.
*/
- snprintf(sql, SQL_LENGTH,
- "copy %s to '%s' using delimiters %s",
- ShadowRelationName, tempname, CRYPT_PWD_FILE_SEPCHAR);
+ snprintf(sql, SQL_LENGTH,
+ "copy %s to '%s' using delimiters %s",
+ ShadowRelationName, tempname, CRYPT_PWD_FILE_SEPCHAR);
pg_exec_query_dest(sql, dest, false);
rename(tempname, filename);
pfree((void *) tempname);
@@ -94,19 +94,19 @@ UpdatePgPwdFile(char *sql, CommandDest dest)
void
DefineUser(CreateUserStmt *stmt, CommandDest dest)
{
- char *pg_shadow,
- sql[SQL_LENGTH];
- Relation pg_shadow_rel;
- TupleDesc pg_shadow_dsc;
- HeapScanDesc scan;
- HeapTuple tuple;
- Datum datum;
- bool exists = false,
- n,
- inblock,
- havepassword,
- havevaluntil;
- int max_id = -1;
+ char *pg_shadow,
+ sql[SQL_LENGTH];
+ Relation pg_shadow_rel;
+ TupleDesc pg_shadow_dsc;
+ HeapScanDesc scan;
+ HeapTuple tuple;
+ Datum datum;
+ bool exists = false,
+ n,
+ inblock,
+ havepassword,
+ havevaluntil;
+ int max_id = -1;
havepassword = stmt->password && stmt->password[0];
havevaluntil = stmt->validUntil && stmt->validUntil[0];
@@ -161,21 +161,21 @@ DefineUser(CreateUserStmt *stmt, CommandDest dest)
UnlockRelation(pg_shadow_rel, AccessExclusiveLock);
heap_close(pg_shadow_rel);
UserAbortTransactionBlock();
- elog(ERROR,
- "defineUser: user \"%s\" has already been created", stmt->user);
+ elog(ERROR,
+ "defineUser: user \"%s\" has already been created", stmt->user);
return;
}
/*
* Build the insert statement to be executed.
*
- * XXX Ugly as this code is, it still fails to cope with ' or \
- * in any of the provided strings.
+ * XXX Ugly as this code is, it still fails to cope with ' or \ in any of
+ * the provided strings.
*/
- snprintf(sql, SQL_LENGTH,
+ snprintf(sql, SQL_LENGTH,
"insert into %s (usename,usesysid,usecreatedb,usetrace,"
"usesuper,usecatupd,passwd,valuntil) "
- "values('%s',%d,'%c','t','%c','t',%s%s%s,%s%s%s)",
+ "values('%s',%d,'%c','t','%c','t',%s%s%s,%s%s%s)",
ShadowRelationName,
stmt->user,
max_id + 1,
@@ -216,12 +216,12 @@ extern void
AlterUser(AlterUserStmt *stmt, CommandDest dest)
{
- char *pg_shadow,
- sql[SQL_LENGTH];
+ char *pg_shadow,
+ sql[SQL_LENGTH];
Relation pg_shadow_rel;
TupleDesc pg_shadow_dsc;
HeapTuple tuple;
- bool inblock;
+ bool inblock;
if (stmt->password)
CheckPgUserAclNotNull();
@@ -272,34 +272,32 @@ AlterUser(AlterUserStmt *stmt, CommandDest dest)
snprintf(sql, SQL_LENGTH, "update %s set", ShadowRelationName);
if (stmt->password)
- {
snprintf(sql, SQL_LENGTH, "%s passwd = '%s'", pstrdup(sql), stmt->password);
- }
if (stmt->createdb)
{
snprintf(sql, SQL_LENGTH, "%s %susecreatedb='%s'",
- pstrdup(sql), stmt->password ? "," : "",
- *stmt->createdb ? "t" : "f");
+ pstrdup(sql), stmt->password ? "," : "",
+ *stmt->createdb ? "t" : "f");
}
if (stmt->createuser)
{
snprintf(sql, SQL_LENGTH, "%s %susesuper='%s'",
- pstrdup(sql), (stmt->password || stmt->createdb) ? "," : "",
- *stmt->createuser ? "t" : "f");
+ pstrdup(sql), (stmt->password || stmt->createdb) ? "," : "",
+ *stmt->createuser ? "t" : "f");
}
if (stmt->validUntil)
{
snprintf(sql, SQL_LENGTH, "%s %svaluntil='%s'",
- pstrdup(sql),
- (stmt->password || stmt->createdb || stmt->createuser) ? "," : "",
- stmt->validUntil);
+ pstrdup(sql),
+ (stmt->password || stmt->createdb || stmt->createuser) ? "," : "",
+ stmt->validUntil);
}
snprintf(sql, SQL_LENGTH, "%s where usename = '%s'",
- pstrdup(sql), stmt->user);
+ pstrdup(sql), stmt->user);
pg_exec_query_dest(sql, dest, false);
@@ -393,8 +391,8 @@ RemoveUser(char *user, CommandDest dest)
datum = heap_getattr(tuple, Anum_pg_database_datname, pg_dsc, &n);
if (memcmp((void *) datum, "template1", 9))
{
- dbase =
- (char **) repalloc((void *) dbase, sizeof(char *) * (ndbase + 1));
+ dbase =
+ (char **) repalloc((void *) dbase, sizeof(char *) * (ndbase + 1));
dbase[ndbase] = (char *) palloc(NAMEDATALEN + 1);
memcpy((void *) dbase[ndbase], (void *) datum, NAMEDATALEN);
dbase[ndbase++][NAMEDATALEN] = '\0';
@@ -435,8 +433,8 @@ RemoveUser(char *user, CommandDest dest)
/*
* Remove the user from the pg_shadow table
*/
- snprintf(sql, SQL_LENGTH,
- "delete from %s where usename = '%s'", ShadowRelationName, user);
+ snprintf(sql, SQL_LENGTH,
+ "delete from %s where usename = '%s'", ShadowRelationName, user);
pg_exec_query_dest(sql, dest, false);
UpdatePgPwdFile(sql, dest);
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 82ba86f84e9..8c929678b35 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.103 1999/05/23 09:10:24 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.104 1999/05/25 16:08:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -66,7 +66,7 @@ static Portal vc_portal;
static int MESSAGE_LEVEL; /* message level */
-static TransactionId XmaxRecent;
+static TransactionId XmaxRecent;
#define swapLong(a,b) {long tmp; tmp=a; a=b; b=tmp;}
#define swapInt(a,b) {int tmp; tmp=a; a=b; b=tmp;}
@@ -101,8 +101,8 @@ static void vc_free(VRelList vrl);
static void vc_getindices(Oid relid, int *nindices, Relation **Irel);
static void vc_clsindices(int nindices, Relation *Irel);
static void vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc);
-static void *vc_find_eq(void *bot, int nelem, int size, void *elm,
- int (*compar) (const void *, const void *));
+static void *vc_find_eq(void *bot, int nelem, int size, void *elm,
+ int (*compar) (const void *, const void *));
static int vc_cmp_blk(const void *left, const void *right);
static int vc_cmp_offno(const void *left, const void *right);
static int vc_cmp_vtlinks(const void *left, const void *right);
@@ -222,14 +222,15 @@ vc_shutdown()
{
/* on entry, we are not in a transaction */
- /* Flush the init file that relcache.c uses to save startup time.
- * The next backend startup will rebuild the init file with up-to-date
- * information from pg_class. This lets the optimizer see the stats that
- * we've collected for certain critical system indexes. See relcache.c
- * for more details.
+ /*
+ * Flush the init file that relcache.c uses to save startup time. The
+ * next backend startup will rebuild the init file with up-to-date
+ * information from pg_class. This lets the optimizer see the stats
+ * that we've collected for certain critical system indexes. See
+ * relcache.c for more details.
*
- * Ignore any failure to unlink the file, since it might not be there
- * if no backend has been started since the last vacuum...
+ * Ignore any failure to unlink the file, since it might not be there if
+ * no backend has been started since the last vacuum...
*/
unlink(RELCACHE_INIT_FILENAME);
@@ -578,7 +579,7 @@ vc_vacone(Oid relid, bool analyze, List *va_cols)
/* update statistics in pg_class */
vc_updstats(vacrelstats->relid, vacrelstats->num_pages,
- vacrelstats->num_tuples, vacrelstats->hasindex, vacrelstats);
+ vacrelstats->num_tuples, vacrelstats->hasindex, vacrelstats);
/* next command frees attribute stats */
CommitTransactionCommand();
@@ -601,7 +602,7 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
blkno;
ItemId itemid;
Buffer buf;
- HeapTupleData tuple;
+ HeapTupleData tuple;
Page page,
tempPage = NULL;
OffsetNumber offnum,
@@ -712,7 +713,7 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
else if (tuple.t_data->t_infomask & HEAP_MOVED_OFF)
{
if (TransactionIdDidCommit((TransactionId)
- tuple.t_data->t_cmin))
+ tuple.t_data->t_cmin))
{
tuple.t_data->t_infomask |= HEAP_XMIN_INVALID;
tupgone = true;
@@ -759,7 +760,7 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
else
{
elog(NOTICE, "Rel %s: TID %u/%u: InsertTransactionInProgress %u - can't shrink relation",
- relname, blkno, offnum, tuple.t_data->t_xmin);
+ relname, blkno, offnum, tuple.t_data->t_xmin);
do_shrinking = false;
}
}
@@ -799,6 +800,7 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
}
else if (!TransactionIdIsInProgress(tuple.t_data->t_xmax))
{
+
/*
* Not Aborted, Not Committed, Not in Progress - so it
* from crashed process. - vadim 06/02/97
@@ -812,11 +814,12 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
relname, blkno, offnum, tuple.t_data->t_xmax);
do_shrinking = false;
}
+
/*
- * If tuple is recently deleted then
- * we must not remove it from relation.
+ * If tuple is recently deleted then we must not remove it
+ * from relation.
*/
- if (tupgone && tuple.t_data->t_xmax >= XmaxRecent &&
+ if (tupgone && tuple.t_data->t_xmax >= XmaxRecent &&
tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED)
{
tupgone = false;
@@ -826,20 +829,21 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
tuple.t_data->t_infomask |= HEAP_XMAX_COMMITTED;
pgchanged = true;
}
+
/*
* If we do shrinking and this tuple is updated one
* then remember it to construct updated tuple
* dependencies.
*/
- if (do_shrinking && !(ItemPointerEquals(&(tuple.t_self),
- &(tuple.t_data->t_ctid))))
+ if (do_shrinking && !(ItemPointerEquals(&(tuple.t_self),
+ &(tuple.t_data->t_ctid))))
{
if (free_vtlinks == 0)
{
free_vtlinks = 1000;
- vtlinks = (VTupleLink) repalloc(vtlinks,
- (free_vtlinks + num_vtlinks) *
- sizeof(VTupleLinkData));
+ vtlinks = (VTupleLink) repalloc(vtlinks,
+ (free_vtlinks + num_vtlinks) *
+ sizeof(VTupleLinkData));
}
vtlinks[num_vtlinks].new_tid = tuple.t_data->t_ctid;
vtlinks[num_vtlinks].this_tid = tuple.t_self;
@@ -962,8 +966,8 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
if (usable_free_size > 0 && num_vtlinks > 0)
{
- qsort((char *) vtlinks, num_vtlinks, sizeof (VTupleLinkData),
- vc_cmp_vtlinks);
+ qsort((char *) vtlinks, num_vtlinks, sizeof(VTupleLinkData),
+ vc_cmp_vtlinks);
vacrelstats->vtlinks = vtlinks;
vacrelstats->num_vtlinks = num_vtlinks;
}
@@ -980,10 +984,10 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
Tup %u: Vac %u, Keep/VTL %u/%u, Crash %u, UnUsed %u, MinLen %u, MaxLen %u; \
Re-using: Free/Avail. Space %u/%u; EndEmpty/Avail. Pages %u/%u. \
Elapsed %u/%u sec.",
- nblocks, changed_pages, vacuum_pages->vpl_num_pages, empty_pages,
- new_pages, num_tuples, tups_vacuumed,
- nkeep, vacrelstats->num_vtlinks, ncrash,
- nunused, min_tlen, max_tlen, free_size, usable_free_size,
+ nblocks, changed_pages, vacuum_pages->vpl_num_pages, empty_pages,
+ new_pages, num_tuples, tups_vacuumed,
+ nkeep, vacrelstats->num_vtlinks, ncrash,
+ nunused, min_tlen, max_tlen, free_size, usable_free_size,
empty_end_pages, fraged_pages->vpl_num_pages,
ru1.ru_stime.tv_sec - ru0.ru_stime.tv_sec,
ru1.ru_utime.tv_sec - ru0.ru_utime.tv_sec);
@@ -1019,8 +1023,8 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
max_offset;
ItemId itemid,
newitemid;
- HeapTupleData tuple,
- newtup;
+ HeapTupleData tuple,
+ newtup;
TupleDesc tupdesc = NULL;
Datum *idatum = NULL;
char *inulls = NULL;
@@ -1128,7 +1132,8 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
else
Assert(!isempty);
- chain_tuple_moved = false; /* no one chain-tuple was moved off this page, yet */
+ chain_tuple_moved = false; /* no one chain-tuple was moved
+ * off this page, yet */
vpc->vpd_blkno = blkno;
maxoff = PageGetMaxOffsetNumber(page);
for (offnum = FirstOffsetNumber;
@@ -1146,28 +1151,30 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
if (!(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED))
{
- if ((TransactionId)tuple.t_data->t_cmin != myXID)
+ if ((TransactionId) tuple.t_data->t_cmin != myXID)
elog(ERROR, "Invalid XID in t_cmin");
if (tuple.t_data->t_infomask & HEAP_MOVED_IN)
elog(ERROR, "HEAP_MOVED_IN was not expected");
- /*
- * If this (chain) tuple is moved by me already then
- * I have to check is it in vpc or not - i.e. is it
- * moved while cleaning this page or some previous one.
+
+ /*
+ * If this (chain) tuple is moved by me already then I
+ * have to check is it in vpc or not - i.e. is it moved
+ * while cleaning this page or some previous one.
*/
if (tuple.t_data->t_infomask & HEAP_MOVED_OFF)
{
if (keep_tuples == 0)
continue;
- if (chain_tuple_moved) /* some chains was moved while */
- { /* cleaning this page */
+ if (chain_tuple_moved) /* some chains was moved
+ * while */
+ { /* cleaning this page */
Assert(vpc->vpd_offsets_free > 0);
for (i = 0; i < vpc->vpd_offsets_free; i++)
{
if (vpc->vpd_offsets[i] == offnum)
break;
}
- if (i >= vpc->vpd_offsets_free) /* not found */
+ if (i >= vpc->vpd_offsets_free) /* not found */
{
vpc->vpd_offsets[vpc->vpd_offsets_free++] = offnum;
keep_tuples--;
@@ -1184,29 +1191,29 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
}
/*
- * If this tuple is in the chain of tuples created in
- * updates by "recent" transactions then we have to
- * move all chain of tuples to another places.
+ * If this tuple is in the chain of tuples created in updates
+ * by "recent" transactions then we have to move all chain of
+ * tuples to another places.
*/
- if ((tuple.t_data->t_infomask & HEAP_UPDATED &&
+ if ((tuple.t_data->t_infomask & HEAP_UPDATED &&
tuple.t_data->t_xmin >= XmaxRecent) ||
- (!(tuple.t_data->t_infomask & HEAP_XMAX_INVALID) &&
+ (!(tuple.t_data->t_infomask & HEAP_XMAX_INVALID) &&
!(ItemPointerEquals(&(tuple.t_self), &(tuple.t_data->t_ctid)))))
{
- Buffer Cbuf = buf;
- Page Cpage;
- ItemId Citemid;
- ItemPointerData Ctid;
- HeapTupleData tp = tuple;
- Size tlen = tuple_len;
- VTupleMove vtmove = (VTupleMove)
- palloc(100 * sizeof(VTupleMoveData));
- int num_vtmove = 0;
- int free_vtmove = 100;
- VPageDescr to_vpd = fraged_pages->vpl_pagedesc[0];
- int to_item = 0;
- bool freeCbuf = false;
- int ti;
+ Buffer Cbuf = buf;
+ Page Cpage;
+ ItemId Citemid;
+ ItemPointerData Ctid;
+ HeapTupleData tp = tuple;
+ Size tlen = tuple_len;
+ VTupleMove vtmove = (VTupleMove)
+ palloc(100 * sizeof(VTupleMoveData));
+ int num_vtmove = 0;
+ int free_vtmove = 100;
+ VPageDescr to_vpd = fraged_pages->vpl_pagedesc[0];
+ int to_item = 0;
+ bool freeCbuf = false;
+ int ti;
if (vacrelstats->vtlinks == NULL)
elog(ERROR, "No one parent tuple was found");
@@ -1215,22 +1222,23 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
WriteBuffer(cur_buffer);
cur_buffer = InvalidBuffer;
}
+
/*
- * If this tuple is in the begin/middle of the chain
- * then we have to move to the end of chain.
+ * If this tuple is in the begin/middle of the chain then
+ * we have to move to the end of chain.
*/
- while (!(tp.t_data->t_infomask & HEAP_XMAX_INVALID) &&
- !(ItemPointerEquals(&(tp.t_self), &(tp.t_data->t_ctid))))
+ while (!(tp.t_data->t_infomask & HEAP_XMAX_INVALID) &&
+ !(ItemPointerEquals(&(tp.t_self), &(tp.t_data->t_ctid))))
{
Ctid = tp.t_data->t_ctid;
if (freeCbuf)
ReleaseBuffer(Cbuf);
freeCbuf = true;
- Cbuf = ReadBuffer(onerel,
- ItemPointerGetBlockNumber(&Ctid));
+ Cbuf = ReadBuffer(onerel,
+ ItemPointerGetBlockNumber(&Ctid));
Cpage = BufferGetPage(Cbuf);
- Citemid = PageGetItemId(Cpage,
- ItemPointerGetOffsetNumber(&Ctid));
+ Citemid = PageGetItemId(Cpage,
+ ItemPointerGetOffsetNumber(&Ctid));
if (!ItemIdIsUsed(Citemid))
elog(ERROR, "Child itemid marked as unused");
tp.t_data = (HeapTupleHeader) PageGetItem(Cpage, Citemid);
@@ -1238,16 +1246,16 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
tlen = tp.t_len = ItemIdGetLength(Citemid);
}
/* first, can chain be moved ? */
- for ( ; ; )
+ for (;;)
{
if (!vc_enough_space(to_vpd, tlen))
{
if (to_vpd != last_fraged_page &&
- !vc_enough_space(to_vpd, vacrelstats->min_tlen))
+ !vc_enough_space(to_vpd, vacrelstats->min_tlen))
{
Assert(num_fraged_pages > to_item + 1);
memmove(fraged_pages->vpl_pagedesc + to_item,
- fraged_pages->vpl_pagedesc + to_item + 1,
+ fraged_pages->vpl_pagedesc + to_item + 1,
sizeof(VPageDescr *) * (num_fraged_pages - to_item - 1));
num_fraged_pages--;
Assert(last_fraged_page == fraged_pages->vpl_pagedesc[num_fraged_pages - 1]);
@@ -1257,7 +1265,8 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
if (vc_enough_space(fraged_pages->vpl_pagedesc[i], tlen))
break;
}
- if (i == num_fraged_pages) /* can't move item anywhere */
+ if (i == num_fraged_pages) /* can't move item
+ * anywhere */
{
for (i = 0; i < num_vtmove; i++)
{
@@ -1277,9 +1286,9 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
if (free_vtmove == 0)
{
free_vtmove = 1000;
- vtmove = (VTupleMove) repalloc(vtmove,
- (free_vtmove + num_vtmove) *
- sizeof(VTupleMoveData));
+ vtmove = (VTupleMove) repalloc(vtmove,
+ (free_vtmove + num_vtmove) *
+ sizeof(VTupleMoveData));
}
vtmove[num_vtmove].tid = tp.t_self;
vtmove[num_vtmove].vpd = to_vpd;
@@ -1289,56 +1298,59 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
vtmove[num_vtmove].cleanVpd = false;
free_vtmove--;
num_vtmove++;
+
/*
* All done ?
*/
- if (!(tp.t_data->t_infomask & HEAP_UPDATED) ||
- tp.t_data->t_xmin < XmaxRecent)
+ if (!(tp.t_data->t_infomask & HEAP_UPDATED) ||
+ tp.t_data->t_xmin < XmaxRecent)
break;
+
/*
* Well, try to find tuple with old row version
*/
- for ( ; ; )
+ for (;;)
{
- Buffer Pbuf;
- Page Ppage;
- ItemId Pitemid;
- HeapTupleData Ptp;
- VTupleLinkData vtld,
- *vtlp;
+ Buffer Pbuf;
+ Page Ppage;
+ ItemId Pitemid;
+ HeapTupleData Ptp;
+ VTupleLinkData vtld,
+ *vtlp;
vtld.new_tid = tp.t_self;
- vtlp = (VTupleLink)
- vc_find_eq((void *) (vacrelstats->vtlinks),
- vacrelstats->num_vtlinks,
- sizeof(VTupleLinkData),
- (void *) &vtld,
- vc_cmp_vtlinks);
+ vtlp = (VTupleLink)
+ vc_find_eq((void *) (vacrelstats->vtlinks),
+ vacrelstats->num_vtlinks,
+ sizeof(VTupleLinkData),
+ (void *) &vtld,
+ vc_cmp_vtlinks);
if (vtlp == NULL)
elog(ERROR, "Parent tuple was not found");
tp.t_self = vtlp->this_tid;
- Pbuf = ReadBuffer(onerel,
+ Pbuf = ReadBuffer(onerel,
ItemPointerGetBlockNumber(&(tp.t_self)));
Ppage = BufferGetPage(Pbuf);
- Pitemid = PageGetItemId(Ppage,
- ItemPointerGetOffsetNumber(&(tp.t_self)));
+ Pitemid = PageGetItemId(Ppage,
+ ItemPointerGetOffsetNumber(&(tp.t_self)));
if (!ItemIdIsUsed(Pitemid))
elog(ERROR, "Parent itemid marked as unused");
Ptp.t_data = (HeapTupleHeader) PageGetItem(Ppage, Pitemid);
Assert(Ptp.t_data->t_xmax == tp.t_data->t_xmin);
+
/*
- * If this tuple is updated version of row and
- * it was created by the same transaction then
- * no one is interested in this tuple -
- * mark it as removed.
+ * If this tuple is updated version of row and it
+ * was created by the same transaction then no one
+ * is interested in this tuple - mark it as
+ * removed.
*/
- if (Ptp.t_data->t_infomask & HEAP_UPDATED &&
+ if (Ptp.t_data->t_infomask & HEAP_UPDATED &&
Ptp.t_data->t_xmin == Ptp.t_data->t_xmax)
{
- TransactionIdStore(myXID,
- (TransactionId*) &(Ptp.t_data->t_cmin));
- Ptp.t_data->t_infomask &=
- ~(HEAP_XMIN_COMMITTED|HEAP_XMIN_INVALID|HEAP_MOVED_IN);
+ TransactionIdStore(myXID,
+ (TransactionId *) &(Ptp.t_data->t_cmin));
+ Ptp.t_data->t_infomask &=
+ ~(HEAP_XMIN_COMMITTED | HEAP_XMIN_INVALID | HEAP_MOVED_IN);
Ptp.t_data->t_infomask |= HEAP_MOVED_OFF;
WriteBuffer(Pbuf);
continue;
@@ -1354,7 +1366,7 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
}
if (freeCbuf)
ReleaseBuffer(Cbuf);
- if (num_vtmove == 0) /* chain can't be moved */
+ if (num_vtmove == 0) /* chain can't be moved */
{
pfree(vtmove);
break;
@@ -1364,19 +1376,20 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
{
/* Get tuple from chain */
tuple.t_self = vtmove[ti].tid;
- Cbuf = ReadBuffer(onerel,
- ItemPointerGetBlockNumber(&(tuple.t_self)));
+ Cbuf = ReadBuffer(onerel,
+ ItemPointerGetBlockNumber(&(tuple.t_self)));
Cpage = BufferGetPage(Cbuf);
- Citemid = PageGetItemId(Cpage,
+ Citemid = PageGetItemId(Cpage,
ItemPointerGetOffsetNumber(&(tuple.t_self)));
tuple.t_data = (HeapTupleHeader) PageGetItem(Cpage, Citemid);
tuple_len = tuple.t_len = ItemIdGetLength(Citemid);
/* Get page to move in */
cur_buffer = ReadBuffer(onerel, vtmove[ti].vpd->vpd_blkno);
+
/*
- * We should LockBuffer(cur_buffer) but don't, at the
- * moment. If you'll do LockBuffer then UNLOCK it
- * before index_insert: unique btree-s call heap_fetch
+ * We should LockBuffer(cur_buffer) but don't, at the
+ * moment. If you'll do LockBuffer then UNLOCK it
+ * before index_insert: unique btree-s call heap_fetch
* to get t_infomask of inserted heap tuple !!!
*/
ToPage = BufferGetPage(cur_buffer);
@@ -1385,22 +1398,23 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
vc_vacpage(ToPage, vtmove[ti].vpd);
heap_copytuple_with_tuple(&tuple, &newtup);
RelationInvalidateHeapTuple(onerel, &tuple);
- TransactionIdStore(myXID, (TransactionId*) &(newtup.t_data->t_cmin));
- newtup.t_data->t_infomask &=
- ~(HEAP_XMIN_COMMITTED|HEAP_XMIN_INVALID|HEAP_MOVED_OFF);
+ TransactionIdStore(myXID, (TransactionId *) &(newtup.t_data->t_cmin));
+ newtup.t_data->t_infomask &=
+ ~(HEAP_XMIN_COMMITTED | HEAP_XMIN_INVALID | HEAP_MOVED_OFF);
newtup.t_data->t_infomask |= HEAP_MOVED_IN;
newoff = PageAddItem(ToPage, (Item) newtup.t_data, tuple_len,
- InvalidOffsetNumber, LP_USED);
+ InvalidOffsetNumber, LP_USED);
if (newoff == InvalidOffsetNumber)
{
elog(ERROR, "\
moving chain: failed to add item with len = %u to page %u",
- tuple_len, vtmove[ti].vpd->vpd_blkno);
+ tuple_len, vtmove[ti].vpd->vpd_blkno);
}
newitemid = PageGetItemId(ToPage, newoff);
pfree(newtup.t_data);
newtup.t_data = (HeapTupleHeader) PageGetItem(ToPage, newitemid);
ItemPointerSet(&(newtup.t_self), vtmove[ti].vpd->vpd_blkno, newoff);
+
/*
* Set t_ctid pointing to itself for last tuple in
* chain and to next tuple in chain otherwise.
@@ -1411,19 +1425,20 @@ moving chain: failed to add item with len = %u to page %u",
newtup.t_data->t_ctid = Ctid;
Ctid = newtup.t_self;
- TransactionIdStore(myXID, (TransactionId*) &(tuple.t_data->t_cmin));
- tuple.t_data->t_infomask &=
- ~(HEAP_XMIN_COMMITTED|HEAP_XMIN_INVALID|HEAP_MOVED_IN);
+ TransactionIdStore(myXID, (TransactionId *) &(tuple.t_data->t_cmin));
+ tuple.t_data->t_infomask &=
+ ~(HEAP_XMIN_COMMITTED | HEAP_XMIN_INVALID | HEAP_MOVED_IN);
tuple.t_data->t_infomask |= HEAP_MOVED_OFF;
num_moved++;
+
/*
* Remember that we moved tuple from the current page
* (corresponding index tuple will be cleaned).
*/
if (Cbuf == buf)
- vpc->vpd_offsets[vpc->vpd_offsets_free++] =
- ItemPointerGetOffsetNumber(&(tuple.t_self));
+ vpc->vpd_offsets[vpc->vpd_offsets_free++] =
+ ItemPointerGetOffsetNumber(&(tuple.t_self));
else
keep_tuples++;
@@ -1432,12 +1447,12 @@ moving chain: failed to add item with len = %u to page %u",
for (i = 0, idcur = Idesc; i < nindices; i++, idcur++)
{
FormIndexDatum(idcur->natts,
- (AttrNumber *) &(idcur->tform->indkey[0]),
- &newtup,
- tupdesc,
- idatum,
- inulls,
- idcur->finfoP);
+ (AttrNumber *) &(idcur->tform->indkey[0]),
+ &newtup,
+ tupdesc,
+ idatum,
+ inulls,
+ idcur->finfoP);
iresult = index_insert(Irel[i],
idatum,
inulls,
@@ -1507,13 +1522,13 @@ moving chain: failed to add item with len = %u to page %u",
RelationInvalidateHeapTuple(onerel, &tuple);
- /*
- * Mark new tuple as moved_in by vacuum and
- * store vacuum XID in t_cmin !!!
+ /*
+ * Mark new tuple as moved_in by vacuum and store vacuum XID
+ * in t_cmin !!!
*/
- TransactionIdStore(myXID, (TransactionId*) &(newtup.t_data->t_cmin));
- newtup.t_data->t_infomask &=
- ~(HEAP_XMIN_COMMITTED|HEAP_XMIN_INVALID|HEAP_MOVED_OFF);
+ TransactionIdStore(myXID, (TransactionId *) &(newtup.t_data->t_cmin));
+ newtup.t_data->t_infomask &=
+ ~(HEAP_XMIN_COMMITTED | HEAP_XMIN_INVALID | HEAP_MOVED_OFF);
newtup.t_data->t_infomask |= HEAP_MOVED_IN;
/* add tuple to the page */
@@ -1532,13 +1547,13 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
ItemPointerSet(&(newtup.t_data->t_ctid), cur_page->vpd_blkno, newoff);
newtup.t_self = newtup.t_data->t_ctid;
- /*
- * Mark old tuple as moved_off by vacuum and
- * store vacuum XID in t_cmin !!!
+ /*
+ * Mark old tuple as moved_off by vacuum and store vacuum XID
+ * in t_cmin !!!
*/
- TransactionIdStore(myXID, (TransactionId*) &(tuple.t_data->t_cmin));
- tuple.t_data->t_infomask &=
- ~(HEAP_XMIN_COMMITTED|HEAP_XMIN_INVALID|HEAP_MOVED_IN);
+ TransactionIdStore(myXID, (TransactionId *) &(tuple.t_data->t_cmin));
+ tuple.t_data->t_infomask &=
+ ~(HEAP_XMIN_COMMITTED | HEAP_XMIN_INVALID | HEAP_MOVED_IN);
tuple.t_data->t_infomask |= HEAP_MOVED_OFF;
cur_page->vpd_offsets_used++;
@@ -1572,11 +1587,11 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
if (offnum < maxoff && keep_tuples > 0)
{
- OffsetNumber off;
+ OffsetNumber off;
for (off = OffsetNumberNext(offnum);
- off <= maxoff;
- off = OffsetNumberNext(off))
+ off <= maxoff;
+ off = OffsetNumberNext(off))
{
itemid = PageGetItemId(page, off);
if (!ItemIdIsUsed(itemid))
@@ -1584,21 +1599,22 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
tuple.t_data = (HeapTupleHeader) PageGetItem(page, itemid);
if (tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED)
continue;
- if ((TransactionId)tuple.t_data->t_cmin != myXID)
+ if ((TransactionId) tuple.t_data->t_cmin != myXID)
elog(ERROR, "Invalid XID in t_cmin (4)");
if (tuple.t_data->t_infomask & HEAP_MOVED_IN)
elog(ERROR, "HEAP_MOVED_IN was not expected (2)");
if (tuple.t_data->t_infomask & HEAP_MOVED_OFF)
{
- if (chain_tuple_moved) /* some chains was moved while */
- { /* cleaning this page */
+ if (chain_tuple_moved) /* some chains was moved
+ * while */
+ { /* cleaning this page */
Assert(vpc->vpd_offsets_free > 0);
for (i = 0; i < vpc->vpd_offsets_free; i++)
{
if (vpc->vpd_offsets[i] == off)
break;
}
- if (i >= vpc->vpd_offsets_free) /* not found */
+ if (i >= vpc->vpd_offsets_free) /* not found */
{
vpc->vpd_offsets[vpc->vpd_offsets_free++] = off;
Assert(keep_tuples > 0);
@@ -1619,8 +1635,8 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
{
if (chain_tuple_moved) /* else - they are ordered */
{
- qsort((char *) (vpc->vpd_offsets), vpc->vpd_offsets_free,
- sizeof(OffsetNumber), vc_cmp_offno);
+ qsort((char *) (vpc->vpd_offsets), vpc->vpd_offsets_free,
+ sizeof(OffsetNumber), vc_cmp_offno);
}
vc_reappage(&Nvpl, vpc);
WriteBuffer(buf);
@@ -1645,6 +1661,7 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
if (num_moved > 0)
{
+
/*
* We have to commit our tuple' movings before we'll truncate
* relation, but we shouldn't lose our locks. And so - quick hack:
@@ -1657,8 +1674,8 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
}
/*
- * Clean uncleaned reapped pages from vacuum_pages list list and set xmin
- * committed for inserted tuples
+ * Clean uncleaned reapped pages from vacuum_pages list list and set
+ * xmin committed for inserted tuples
*/
checked_moved = 0;
for (i = 0, vpp = vacuum_pages->vpl_pagedesc; i < vacuumed_pages; i++, vpp++)
@@ -1671,7 +1688,8 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
if (!PageIsEmpty(page))
vc_vacpage(page, *vpp);
}
- else /* this page was used */
+ else
+/* this page was used */
{
num_tuples = 0;
max_offset = PageGetMaxOffsetNumber(page);
@@ -1685,7 +1703,7 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
tuple.t_data = (HeapTupleHeader) PageGetItem(page, itemid);
if (!(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED))
{
- if ((TransactionId)tuple.t_data->t_cmin != myXID)
+ if ((TransactionId) tuple.t_data->t_cmin != myXID)
elog(ERROR, "Invalid XID in t_cmin (2)");
if (tuple.t_data->t_infomask & HEAP_MOVED_IN)
{
@@ -1734,8 +1752,8 @@ Elapsed %u/%u sec.",
}
Assert(keep_tuples >= 0);
for (i = 0; i < nindices; i++)
- vc_vaconeind(&Nvpl, Irel[i],
- vacrelstats->num_tuples, keep_tuples);
+ vc_vaconeind(&Nvpl, Irel[i],
+ vacrelstats->num_tuples, keep_tuples);
}
/*
@@ -1757,7 +1775,7 @@ Elapsed %u/%u sec.",
if (!(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED))
{
- if ((TransactionId)tuple.t_data->t_cmin != myXID)
+ if ((TransactionId) tuple.t_data->t_cmin != myXID)
elog(ERROR, "Invalid XID in t_cmin (3)");
if (tuple.t_data->t_infomask & HEAP_MOVED_OFF)
{
@@ -1998,7 +2016,7 @@ vc_vaconeind(VPageList vpl, Relation indrel, int num_tuples, int keep_tuples)
getrusage(RUSAGE_SELF, &ru1);
elog(MESSAGE_LEVEL, "Index %s: Pages %u; Tuples %u: Deleted %u. Elapsed %u/%u sec.",
- indrel->rd_rel->relname.data, num_pages,
+ indrel->rd_rel->relname.data, num_pages,
num_index_tuples - keep_tuples, tups_vacuumed,
ru1.ru_stime.tv_sec - ru0.ru_stime.tv_sec,
ru1.ru_utime.tv_sec - ru0.ru_utime.tv_sec);
@@ -2208,25 +2226,25 @@ vc_bucketcpy(Form_pg_attribute attr, Datum value, Datum *bucket, int16 *bucket_l
static void
vc_updstats(Oid relid, int num_pages, int num_tuples, bool hasindex, VRelStats *vacrelstats)
{
- Relation rd,
- ad,
- sd;
- HeapScanDesc scan;
- HeapTupleData rtup;
- HeapTuple ctup,
- atup,
- stup;
- Form_pg_class pgcform;
- ScanKeyData askey;
- Form_pg_attribute attp;
- Buffer buffer;
+ Relation rd,
+ ad,
+ sd;
+ HeapScanDesc scan;
+ HeapTupleData rtup;
+ HeapTuple ctup,
+ atup,
+ stup;
+ Form_pg_class pgcform;
+ ScanKeyData askey;
+ Form_pg_attribute attp;
+ Buffer buffer;
/*
* update number of tuples and number of pages in pg_class
*/
ctup = SearchSysCacheTupleCopy(RELOID,
- ObjectIdGetDatum(relid),
- 0, 0, 0);
+ ObjectIdGetDatum(relid),
+ 0, 0, 0);
if (!HeapTupleIsValid(ctup))
elog(ERROR, "pg_class entry for relid %u vanished during vacuuming",
relid);
@@ -2237,7 +2255,7 @@ vc_updstats(Oid relid, int num_pages, int num_tuples, bool hasindex, VRelStats *
rtup.t_self = ctup->t_self;
heap_fetch(rd, SnapshotNow, &rtup, &buffer);
pfree(ctup);
-
+
/* overwrite the existing statistics in the tuple */
vc_setpagelock(rd, ItemPointerGetBlockNumber(&(rtup.t_self)));
pgcform = (Form_pg_class) GETSTRUCT(&rtup);
@@ -2317,8 +2335,7 @@ vc_updstats(Oid relid, int num_pages, int num_tuples, bool hasindex, VRelStats *
attp->attdisbursion = selratio;
/*
- * Invalidate the cache for the tuple
- * and write the buffer
+ * Invalidate the cache for the tuple and write the buffer
*/
RelationInvalidateHeapTuple(ad, atup);
WriteNoReleaseBuffer(abuffer);
@@ -2375,8 +2392,7 @@ vc_updstats(Oid relid, int num_pages, int num_tuples, bool hasindex, VRelStats *
}
/*
- * Invalidate the cached pg_class tuple and
- * write the buffer
+ * Invalidate the cached pg_class tuple and write the buffer
*/
RelationInvalidateHeapTuple(rd, &rtup);
@@ -2504,8 +2520,8 @@ vc_free(VRelList vrl)
}
static void *
-vc_find_eq(void *bot, int nelem, int size, void *elm,
- int (*compar) (const void *, const void *))
+vc_find_eq(void *bot, int nelem, int size, void *elm,
+ int (*compar) (const void *, const void *))
{
int res;
int last = nelem - 1;
@@ -2527,16 +2543,16 @@ vc_find_eq(void *bot, int nelem, int size, void *elm,
}
if (last_move == true)
{
- res = compar(elm, (void *)((char *)bot + last * size));
+ res = compar(elm, (void *) ((char *) bot + last * size));
if (res > 0)
return NULL;
if (res == 0)
- return (void *)((char *)bot + last * size);
+ return (void *) ((char *) bot + last * size);
last_move = false;
}
- res = compar(elm, (void *)((char *)bot + celm * size));
+ res = compar(elm, (void *) ((char *) bot + celm * size));
if (res == 0)
- return (void *)((char *)bot + celm * size);
+ return (void *) ((char *) bot + celm * size);
if (res < 0)
{
if (celm == 0)
@@ -2551,7 +2567,7 @@ vc_find_eq(void *bot, int nelem, int size, void *elm,
return NULL;
last = last - celm - 1;
- bot = (void *)((char *)bot + (celm + 1) * size);
+ bot = (void *) ((char *) bot + (celm + 1) * size);
celm = (last + 1) / 2;
first_move = true;
}
@@ -2591,25 +2607,25 @@ static int
vc_cmp_vtlinks(const void *left, const void *right)
{
- if (((VTupleLink)left)->new_tid.ip_blkid.bi_hi <
- ((VTupleLink)right)->new_tid.ip_blkid.bi_hi)
+ if (((VTupleLink) left)->new_tid.ip_blkid.bi_hi <
+ ((VTupleLink) right)->new_tid.ip_blkid.bi_hi)
return -1;
- if (((VTupleLink)left)->new_tid.ip_blkid.bi_hi >
- ((VTupleLink)right)->new_tid.ip_blkid.bi_hi)
+ if (((VTupleLink) left)->new_tid.ip_blkid.bi_hi >
+ ((VTupleLink) right)->new_tid.ip_blkid.bi_hi)
return 1;
/* bi_hi-es are equal */
- if (((VTupleLink)left)->new_tid.ip_blkid.bi_lo <
- ((VTupleLink)right)->new_tid.ip_blkid.bi_lo)
+ if (((VTupleLink) left)->new_tid.ip_blkid.bi_lo <
+ ((VTupleLink) right)->new_tid.ip_blkid.bi_lo)
return -1;
- if (((VTupleLink)left)->new_tid.ip_blkid.bi_lo >
- ((VTupleLink)right)->new_tid.ip_blkid.bi_lo)
+ if (((VTupleLink) left)->new_tid.ip_blkid.bi_lo >
+ ((VTupleLink) right)->new_tid.ip_blkid.bi_lo)
return 1;
/* bi_lo-es are equal */
- if (((VTupleLink)left)->new_tid.ip_posid <
- ((VTupleLink)right)->new_tid.ip_posid)
+ if (((VTupleLink) left)->new_tid.ip_posid <
+ ((VTupleLink) right)->new_tid.ip_posid)
return -1;
- if (((VTupleLink)left)->new_tid.ip_posid >
- ((VTupleLink)right)->new_tid.ip_posid)
+ if (((VTupleLink) left)->new_tid.ip_posid >
+ ((VTupleLink) right)->new_tid.ip_posid)
return 1;
return 0;
diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c
index 66f75c5f062..f1462423071 100644
--- a/src/backend/commands/variable.c
+++ b/src/backend/commands/variable.c
@@ -2,7 +2,7 @@
* Routines for handling of 'SET var TO',
* 'SHOW var' and 'RESET var' statements.
*
- * $Id: variable.c,v 1.19 1999/02/18 06:00:44 momjian Exp $
+ * $Id: variable.c,v 1.20 1999/05/25 16:08:28 momjian Exp $
*
*/
@@ -45,10 +45,12 @@ static bool parse_ksqo(const char *);
static bool show_XactIsoLevel(void);
static bool reset_XactIsoLevel(void);
static bool parse_XactIsoLevel(const char *);
+
#ifdef QUERY_LIMIT
static bool show_query_limit(void);
static bool reset_query_limit(void);
static bool parse_query_limit(const char *);
+
#endif
extern Cost _cpu_page_wight_;
@@ -545,41 +547,41 @@ reset_timezone()
static bool
parse_query_limit(const char *value)
{
- int32 limit;
-
- if (value == NULL) {
- reset_query_limit();
- return(TRUE);
- }
- /* why is pg_atoi's arg not declared "const char *" ? */
- limit = pg_atoi((char *) value, sizeof(int32), '\0');
- if (limit <= -1) {
- elog(ERROR, "Bad value for # of query limit (%s)", value);
- }
- ExecutorLimit(limit);
- return(TRUE);
+ int32 limit;
+
+ if (value == NULL)
+ {
+ reset_query_limit();
+ return (TRUE);
+ }
+ /* why is pg_atoi's arg not declared "const char *" ? */
+ limit = pg_atoi((char *) value, sizeof(int32), '\0');
+ if (limit <= -1)
+ elog(ERROR, "Bad value for # of query limit (%s)", value);
+ ExecutorLimit(limit);
+ return (TRUE);
}
static bool
show_query_limit(void)
{
- int limit;
-
- limit = ExecutorGetLimit();
- if (limit == ALL_TUPLES) {
- elog(NOTICE, "No query limit is set");
- } else {
- elog(NOTICE, "query limit is %d",limit);
- }
- return(TRUE);
+ int limit;
+
+ limit = ExecutorGetLimit();
+ if (limit == ALL_TUPLES)
+ elog(NOTICE, "No query limit is set");
+ else
+ elog(NOTICE, "query limit is %d", limit);
+ return (TRUE);
}
static bool
reset_query_limit(void)
{
- ExecutorLimit(ALL_TUPLES);
- return(TRUE);
+ ExecutorLimit(ALL_TUPLES);
+ return (TRUE);
}
+
#endif
/*-----------------------------------------------------------------------*/
@@ -685,10 +687,10 @@ ResetPGVariable(const char *name)
/*-----------------------------------------------------------------------
-KSQO code will one day be unnecessary when the optimizer makes use of
+KSQO code will one day be unnecessary when the optimizer makes use of
indexes when multiple ORs are specified in the where clause.
See optimizer/prep/prepkeyset.c for more on this.
- daveh@insightdist.com 6/16/98
+ daveh@insightdist.com 6/16/98
-----------------------------------------------------------------------*/
static bool
parse_ksqo(const char *value)
@@ -732,7 +734,7 @@ reset_ksqo()
static bool
parse_XactIsoLevel(const char *value)
{
-
+
if (value == NULL)
{
reset_XactIsoLevel();
@@ -770,7 +772,7 @@ show_XactIsoLevel()
static bool
reset_XactIsoLevel()
{
-
+
if (SerializableSnapshot != NULL)
{
elog(ERROR, "SET TRANSACTION ISOLATION LEVEL must be called before any query");
diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c
index 06de282f199..1cea214613b 100644
--- a/src/backend/commands/view.c
+++ b/src/backend/commands/view.c
@@ -5,11 +5,11 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: view.c,v 1.32 1999/02/13 23:15:12 momjian Exp $
+ * $Id: view.c,v 1.33 1999/05/25 16:08:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
-#include <stdio.h>
+#include <stdio.h>
#include <string.h>
#include <postgres.h>
@@ -230,9 +230,9 @@ UpdateRangeTableOfViewParse(char *viewName, Query *viewParse)
* table... CURRENT first, then NEW....
*/
rt_entry1 = addRangeTableEntry(NULL, (char *) viewName, "*CURRENT*",
- FALSE, FALSE);
+ FALSE, FALSE);
rt_entry2 = addRangeTableEntry(NULL, (char *) viewName, "*NEW*",
- FALSE, FALSE);
+ FALSE, FALSE);
new_rt = lcons(rt_entry2, old_rt);
new_rt = lcons(rt_entry1, new_rt);
diff --git a/src/backend/executor/_deadcode/nodeTee.c b/src/backend/executor/_deadcode/nodeTee.c
index b06c700c462..645a11cd11e 100644
--- a/src/backend/executor/_deadcode/nodeTee.c
+++ b/src/backend/executor/_deadcode/nodeTee.c
@@ -6,15 +6,15 @@
* Copyright (c) 1994, Regents of the University of California
*
* DESCRIPTION
- * This code provides support for a tee node, which allows
- * multiple parent in a megaplan.
+ * This code provides support for a tee node, which allows
+ * multiple parent in a megaplan.
*
* INTERFACE ROUTINES
* ExecTee
* ExecInitTee
* ExecEndTee
*
- * $Id: nodeTee.c,v 1.1 1999/03/23 16:50:49 momjian Exp $
+ * $Id: nodeTee.c,v 1.2 1999/05/25 16:08:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -46,12 +46,12 @@
bool
ExecInitTee(Tee *node, EState *currentEstate, Plan *parent)
{
- TeeState *teeState;
- Plan *outerPlan;
- int len;
+ TeeState *teeState;
+ Plan *outerPlan;
+ int len;
Relation bufferRel;
TupleDesc tupType;
- EState *estate;
+ EState *estate;
/*
* it is possible that the Tee has already been initialized since it
@@ -167,7 +167,7 @@ ExecInitTee(Tee *node, EState *currentEstate, Plan *parent)
else
bufferRel = heap_open(
heap_create_with_catalog(teeState->tee_bufferRelname,
- tupType, RELKIND_RELATION, false));
+ tupType, RELKIND_RELATION, false));
}
else
{
@@ -176,7 +176,7 @@ ExecInitTee(Tee *node, EState *currentEstate, Plan *parent)
newoid());
bufferRel = heap_open(
heap_create_with_catalog(teeState->tee_bufferRelname,
- tupType, RELKIND_RELATION, false));
+ tupType, RELKIND_RELATION, false));
}
teeState->tee_bufferRel = bufferRel;
@@ -339,6 +339,7 @@ ExecTee(Tee *node, Plan *parent)
slot = ExecProcNode(childNode, (Plan *) node);
if (!TupIsNull(slot))
{
+
/*
* heap_insert changes something...
*/
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 7b8bde8e1ba..d4c60687a11 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: execAmi.c,v 1.34 1999/05/10 00:45:05 momjian Exp $
+ * $Id: execAmi.c,v 1.35 1999/05/25 16:08:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,7 +24,7 @@
* ExecCreatR function to create temporary relations
*
*/
-#include <stdio.h>
+#include <stdio.h>
#include "postgres.h"
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 3565613bba9..cab1b066246 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.83 1999/05/10 00:45:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.84 1999/05/25 16:08:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -61,26 +61,26 @@ void ExecCheckPerms(CmdType operation, int resultRelation, List *rangeTable,
/* decls for local routines only used within this module */
static TupleDesc InitPlan(CmdType operation,
- Query *parseTree,
- Plan *plan,
- EState *estate);
+ Query *parseTree,
+ Plan *plan,
+ EState *estate);
static void EndPlan(Plan *plan,
- EState *estate);
+ EState *estate);
static TupleTableSlot *ExecutePlan(EState *estate, Plan *plan,
- CmdType operation,
- int offsetTuples,
- int numberTuples,
- ScanDirection direction,
- DestReceiver *destfunc);
+ CmdType operation,
+ int offsetTuples,
+ int numberTuples,
+ ScanDirection direction,
+ DestReceiver * destfunc);
static void ExecRetrieve(TupleTableSlot *slot,
- DestReceiver *destfunc,
- EState *estate);
+ DestReceiver * destfunc,
+ EState *estate);
static void ExecAppend(TupleTableSlot *slot, ItemPointer tupleid,
- EState *estate);
+ EState *estate);
static void ExecDelete(TupleTableSlot *slot, ItemPointer tupleid,
- EState *estate);
+ EState *estate);
static void ExecReplace(TupleTableSlot *slot, ItemPointer tupleid,
- EState *estate);
+ EState *estate);
TupleTableSlot *EvalPlanQual(EState *estate, Index rti, ItemPointer tid);
static TupleTableSlot *EvalPlanQualNext(EState *estate);
@@ -141,14 +141,14 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate)
estate->es_snapshot = NULL;
else
{
- estate->es_snapshot = (Snapshot)palloc(sizeof(SnapshotData));
+ estate->es_snapshot = (Snapshot) palloc(sizeof(SnapshotData));
memcpy(estate->es_snapshot, QuerySnapshot, sizeof(SnapshotData));
if (estate->es_snapshot->xcnt > 0)
{
estate->es_snapshot->xip = (TransactionId *)
- palloc(estate->es_snapshot->xcnt * sizeof(TransactionId));
+ palloc(estate->es_snapshot->xcnt * sizeof(TransactionId));
memcpy(estate->es_snapshot->xip, QuerySnapshot->xip,
- estate->es_snapshot->xcnt * sizeof(TransactionId));
+ estate->es_snapshot->xcnt * sizeof(TransactionId));
}
}
@@ -193,25 +193,25 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate)
* ----------------------------------------------------------------
*/
TupleTableSlot *
-ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature,
- Node *limoffset, Node *limcount)
+ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature,
+ Node *limoffset, Node *limcount)
{
- CmdType operation;
- Plan *plan;
+ CmdType operation;
+ Plan *plan;
TupleTableSlot *result;
- CommandDest dest;
- DestReceiver *destfunc;
- int offset = 0;
- int count = 0;
+ CommandDest dest;
+ DestReceiver *destfunc;
+ int offset = 0;
+ int count = 0;
/*
- * sanity checks
+ * sanity checks
*/
Assert(queryDesc != NULL);
/*
- * extract information from the query descriptor
- * and the query feature.
+ * extract information from the query descriptor and the query
+ * feature.
*/
operation = queryDesc->operation;
plan = queryDesc->plantree;
@@ -221,34 +221,34 @@ ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature,
estate->es_lastoid = InvalidOid;
/*
- * FIXME: the dest setup function ought to be handed the tuple desc
- * for the tuples to be output, but I'm not quite sure how to get that
- * info at this point. For now, passing NULL is OK because no existing
- * dest setup function actually uses the pointer.
+ * FIXME: the dest setup function ought to be handed the tuple desc
+ * for the tuples to be output, but I'm not quite sure how to get that
+ * info at this point. For now, passing NULL is OK because no
+ * existing dest setup function actually uses the pointer.
*/
(*destfunc->setup) (destfunc, (TupleDesc) NULL);
- /*
- * if given get the offset of the LIMIT clause
- */
- if (limoffset != NULL)
- {
- Const *coffset;
- Param *poffset;
- ParamListInfo paramLI;
- int i;
-
+ /*
+ * if given get the offset of the LIMIT clause
+ */
+ if (limoffset != NULL)
+ {
+ Const *coffset;
+ Param *poffset;
+ ParamListInfo paramLI;
+ int i;
+
switch (nodeTag(limoffset))
{
case T_Const:
- coffset = (Const *)limoffset;
- offset = (int)(coffset->constvalue);
+ coffset = (Const *) limoffset;
+ offset = (int) (coffset->constvalue);
break;
-
+
case T_Param:
- poffset = (Param *)limoffset;
+ poffset = (Param *) limoffset;
paramLI = estate->es_param_list_info;
-
+
if (paramLI == NULL)
elog(ERROR, "parameter for limit offset not in executor state");
for (i = 0; paramLI[i].kind != PARAM_INVALID; i++)
@@ -260,60 +260,60 @@ ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature,
elog(ERROR, "parameter for limit offset not in executor state");
if (paramLI[i].isnull)
elog(ERROR, "limit offset cannot be NULL value");
- offset = (int)(paramLI[i].value);
-
+ offset = (int) (paramLI[i].value);
+
break;
-
+
default:
elog(ERROR, "unexpected node type %d as limit offset", nodeTag(limoffset));
}
-
+
if (offset < 0)
elog(ERROR, "limit offset cannot be negative");
}
-
+
/*
- * if given get the count of the LIMIT clause
+ * if given get the count of the LIMIT clause
*/
if (limcount != NULL)
{
- Const *ccount;
- Param *pcount;
- ParamListInfo paramLI;
- int i;
-
- switch (nodeTag(limcount))
- {
- case T_Const:
- ccount = (Const *)limcount;
- count = (int)(ccount->constvalue);
- break;
-
- case T_Param:
- pcount = (Param *)limcount;
- paramLI = estate->es_param_list_info;
-
- if (paramLI == NULL)
- elog(ERROR, "parameter for limit count not in executor state");
- for (i = 0; paramLI[i].kind != PARAM_INVALID; i++)
- {
- if (paramLI[i].kind == PARAM_NUM && paramLI[i].id == pcount->paramid)
- break;
- }
- if (paramLI[i].kind == PARAM_INVALID)
- elog(ERROR, "parameter for limit count not in executor state");
- if (paramLI[i].isnull)
- elog(ERROR, "limit count cannot be NULL value");
- count = (int)(paramLI[i].value);
-
- break;
-
- default:
- elog(ERROR, "unexpected node type %d as limit count", nodeTag(limcount));
- }
-
- if (count < 0)
- elog(ERROR, "limit count cannot be negative");
+ Const *ccount;
+ Param *pcount;
+ ParamListInfo paramLI;
+ int i;
+
+ switch (nodeTag(limcount))
+ {
+ case T_Const:
+ ccount = (Const *) limcount;
+ count = (int) (ccount->constvalue);
+ break;
+
+ case T_Param:
+ pcount = (Param *) limcount;
+ paramLI = estate->es_param_list_info;
+
+ if (paramLI == NULL)
+ elog(ERROR, "parameter for limit count not in executor state");
+ for (i = 0; paramLI[i].kind != PARAM_INVALID; i++)
+ {
+ if (paramLI[i].kind == PARAM_NUM && paramLI[i].id == pcount->paramid)
+ break;
+ }
+ if (paramLI[i].kind == PARAM_INVALID)
+ elog(ERROR, "parameter for limit count not in executor state");
+ if (paramLI[i].isnull)
+ elog(ERROR, "limit count cannot be NULL value");
+ count = (int) (paramLI[i].value);
+
+ break;
+
+ default:
+ elog(ERROR, "unexpected node type %d as limit count", nodeTag(limcount));
+ }
+
+ if (count < 0)
+ elog(ERROR, "limit count cannot be negative");
}
switch (feature)
@@ -339,7 +339,7 @@ ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature,
break;
/*
- * retrieve next n "backward" tuples
+ * retrieve next n "backward" tuples
*/
case EXEC_BACK:
result = ExecutePlan(estate,
@@ -352,8 +352,8 @@ ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature,
break;
/*
- * return one tuple but don't "retrieve" it.
- * (this is used by the rule manager..) -cim 9/14/89
+ * return one tuple but don't "retrieve" it. (this is used by
+ * the rule manager..) -cim 9/14/89
*/
case EXEC_RETONE:
result = ExecutePlan(estate,
@@ -395,20 +395,25 @@ ExecutorEnd(QueryDesc *queryDesc, EState *estate)
EndPlan(queryDesc->plantree, estate);
/* XXX - clean up some more from ExecutorStart() - er1p */
- if (NULL == estate->es_snapshot) {
- /* nothing to free */
- } else {
- if (estate->es_snapshot->xcnt > 0) {
- pfree(estate->es_snapshot->xip);
- }
- pfree(estate->es_snapshot);
+ if (NULL == estate->es_snapshot)
+ {
+ /* nothing to free */
+ }
+ else
+ {
+ if (estate->es_snapshot->xcnt > 0)
+ pfree(estate->es_snapshot->xip);
+ pfree(estate->es_snapshot);
}
- if (NULL == estate->es_param_exec_vals) {
- /* nothing to free */
- } else {
- pfree(estate->es_param_exec_vals);
- estate->es_param_exec_vals = NULL;
+ if (NULL == estate->es_param_exec_vals)
+ {
+ /* nothing to free */
+ }
+ else
+ {
+ pfree(estate->es_param_exec_vals);
+ estate->es_param_exec_vals = NULL;
}
/* restore saved refcounts. */
@@ -509,15 +514,15 @@ ExecCheckPerms(CmdType operation,
{
foreach(lp, parseTree->rowMark)
{
- RowMark *rm = lfirst(lp);
+ RowMark *rm = lfirst(lp);
if (!(rm->info & ROW_ACL_FOR_UPDATE))
continue;
- relid = ((RangeTblEntry *)nth(rm->rti - 1, rangeTable))->relid;
+ relid = ((RangeTblEntry *) nth(rm->rti - 1, rangeTable))->relid;
htup = SearchSysCacheTuple(RELOID,
- ObjectIdGetDatum(relid),
- 0, 0, 0);
+ ObjectIdGetDatum(relid),
+ 0, 0, 0);
if (!HeapTupleIsValid(htup))
elog(ERROR, "ExecCheckPerms: bogus RT relid: %u", relid);
StrNCpy(rname.data,
@@ -543,15 +548,15 @@ typedef struct execRowMark
Relation relation;
Index rti;
char resname[32];
-} execRowMark;
+} execRowMark;
typedef struct evalPlanQual
{
- Plan *plan;
- Index rti;
- EState estate;
- struct evalPlanQual *free;
-} evalPlanQual;
+ Plan *plan;
+ Index rti;
+ EState estate;
+ struct evalPlanQual *free;
+} evalPlanQual;
/* ----------------------------------------------------------------
* InitPlan
@@ -563,15 +568,15 @@ typedef struct evalPlanQual
static TupleDesc
InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
{
- List *rangeTable;
- int resultRelation;
- Relation intoRelationDesc;
- TupleDesc tupType;
- List *targetList;
- int len;
+ List *rangeTable;
+ int resultRelation;
+ Relation intoRelationDesc;
+ TupleDesc tupType;
+ List *targetList;
+ int len;
/*
- * get information from query descriptor
+ * get information from query descriptor
*/
rangeTable = parseTree->rtable;
resultRelation = parseTree->resultRelation;
@@ -581,27 +586,27 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
#endif
/*
- * initialize the node's execution state
+ * initialize the node's execution state
*/
estate->es_range_table = rangeTable;
/*
- * initialize the BaseId counter so node base_id's
- * are assigned correctly. Someday baseid's will have to
- * be stored someplace other than estate because they
- * should be unique per query planned.
+ * initialize the BaseId counter so node base_id's are assigned
+ * correctly. Someday baseid's will have to be stored someplace other
+ * than estate because they should be unique per query planned.
*/
estate->es_BaseId = 1;
/*
- * initialize result relation stuff
+ * initialize result relation stuff
*/
-
+
if (resultRelation != 0 && operation != CMD_SELECT)
{
+
/*
- * if we have a result relation, open it and
- * initialize the result relation info stuff.
+ * if we have a result relation, open it and initialize the result
+ * relation info stuff.
*/
RelationInfo *resultRelationInfo;
Index resultRelationIndex;
@@ -628,8 +633,8 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
resultRelationInfo->ri_IndexRelationInfo = NULL;
/*
- * open indices on result relation and save descriptors
- * in the result relation information..
+ * open indices on result relation and save descriptors in the
+ * result relation information..
*/
if (operation != CMD_DELETE)
ExecOpenIndices(resultRelationOid, resultRelationInfo);
@@ -638,8 +643,9 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
}
else
{
+
/*
- * if no result relation, then set state appropriately
+ * if no result relation, then set state appropriately
*/
estate->es_result_relation_info = NULL;
}
@@ -650,21 +656,21 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
estate->es_rowMark = NULL;
if (parseTree->rowMark != NULL)
{
- Relation relation;
- Oid relid;
- RowMark *rm;
- List *l;
- execRowMark *erm;
+ Relation relation;
+ Oid relid;
+ RowMark *rm;
+ List *l;
+ execRowMark *erm;
foreach(l, parseTree->rowMark)
{
rm = lfirst(l);
- relid = ((RangeTblEntry *)nth(rm->rti - 1, rangeTable))->relid;
+ relid = ((RangeTblEntry *) nth(rm->rti - 1, rangeTable))->relid;
relation = heap_open(relid);
LockRelation(relation, RowShareLock);
if (!(rm->info & ROW_MARK_FOR_UPDATE))
continue;
- erm = (execRowMark*) palloc(sizeof(execRowMark));
+ erm = (execRowMark *) palloc(sizeof(execRowMark));
erm->relation = relation;
erm->rti = rm->rti;
sprintf(erm->resname, "ctid%u", rm->rti);
@@ -673,7 +679,7 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
}
/*
- * initialize the executor "tuple" table.
+ * initialize the executor "tuple" table.
*/
{
int nSlots = ExecCountSlotsNode(plan);
@@ -683,31 +689,29 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
}
/*
- * initialize the private state information for
- * all the nodes in the query tree. This opens
- * files, allocates storage and leaves us ready
- * to start processing tuples..
+ * initialize the private state information for all the nodes in the
+ * query tree. This opens files, allocates storage and leaves us
+ * ready to start processing tuples..
*/
ExecInitNode(plan, estate, NULL);
/*
- * get the tuple descriptor describing the type
- * of tuples to return.. (this is especially important
- * if we are creating a relation with "retrieve into")
+ * get the tuple descriptor describing the type of tuples to return..
+ * (this is especially important if we are creating a relation with
+ * "retrieve into")
*/
tupType = ExecGetTupType(plan); /* tuple descriptor */
targetList = plan->targetlist;
len = ExecTargetListLength(targetList); /* number of attributes */
/*
- * now that we have the target list, initialize the junk filter
- * if this is a REPLACE or a DELETE query.
- * We also init the junk filter if this is an append query
- * (there might be some rule lock info there...)
- * NOTE: in the future we might want to initialize the junk
- * filter for all queries.
- * SELECT added by daveh@insightdist.com 5/20/98 to allow
- * ORDER/GROUP BY have an identifier missing from the target.
+ * now that we have the target list, initialize the junk filter if
+ * this is a REPLACE or a DELETE query. We also init the junk filter
+ * if this is an append query (there might be some rule lock info
+ * there...) NOTE: in the future we might want to initialize the junk
+ * filter for all queries. SELECT added by daveh@insightdist.com
+ * 5/20/98 to allow ORDER/GROUP BY have an identifier missing from the
+ * target.
*/
{
bool junk_filter_needed = false;
@@ -743,7 +747,7 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
}
/*
- * initialize the "into" relation
+ * initialize the "into" relation
*/
intoRelationDesc = (Relation) NULL;
@@ -761,8 +765,9 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
*/
if (parseTree->into != NULL)
{
+
/*
- * create the "into" relation
+ * create the "into" relation
*/
intoName = parseTree->into;
@@ -772,14 +777,14 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
tupdesc = CreateTupleDescCopy(tupType);
intoRelationId = heap_create_with_catalog(intoName,
- tupdesc, RELKIND_RELATION,parseTree->isTemp);
+ tupdesc, RELKIND_RELATION, parseTree->isTemp);
FreeTupleDesc(tupdesc);
/*
- * XXX rather than having to call setheapoverride(true)
- * and then back to false, we should change the
- * arguments to heap_open() instead..
+ * XXX rather than having to call setheapoverride(true)
+ * and then back to false, we should change the arguments
+ * to heap_open() instead..
*/
setheapoverride(true);
@@ -813,18 +818,18 @@ EndPlan(Plan *plan, EState *estate)
Relation intoRelationDesc;
/*
- * get information from state
+ * get information from state
*/
resultRelationInfo = estate->es_result_relation_info;
intoRelationDesc = estate->es_into_relation_descriptor;
/*
- * shut down the query
+ * shut down the query
*/
ExecEndNode(plan, plan);
/*
- * destroy the executor "tuple" table.
+ * destroy the executor "tuple" table.
*/
{
TupleTable tupleTable = (TupleTable) estate->es_tupleTable;
@@ -834,7 +839,7 @@ EndPlan(Plan *plan, EState *estate)
}
/*
- * close the result relations if necessary
+ * close the result relations if necessary
*/
if (resultRelationInfo != NULL)
{
@@ -844,13 +849,13 @@ EndPlan(Plan *plan, EState *estate)
heap_close(resultRelationDesc);
/*
- * close indices on the result relation
+ * close indices on the result relation
*/
ExecCloseIndices(resultRelationInfo);
}
/*
- * close the "into" relation if necessary
+ * close the "into" relation if necessary
*/
if (intoRelationDesc != NULL)
heap_close(intoRelationDesc);
@@ -879,7 +884,7 @@ ExecutePlan(EState *estate,
int offsetTuples,
int numberTuples,
ScanDirection direction,
- DestReceiver* destfunc)
+ DestReceiver * destfunc)
{
JunkFilter *junkfilter;
TupleTableSlot *slot;
@@ -889,29 +894,30 @@ ExecutePlan(EState *estate,
TupleTableSlot *result;
/*
- * initialize local variables
+ * initialize local variables
*/
slot = NULL;
current_tuple_count = 0;
result = NULL;
- /*
- * Set the direction.
+ /*
+ * Set the direction.
*/
estate->es_direction = direction;
/*
- * Loop until we've processed the proper number
- * of tuples from the plan..
+ * Loop until we've processed the proper number of tuples from the
+ * plan..
*/
for (;;)
{
+
/*
- * Execute the plan and obtain a tuple
+ * Execute the plan and obtain a tuple
*/
/* at the top level, the parent of a plan (2nd arg) is itself */
-lnext:;
+lnext: ;
if (estate->es_useEvalPlan)
{
slot = EvalPlanQualNext(estate);
@@ -922,9 +928,8 @@ lnext:;
slot = ExecProcNode(plan, plan);
/*
- * if the tuple is null, then we assume
- * there is nothing more to process so
- * we just return null...
+ * if the tuple is null, then we assume there is nothing more to
+ * process so we just return null...
*/
if (TupIsNull(slot))
{
@@ -933,11 +938,9 @@ lnext:;
}
/*
- * For now we completely execute the plan and skip
- * result tuples if requested by LIMIT offset.
- * Finally we should try to do it in deeper levels
- * if possible (during index scan)
- * - Jan
+ * For now we completely execute the plan and skip result tuples
+ * if requested by LIMIT offset. Finally we should try to do it in
+ * deeper levels if possible (during index scan) - Jan
*/
if (offsetTuples > 0)
{
@@ -946,13 +949,12 @@ lnext:;
}
/*
- * if we have a junk filter, then project a new
- * tuple with the junk removed.
+ * if we have a junk filter, then project a new tuple with the
+ * junk removed.
*
- * Store this new "clean" tuple in the place of the
- * original tuple.
+ * Store this new "clean" tuple in the place of the original tuple.
*
- * Also, extract all the junk information we need.
+ * Also, extract all the junk information we need.
*/
if ((junkfilter = estate->es_junkFilter) != (JunkFilter *) NULL)
{
@@ -982,15 +984,15 @@ lnext:;
}
else if (estate->es_rowMark != NULL)
{
- List *l;
- execRowMark *erm;
- Buffer buffer;
- HeapTupleData tuple;
+ List *l;
+ execRowMark *erm;
+ Buffer buffer;
+ HeapTupleData tuple;
TupleTableSlot *newSlot;
- int test;
+ int test;
-lmark:;
- foreach (l, estate->es_rowMark)
+ lmark: ;
+ foreach(l, estate->es_rowMark)
{
erm = lfirst(l);
if (!ExecGetJunkAttribute(junkfilter,
@@ -1016,12 +1018,12 @@ lmark:;
if (XactIsoLevel == XACT_SERIALIZABLE)
{
elog(ERROR, "Can't serialize access due to concurrent update");
- return(NULL);
+ return (NULL);
}
- else if (!(ItemPointerEquals(&(tuple.t_self),
- (ItemPointer)DatumGetPointer(datum))))
+ else if (!(ItemPointerEquals(&(tuple.t_self),
+ (ItemPointer) DatumGetPointer(datum))))
{
- newSlot = EvalPlanQual(estate, erm->rti, &(tuple.t_self));
+ newSlot = EvalPlanQual(estate, erm->rti, &(tuple.t_self));
if (!(TupIsNull(newSlot)))
{
slot = newSlot;
@@ -1029,16 +1031,17 @@ lmark:;
goto lmark;
}
}
- /*
- * if tuple was deleted or PlanQual failed
- * for updated tuple - we have not return
- * this tuple!
+
+ /*
+ * if tuple was deleted or PlanQual failed for
+ * updated tuple - we have not return this
+ * tuple!
*/
goto lnext;
default:
elog(ERROR, "Unknown status %u from heap_mark4update", test);
- return(NULL);
+ return (NULL);
}
}
}
@@ -1057,17 +1060,17 @@ lmark:;
} /* if (junkfilter... */
/*
- * now that we have a tuple, do the appropriate thing
- * with it.. either return it to the user, add
- * it to a relation someplace, delete it from a
- * relation, or modify some of it's attributes.
+ * now that we have a tuple, do the appropriate thing with it..
+ * either return it to the user, add it to a relation someplace,
+ * delete it from a relation, or modify some of it's attributes.
*/
switch (operation)
{
case CMD_SELECT:
ExecRetrieve(slot, /* slot containing tuple */
- destfunc, /* destination's tuple-receiver obj */
+ destfunc, /* destination's tuple-receiver
+ * obj */
estate); /* */
result = slot;
break;
@@ -1092,10 +1095,10 @@ lmark:;
result = NULL;
break;
}
+
/*
- * check our tuple count.. if we've returned the
- * proper number then return, else loop again and
- * process more tuples..
+ * check our tuple count.. if we've returned the proper number
+ * then return, else loop again and process more tuples..
*/
current_tuple_count += 1;
if (numberTuples == current_tuple_count)
@@ -1103,8 +1106,8 @@ lmark:;
}
/*
- * here, result is either a slot containing a tuple in the case
- * of a RETRIEVE or NULL otherwise.
+ * here, result is either a slot containing a tuple in the case of a
+ * RETRIEVE or NULL otherwise.
*/
return result;
}
@@ -1121,20 +1124,20 @@ lmark:;
*/
static void
ExecRetrieve(TupleTableSlot *slot,
- DestReceiver *destfunc,
+ DestReceiver * destfunc,
EState *estate)
{
HeapTuple tuple;
TupleDesc attrtype;
/*
- * get the heap tuple out of the tuple table slot
+ * get the heap tuple out of the tuple table slot
*/
tuple = slot->val;
attrtype = slot->ttc_tupleDescriptor;
/*
- * insert the tuple into the "into relation"
+ * insert the tuple into the "into relation"
*/
if (estate->es_into_relation_descriptor != NULL)
{
@@ -1143,7 +1146,7 @@ ExecRetrieve(TupleTableSlot *slot,
}
/*
- * send the tuple to the front end (or the screen)
+ * send the tuple to the front end (or the screen)
*/
(*destfunc->receiveTuple) (tuple, attrtype, destfunc);
IncrRetrieved();
@@ -1171,19 +1174,18 @@ ExecAppend(TupleTableSlot *slot,
Oid newId;
/*
- * get the heap tuple out of the tuple table slot
+ * get the heap tuple out of the tuple table slot
*/
tuple = slot->val;
/*
- * get information on the result relation
+ * get information on the result relation
*/
resultRelationInfo = estate->es_result_relation_info;
resultRelationDesc = resultRelationInfo->ri_RelationDesc;
/*
- * have to add code to preform unique checking here.
- * cim -12/1/89
+ * have to add code to preform unique checking here. cim -12/1/89
*/
/* BEFORE ROW INSERT Triggers */
@@ -1210,23 +1212,21 @@ ExecAppend(TupleTableSlot *slot,
*/
if (resultRelationDesc->rd_att->constr)
- {
ExecConstraints("ExecAppend", resultRelationDesc, tuple, estate);
- }
/*
- * insert the tuple
+ * insert the tuple
*/
newId = heap_insert(resultRelationDesc, /* relation desc */
tuple); /* heap tuple */
IncrAppended();
/*
- * process indices
+ * process indices
*
- * Note: heap_insert adds a new tuple to a relation. As a side
- * effect, the tupleid of the new tuple is placed in the new
- * tuple's t_ctid field.
+ * Note: heap_insert adds a new tuple to a relation. As a side effect,
+ * the tupleid of the new tuple is placed in the new tuple's t_ctid
+ * field.
*/
numIndices = resultRelationInfo->ri_NumIndices;
if (numIndices > 0)
@@ -1252,13 +1252,13 @@ ExecDelete(TupleTableSlot *slot,
ItemPointer tupleid,
EState *estate)
{
- RelationInfo *resultRelationInfo;
- Relation resultRelationDesc;
- ItemPointerData ctid;
- int result;
+ RelationInfo *resultRelationInfo;
+ Relation resultRelationDesc;
+ ItemPointerData ctid;
+ int result;
/*
- * get the result relation information
+ * get the result relation information
*/
resultRelationInfo = estate->es_result_relation_info;
resultRelationDesc = resultRelationInfo->ri_RelationDesc;
@@ -1276,7 +1276,7 @@ ExecDelete(TupleTableSlot *slot,
}
/*
- * delete the tuple
+ * delete the tuple
*/
ldelete:;
result = heap_delete(resultRelationDesc, tupleid, &ctid);
@@ -1293,8 +1293,8 @@ ldelete:;
elog(ERROR, "Can't serialize access due to concurrent update");
else if (!(ItemPointerEquals(tupleid, &ctid)))
{
- TupleTableSlot *epqslot = EvalPlanQual(estate,
- resultRelationInfo->ri_RangeTableIndex, &ctid);
+ TupleTableSlot *epqslot = EvalPlanQual(estate,
+ resultRelationInfo->ri_RangeTableIndex, &ctid);
if (!TupIsNull(epqslot))
{
@@ -1313,14 +1313,12 @@ ldelete:;
(estate->es_processed)++;
/*
- * Note: Normally one would think that we have to
- * delete index tuples associated with the
- * heap tuple now..
+ * Note: Normally one would think that we have to delete index tuples
+ * associated with the heap tuple now..
*
- * ... but in POSTGRES, we have no need to do this
- * because the vacuum daemon automatically
- * opens an index scan and deletes index tuples
- * when it finds deleted heap tuples. -cim 9/27/89
+ * ... but in POSTGRES, we have no need to do this because the vacuum
+ * daemon automatically opens an index scan and deletes index tuples
+ * when it finds deleted heap tuples. -cim 9/27/89
*/
/* AFTER ROW DELETE Triggers */
@@ -1346,15 +1344,15 @@ ExecReplace(TupleTableSlot *slot,
ItemPointer tupleid,
EState *estate)
{
- HeapTuple tuple;
- RelationInfo *resultRelationInfo;
- Relation resultRelationDesc;
- ItemPointerData ctid;
- int result;
- int numIndices;
+ HeapTuple tuple;
+ RelationInfo *resultRelationInfo;
+ Relation resultRelationDesc;
+ ItemPointerData ctid;
+ int result;
+ int numIndices;
/*
- * abort the operation if not running transactions
+ * abort the operation if not running transactions
*/
if (IsBootstrapProcessingMode())
{
@@ -1363,21 +1361,20 @@ ExecReplace(TupleTableSlot *slot,
}
/*
- * get the heap tuple out of the tuple table slot
+ * get the heap tuple out of the tuple table slot
*/
tuple = slot->val;
/*
- * get the result relation information
+ * get the result relation information
*/
resultRelationInfo = estate->es_result_relation_info;
resultRelationDesc = resultRelationInfo->ri_RelationDesc;
/*
- * have to add code to preform unique checking here.
- * in the event of unique tuples, this becomes a deletion
- * of the original tuple affected by the replace.
- * cim -12/1/89
+ * have to add code to preform unique checking here. in the event of
+ * unique tuples, this becomes a deletion of the original tuple
+ * affected by the replace. cim -12/1/89
*/
/* BEFORE ROW UPDATE Triggers */
@@ -1404,12 +1401,10 @@ ExecReplace(TupleTableSlot *slot,
*/
if (resultRelationDesc->rd_att->constr)
- {
ExecConstraints("ExecReplace", resultRelationDesc, tuple, estate);
- }
/*
- * replace the heap tuple
+ * replace the heap tuple
*/
lreplace:;
result = heap_replace(resultRelationDesc, tupleid, tuple, &ctid);
@@ -1426,8 +1421,8 @@ lreplace:;
elog(ERROR, "Can't serialize access due to concurrent update");
else if (!(ItemPointerEquals(tupleid, &ctid)))
{
- TupleTableSlot *epqslot = EvalPlanQual(estate,
- resultRelationInfo->ri_RangeTableIndex, &ctid);
+ TupleTableSlot *epqslot = EvalPlanQual(estate,
+ resultRelationInfo->ri_RangeTableIndex, &ctid);
if (!TupIsNull(epqslot))
{
@@ -1448,23 +1443,21 @@ lreplace:;
(estate->es_processed)++;
/*
- * Note: instead of having to update the old index tuples
- * associated with the heap tuple, all we do is form
- * and insert new index tuples.. This is because
- * replaces are actually deletes and inserts and
- * index tuple deletion is done automagically by
- * the vaccuum deamon.. All we do is insert new
- * index tuples. -cim 9/27/89
+ * Note: instead of having to update the old index tuples associated
+ * with the heap tuple, all we do is form and insert new index
+ * tuples.. This is because replaces are actually deletes and inserts
+ * and index tuple deletion is done automagically by the vaccuum
+ * deamon.. All we do is insert new index tuples. -cim 9/27/89
*/
/*
- * process indices
+ * process indices
*
- * heap_replace updates a tuple in the base relation by invalidating
- * it and then appending a new tuple to the relation. As a side
- * effect, the tupleid of the new tuple is placed in the new
- * tuple's t_ctid field. So we now insert index tuples using
- * the new tupleid stored there.
+ * heap_replace updates a tuple in the base relation by invalidating it
+ * and then appending a new tuple to the relation. As a side effect,
+ * the tupleid of the new tuple is placed in the new tuple's t_ctid
+ * field. So we now insert index tuples using the new tupleid stored
+ * there.
*/
numIndices = resultRelationInfo->ri_NumIndices;
@@ -1584,7 +1577,7 @@ ExecRelCheck(Relation rel, HeapTuple tuple, EState *estate)
if (estate->es_result_relation_constraints == NULL)
{
estate->es_result_relation_constraints =
- (List **)palloc(ncheck * sizeof(List *));
+ (List **) palloc(ncheck * sizeof(List *));
for (i = 0; i < ncheck; i++)
{
@@ -1642,41 +1635,41 @@ ExecConstraints(char *caller, Relation rel, HeapTuple tuple, EState *estate)
return;
}
-TupleTableSlot*
+TupleTableSlot *
EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
{
- evalPlanQual *epq = (evalPlanQual*) estate->es_evalPlanQual;
- evalPlanQual *oldepq;
- EState *epqstate = NULL;
- Relation relation;
- Buffer buffer;
- HeapTupleData tuple;
- bool endNode = true;
+ evalPlanQual *epq = (evalPlanQual *) estate->es_evalPlanQual;
+ evalPlanQual *oldepq;
+ EState *epqstate = NULL;
+ Relation relation;
+ Buffer buffer;
+ HeapTupleData tuple;
+ bool endNode = true;
Assert(rti != 0);
if (epq != NULL && epq->rti == 0)
{
- Assert(!(estate->es_useEvalPlan) &&
- epq->estate.es_evalPlanQual == NULL);
+ Assert(!(estate->es_useEvalPlan) &&
+ epq->estate.es_evalPlanQual == NULL);
epq->rti = rti;
endNode = false;
}
/*
* If this is request for another RTE - Ra, - then we have to check
- * wasn't PlanQual requested for Ra already and if so then Ra' row
- * was updated again and we have to re-start old execution for Ra
- * and forget all what we done after Ra was suspended. Cool? -:))
+ * wasn't PlanQual requested for Ra already and if so then Ra' row was
+ * updated again and we have to re-start old execution for Ra and
+ * forget all what we done after Ra was suspended. Cool? -:))
*/
- if (epq != NULL && epq->rti != rti &&
+ if (epq != NULL && epq->rti != rti &&
epq->estate.es_evTuple[rti - 1] != NULL)
{
do
{
/* pop previous PlanQual from the stack */
epqstate = &(epq->estate);
- oldepq = (evalPlanQual*) epqstate->es_evalPlanQual;
+ oldepq = (evalPlanQual *) epqstate->es_evalPlanQual;
Assert(oldepq->rti != 0);
/* stop execution */
ExecEndNode(epq->plan, epq->plan);
@@ -1689,54 +1682,50 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
estate->es_evalPlanQual = (Pointer) epq;
}
- /*
+ /*
* If we are requested for another RTE then we have to suspend
* execution of current PlanQual and start execution for new one.
*/
if (epq == NULL || epq->rti != rti)
{
/* try to reuse plan used previously */
- evalPlanQual *newepq = (epq != NULL) ? epq->free : NULL;
+ evalPlanQual *newepq = (epq != NULL) ? epq->free : NULL;
if (newepq == NULL) /* first call or freePQ stack is empty */
{
- newepq = (evalPlanQual*) palloc(sizeof(evalPlanQual));
+ newepq = (evalPlanQual *) palloc(sizeof(evalPlanQual));
/* Init EState */
epqstate = &(newepq->estate);
memset(epqstate, 0, sizeof(EState));
- epqstate->type = T_EState;
+ epqstate->type = T_EState;
epqstate->es_direction = ForwardScanDirection;
epqstate->es_snapshot = estate->es_snapshot;
epqstate->es_range_table = estate->es_range_table;
epqstate->es_param_list_info = estate->es_param_list_info;
if (estate->es_origPlan->nParamExec > 0)
epqstate->es_param_exec_vals = (ParamExecData *)
- palloc(estate->es_origPlan->nParamExec *
- sizeof(ParamExecData));
- epqstate->es_tupleTable =
+ palloc(estate->es_origPlan->nParamExec *
+ sizeof(ParamExecData));
+ epqstate->es_tupleTable =
ExecCreateTupleTable(estate->es_tupleTable->size);
epqstate->es_refcount = estate->es_refcount;
/* ... rest */
newepq->plan = copyObject(estate->es_origPlan);
newepq->free = NULL;
- epqstate->es_evTupleNull = (bool*)
+ epqstate->es_evTupleNull = (bool *)
palloc(length(estate->es_range_table) * sizeof(bool));
if (epq == NULL) /* first call */
{
- epqstate->es_evTuple = (HeapTuple*)
+ epqstate->es_evTuple = (HeapTuple *)
palloc(length(estate->es_range_table) * sizeof(HeapTuple));
- memset(epqstate->es_evTuple, 0,
- length(estate->es_range_table) * sizeof(HeapTuple));
+ memset(epqstate->es_evTuple, 0,
+ length(estate->es_range_table) * sizeof(HeapTuple));
}
else
- {
epqstate->es_evTuple = epq->estate.es_evTuple;
- }
}
else
- {
epqstate = &(newepq->estate);
- }
/* push current PQ to the stack */
epqstate->es_evalPlanQual = (Pointer) epq;
epq = newepq;
@@ -1748,9 +1737,8 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
epqstate = &(epq->estate);
/*
- * Ok - we're requested for the same RTE (-:)).
- * I'm not sure about ability to use ExecReScan instead of
- * ExecInitNode, so...
+ * Ok - we're requested for the same RTE (-:)). I'm not sure about
+ * ability to use ExecReScan instead of ExecInitNode, so...
*/
if (endNode)
ExecEndNode(epq->plan, epq->plan);
@@ -1763,22 +1751,22 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
}
/* ** fetch tid tuple ** */
- if (estate->es_result_relation_info != NULL &&
+ if (estate->es_result_relation_info != NULL &&
estate->es_result_relation_info->ri_RangeTableIndex == rti)
relation = estate->es_result_relation_info->ri_RelationDesc;
else
{
- List *l;
+ List *l;
- foreach (l, estate->es_rowMark)
+ foreach(l, estate->es_rowMark)
{
- if (((execRowMark*) lfirst(l))->rti == rti)
+ if (((execRowMark *) lfirst(l))->rti == rti)
break;
}
- relation = ((execRowMark*) lfirst(l))->relation;
+ relation = ((execRowMark *) lfirst(l))->relation;
}
tuple.t_self = *tid;
- for ( ; ; )
+ for (;;)
{
heap_fetch(relation, SnapshotDirty, &tuple, &buffer);
if (tuple.t_data != NULL)
@@ -1787,9 +1775,10 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
if (TransactionIdIsValid(SnapshotDirty->xmin))
elog(ERROR, "EvalPlanQual: t_xmin is uncommitted ?!");
+
/*
- * If tuple is being updated by other transaction then
- * we have to wait for its commit/abort.
+ * If tuple is being updated by other transaction then we have
+ * to wait for its commit/abort.
*/
if (TransactionIdIsValid(xwait))
{
@@ -1797,6 +1786,7 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
XactLockTableWait(xwait);
continue;
}
+
/*
* Nice! We got tuple - now copy it.
*/
@@ -1806,22 +1796,24 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
ReleaseBuffer(buffer);
break;
}
+
/*
* Ops! Invalid tuple. Have to check is it updated or deleted.
- * Note that it's possible to get invalid SnapshotDirty->tid
- * if tuple updated by this transaction. Have we to check this ?
+ * Note that it's possible to get invalid SnapshotDirty->tid if
+ * tuple updated by this transaction. Have we to check this ?
*/
- if (ItemPointerIsValid(&(SnapshotDirty->tid)) &&
+ if (ItemPointerIsValid(&(SnapshotDirty->tid)) &&
!(ItemPointerEquals(&(tuple.t_self), &(SnapshotDirty->tid))))
{
tuple.t_self = SnapshotDirty->tid; /* updated ... */
continue;
}
+
/*
- * Deleted or updated by this transaction. Do not
- * (re-)start execution of this PQ. Continue previous PQ.
+ * Deleted or updated by this transaction. Do not (re-)start
+ * execution of this PQ. Continue previous PQ.
*/
- oldepq = (evalPlanQual*) epqstate->es_evalPlanQual;
+ oldepq = (evalPlanQual *) epqstate->es_evalPlanQual;
if (oldepq != NULL)
{
Assert(oldepq->rti != 0);
@@ -1832,36 +1824,37 @@ EvalPlanQual(EState *estate, Index rti, ItemPointer tid)
estate->es_evalPlanQual = (Pointer) epq;
}
else
- { /* this is the first (oldest) PQ
- epq->rti = 0; * - mark as free and
- estate->es_useEvalPlan = false; * continue Query execution
- return (NULL); */
+ { /* this is the first (oldest) PQ epq->rti
+ * = 0; * - mark as
+ * free and estate->es_useEvalPlan =
+ * false; * continue Query execution
+ * return (NULL); */
}
}
if (estate->es_origPlan->nParamExec > 0)
- memset(epqstate->es_param_exec_vals, 0,
- estate->es_origPlan->nParamExec * sizeof(ParamExecData));
- memset(epqstate->es_evTupleNull, false,
- length(estate->es_range_table) * sizeof(bool));
+ memset(epqstate->es_param_exec_vals, 0,
+ estate->es_origPlan->nParamExec * sizeof(ParamExecData));
+ memset(epqstate->es_evTupleNull, false,
+ length(estate->es_range_table) * sizeof(bool));
ExecInitNode(epq->plan, epqstate, NULL);
/*
- * For UPDATE/DELETE we have to return tid of actual row
- * we're executing PQ for.
+ * For UPDATE/DELETE we have to return tid of actual row we're
+ * executing PQ for.
*/
*tid = tuple.t_self;
return (EvalPlanQualNext(estate));
}
-static TupleTableSlot*
+static TupleTableSlot *
EvalPlanQualNext(EState *estate)
{
- evalPlanQual *epq = (evalPlanQual*) estate->es_evalPlanQual;
- EState *epqstate = &(epq->estate);
- evalPlanQual *oldepq;
- TupleTableSlot *slot;
+ evalPlanQual *epq = (evalPlanQual *) estate->es_evalPlanQual;
+ EState *epqstate = &(epq->estate);
+ evalPlanQual *oldepq;
+ TupleTableSlot *slot;
Assert(epq->rti != 0);
@@ -1877,11 +1870,12 @@ lpqnext:;
pfree(epqstate->es_evTuple[epq->rti - 1]);
epqstate->es_evTuple[epq->rti - 1] = NULL;
/* pop old PQ from the stack */
- oldepq = (evalPlanQual*) epqstate->es_evalPlanQual;
- if (oldepq == (evalPlanQual*) NULL)
- { /* this is the first (oldest) */
- epq->rti = 0; /* PQ - mark as free and */
- estate->es_useEvalPlan = false; /* continue Query execution */
+ oldepq = (evalPlanQual *) epqstate->es_evalPlanQual;
+ if (oldepq == (evalPlanQual *) NULL)
+ { /* this is the first (oldest) */
+ epq->rti = 0; /* PQ - mark as free and */
+ estate->es_useEvalPlan = false; /* continue Query
+ * execution */
return (NULL);
}
Assert(oldepq->rti != 0);
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index a021209cb1c..d5a793e9728 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.50 1999/03/20 02:07:31 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.51 1999/05/25 16:08:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -66,7 +66,7 @@ bool execConstByVal;
int execConstLen;
/* static functions decls */
-static Datum ExecEvalAggref(Aggref *aggref, ExprContext *econtext, bool *isNull);
+static Datum ExecEvalAggref(Aggref * aggref, ExprContext *econtext, bool *isNull);
static Datum ExecEvalArrayRef(ArrayRef *arrayRef, ExprContext *econtext,
bool *isNull, bool *isDone);
static Datum ExecEvalAnd(Expr *andExpr, ExprContext *econtext, bool *isNull);
@@ -190,7 +190,7 @@ ExecEvalArrayRef(ArrayRef *arrayRef,
* ----------------------------------------------------------------
*/
static Datum
-ExecEvalAggref(Aggref *aggref, ExprContext *econtext, bool *isNull)
+ExecEvalAggref(Aggref * aggref, ExprContext *econtext, bool *isNull)
{
*isNull = econtext->ecxt_nulls[aggref->aggno];
return econtext->ecxt_values[aggref->aggno];
@@ -232,7 +232,7 @@ ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull)
int16 len;
/*
- * get the slot we want
+ * get the slot we want
*/
switch (variable->varno)
{
@@ -251,7 +251,7 @@ ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull)
}
/*
- * extract tuple information from the slot
+ * extract tuple information from the slot
*/
heapTuple = slot->val;
tuple_type = slot->ttc_tupleDescriptor;
@@ -270,7 +270,7 @@ ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull)
* the entire tuple, we give back a whole slot so that callers know
* what the tuple looks like.
*/
- if (attnum == InvalidAttrNumber)
+ if (attnum == InvalidAttrNumber)
{
TupleTableSlot *tempSlot;
TupleDesc td;
@@ -299,26 +299,25 @@ ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull)
isNull); /* return: is attribute null? */
/*
- * return null if att is null
+ * return null if att is null
*/
if (*isNull)
return (Datum) NULL;
/*
- * get length and type information..
- * ??? what should we do about variable length attributes
- * - variable length attributes have their length stored
- * in the first 4 bytes of the memory pointed to by the
- * returned value.. If we can determine that the type
- * is a variable length type, we can do the right thing.
- * -cim 9/15/89
+ * get length and type information.. ??? what should we do about
+ * variable length attributes - variable length attributes have their
+ * length stored in the first 4 bytes of the memory pointed to by the
+ * returned value.. If we can determine that the type is a variable
+ * length type, we can do the right thing. -cim 9/15/89
*/
if (attnum < 0)
{
+
/*
- * If this is a pseudo-att, we get the type and fake the length.
- * There ought to be a routine to return the real lengths, so
- * we'll mark this one ... XXX -mao
+ * If this is a pseudo-att, we get the type and fake the length.
+ * There ought to be a routine to return the real lengths, so
+ * we'll mark this one ... XXX -mao
*/
len = heap_sysattrlen(attnum); /* XXX see -mao above */
byval = heap_sysattrbyval(attnum); /* XXX see -mao above */
@@ -609,11 +608,11 @@ ExecEvalFuncArgs(FunctionCachePtr fcache,
i = 0;
foreach(arg, argList)
{
+
/*
- * evaluate the expression, in general functions cannot take
- * sets as arguments but we make an exception in the case of
- * nested dot expressions. We have to watch out for this case
- * here.
+ * evaluate the expression, in general functions cannot take sets
+ * as arguments but we make an exception in the case of nested dot
+ * expressions. We have to watch out for this case here.
*/
argV[i] = (Datum)
ExecEvalExpr((Node *) lfirst(arg),
@@ -671,10 +670,10 @@ ExecMakeFunctionResult(Node *node,
}
/*
- * arguments is a list of expressions to evaluate
- * before passing to the function manager.
- * We collect the results of evaluating the expressions
- * into a datum array (argV) and pass this array to arrayFmgr()
+ * arguments is a list of expressions to evaluate before passing to
+ * the function manager. We collect the results of evaluating the
+ * expressions into a datum array (argV) and pass this array to
+ * arrayFmgr()
*/
if (fcache->nargs != 0)
{
@@ -743,8 +742,8 @@ ExecMakeFunctionResult(Node *node,
}
/*
- * now return the value gotten by calling the function manager,
- * passing the function the evaluated parameter values.
+ * now return the value gotten by calling the function manager,
+ * passing the function the evaluated parameter values.
*/
if (fcache->language == SQLlanguageId)
{
@@ -843,12 +842,12 @@ ExecEvalOper(Expr *opClause, ExprContext *econtext, bool *isNull)
bool isDone;
/*
- * an opclause is a list (op args). (I think)
+ * an opclause is a list (op args). (I think)
*
- * we extract the oid of the function associated with
- * the op and then pass the work onto ExecMakeFunctionResult
- * which evaluates the arguments and returns the result of
- * calling the function on the evaluated arguments.
+ * we extract the oid of the function associated with the op and then
+ * pass the work onto ExecMakeFunctionResult which evaluates the
+ * arguments and returns the result of calling the function on the
+ * evaluated arguments.
*/
op = (Oper *) opClause->oper;
argList = opClause->args;
@@ -865,8 +864,8 @@ ExecEvalOper(Expr *opClause, ExprContext *econtext, bool *isNull)
}
/*
- * call ExecMakeFunctionResult() with a dummy isDone that we ignore.
- * We don't have operator whose arguments are sets.
+ * call ExecMakeFunctionResult() with a dummy isDone that we ignore.
+ * We don't have operator whose arguments are sets.
*/
return ExecMakeFunctionResult((Node *) op, argList, econtext, isNull, &isDone);
}
@@ -887,14 +886,14 @@ ExecEvalFunc(Expr *funcClause,
FunctionCachePtr fcache;
/*
- * an funcclause is a list (func args). (I think)
+ * an funcclause is a list (func args). (I think)
*
- * we extract the oid of the function associated with
- * the func node and then pass the work onto ExecMakeFunctionResult
- * which evaluates the arguments and returns the result of
- * calling the function on the evaluated arguments.
+ * we extract the oid of the function associated with the func node and
+ * then pass the work onto ExecMakeFunctionResult which evaluates the
+ * arguments and returns the result of calling the function on the
+ * evaluated arguments.
*
- * this is nearly identical to the ExecEvalOper code.
+ * this is nearly identical to the ExecEvalOper code.
*/
func = (Func *) funcClause->oper;
argList = funcClause->args;
@@ -939,21 +938,21 @@ ExecEvalNot(Expr *notclause, ExprContext *econtext, bool *isNull)
clause = lfirst(notclause->args);
/*
- * We don't iterate over sets in the quals, so pass in an isDone
- * flag, but ignore it.
+ * We don't iterate over sets in the quals, so pass in an isDone flag,
+ * but ignore it.
*/
expr_value = ExecEvalExpr(clause, econtext, isNull, &isDone);
/*
- * if the expression evaluates to null, then we just
- * cascade the null back to whoever called us.
+ * if the expression evaluates to null, then we just cascade the null
+ * back to whoever called us.
*/
if (*isNull)
return expr_value;
/*
- * evaluation of 'not' is simple.. expr is false, then
- * return 'true' and vice versa.
+ * evaluation of 'not' is simple.. expr is false, then return 'true'
+ * and vice versa.
*/
if (DatumGetInt32(expr_value) == 0)
return (Datum) true;
@@ -978,22 +977,19 @@ ExecEvalOr(Expr *orExpr, ExprContext *econtext, bool *isNull)
clauses = orExpr->args;
/*
- * we use three valued logic functions here...
- * we evaluate each of the clauses in turn,
- * as soon as one is true we return that
- * value. If none is true and none of the
- * clauses evaluate to NULL we return
- * the value of the last clause evaluated (which
- * should be false) with *isNull set to false else
- * if none is true and at least one clause evaluated
- * to NULL we set *isNull flag to true -
+ * we use three valued logic functions here... we evaluate each of the
+ * clauses in turn, as soon as one is true we return that value. If
+ * none is true and none of the clauses evaluate to NULL we return
+ * the value of the last clause evaluated (which should be false) with
+ * *isNull set to false else if none is true and at least one clause
+ * evaluated to NULL we set *isNull flag to true -
*/
foreach(clause, clauses)
{
/*
- * We don't iterate over sets in the quals, so pass in an isDone
- * flag, but ignore it.
+ * We don't iterate over sets in the quals, so pass in an isDone
+ * flag, but ignore it.
*/
const_value = ExecEvalExpr((Node *) lfirst(clause),
econtext,
@@ -1001,34 +997,32 @@ ExecEvalOr(Expr *orExpr, ExprContext *econtext, bool *isNull)
&isDone);
/*
- * if the expression evaluates to null, then we
- * remember it in the local IsNull flag, if none of the
- * clauses are true then we need to set *isNull
- * to true again.
+ * if the expression evaluates to null, then we remember it in the
+ * local IsNull flag, if none of the clauses are true then we need
+ * to set *isNull to true again.
*/
if (*isNull)
{
IsNull = *isNull;
/*
- * Many functions don't (or can't!) check if an argument is NULL
- * or NOT_NULL and may return TRUE (1) with *isNull TRUE
- * (an_int4_column <> 1: int4ne returns TRUE for NULLs).
- * Not having time to fix the function manager I want to fix OR:
- * if we had 'x <> 1 OR x isnull' then when x is NULL
- * TRUE was returned by the 'x <> 1' clause ...
- * but ExecQualClause says that the qualification should *fail*
- * if isnull is TRUE for any value returned by ExecEvalExpr.
- * So, force this rule here:
- * if isnull is TRUE then the clause failed.
- * Note: nullvalue() & nonnullvalue() always sets isnull to FALSE for NULLs.
- * - vadim 09/22/97
+ * Many functions don't (or can't!) check if an argument is
+ * NULL or NOT_NULL and may return TRUE (1) with *isNull TRUE
+ * (an_int4_column <> 1: int4ne returns TRUE for NULLs). Not
+ * having time to fix the function manager I want to fix OR:
+ * if we had 'x <> 1 OR x isnull' then when x is NULL TRUE was
+ * returned by the 'x <> 1' clause ... but ExecQualClause says
+ * that the qualification should *fail* if isnull is TRUE for
+ * any value returned by ExecEvalExpr. So, force this rule
+ * here: if isnull is TRUE then the clause failed. Note:
+ * nullvalue() & nonnullvalue() always sets isnull to FALSE
+ * for NULLs. - vadim 09/22/97
*/
const_value = 0;
}
/*
- * if we have a true result, then we return it.
+ * if we have a true result, then we return it.
*/
if (DatumGetInt32(const_value) != 0)
return const_value;
@@ -1057,18 +1051,16 @@ ExecEvalAnd(Expr *andExpr, ExprContext *econtext, bool *isNull)
clauses = andExpr->args;
/*
- * we evaluate each of the clauses in turn,
- * as soon as one is false we return that
- * value. If none are false or NULL then we return
- * the value of the last clause evaluated, which
- * should be true.
+ * we evaluate each of the clauses in turn, as soon as one is false we
+ * return that value. If none are false or NULL then we return the
+ * value of the last clause evaluated, which should be true.
*/
foreach(clause, clauses)
{
/*
- * We don't iterate over sets in the quals, so pass in an isDone
- * flag, but ignore it.
+ * We don't iterate over sets in the quals, so pass in an isDone
+ * flag, but ignore it.
*/
const_value = ExecEvalExpr((Node *) lfirst(clause),
econtext,
@@ -1076,17 +1068,16 @@ ExecEvalAnd(Expr *andExpr, ExprContext *econtext, bool *isNull)
&isDone);
/*
- * if the expression evaluates to null, then we
- * remember it in IsNull, if none of the clauses after
- * this evaluates to false we will have to set *isNull
- * to true again.
+ * if the expression evaluates to null, then we remember it in
+ * IsNull, if none of the clauses after this evaluates to false we
+ * will have to set *isNull to true again.
*/
if (*isNull)
IsNull = *isNull;
/*
- * if we have a false result, then we return it, since the
- * conjunction must be false.
+ * if we have a false result, then we return it, since the
+ * conjunction must be false.
*/
if (DatumGetInt32(const_value) == 0)
return const_value;
@@ -1106,7 +1097,7 @@ ExecEvalAnd(Expr *andExpr, ExprContext *econtext, bool *isNull)
* ----------------------------------------------------------------
*/
static Datum
-ExecEvalCase(CaseExpr *caseExpr, ExprContext *econtext, bool *isNull)
+ExecEvalCase(CaseExpr * caseExpr, ExprContext *econtext, bool *isNull)
{
List *clauses;
List *clause;
@@ -1117,17 +1108,16 @@ ExecEvalCase(CaseExpr *caseExpr, ExprContext *econtext, bool *isNull)
clauses = caseExpr->args;
/*
- * we evaluate each of the WHEN clauses in turn,
- * as soon as one is true we return the corresponding
- * result. If none are true then we return the value
- * of the default clause, or NULL.
+ * we evaluate each of the WHEN clauses in turn, as soon as one is
+ * true we return the corresponding result. If none are true then we
+ * return the value of the default clause, or NULL.
*/
foreach(clause, clauses)
{
/*
- * We don't iterate over sets in the quals, so pass in an isDone
- * flag, but ignore it.
+ * We don't iterate over sets in the quals, so pass in an isDone
+ * flag, but ignore it.
*/
wclause = lfirst(clause);
@@ -1137,8 +1127,8 @@ ExecEvalCase(CaseExpr *caseExpr, ExprContext *econtext, bool *isNull)
&isDone);
/*
- * if we have a true test, then we return the result,
- * since the case statement is satisfied.
+ * if we have a true test, then we return the result, since the
+ * case statement is satisfied.
*/
if (DatumGetInt32(const_value) != 0)
{
@@ -1159,9 +1149,7 @@ ExecEvalCase(CaseExpr *caseExpr, ExprContext *econtext, bool *isNull)
&isDone);
}
else
- {
*isNull = true;
- }
return const_value;
}
@@ -1204,8 +1192,8 @@ ExecEvalExpr(Node *expression,
*isDone = true;
/*
- * here we dispatch the work to the appropriate type
- * of function given the type of our expression.
+ * here we dispatch the work to the appropriate type of function given
+ * the type of our expression.
*/
if (expression == NULL)
{
@@ -1287,7 +1275,7 @@ ExecEvalExpr(Node *expression,
}
return retDatum;
-} /* ExecEvalExpr() */
+} /* ExecEvalExpr() */
/* ----------------------------------------------------------------
@@ -1325,16 +1313,15 @@ ExecQualClause(Node *clause, ExprContext *econtext)
ExecEvalExpr(clause, econtext, &isNull, &isDone);
/*
- * this is interesting behaviour here. When a clause evaluates
- * to null, then we consider this as passing the qualification.
- * it seems kind of like, if the qual is NULL, then there's no
- * qual..
+ * this is interesting behaviour here. When a clause evaluates to
+ * null, then we consider this as passing the qualification. it seems
+ * kind of like, if the qual is NULL, then there's no qual..
*/
if (isNull)
return true;
/*
- * remember, we return true when the qualification fails..
+ * remember, we return true when the qualification fails..
*/
if (DatumGetInt32(expr_value) == 0)
return true;
@@ -1356,7 +1343,7 @@ ExecQual(List *qual, ExprContext *econtext)
bool result;
/*
- * debugging stuff
+ * debugging stuff
*/
EV_printf("ExecQual: qual is ");
EV_nodeDisplay(qual);
@@ -1365,18 +1352,18 @@ ExecQual(List *qual, ExprContext *econtext)
IncrProcessed();
/*
- * return true immediately if no qual
+ * return true immediately if no qual
*/
if (qual == NIL)
return true;
/*
- * a "qual" is a list of clauses. To evaluate the
- * qual, we evaluate each of the clauses in the list.
+ * a "qual" is a list of clauses. To evaluate the qual, we evaluate
+ * each of the clauses in the list.
*
- * ExecQualClause returns true when we know the qualification
- * *failed* so we just pass each clause in qual to it until
- * we know the qual failed or there are no more clauses.
+ * ExecQualClause returns true when we know the qualification *failed* so
+ * we just pass each clause in qual to it until we know the qual
+ * failed or there are no more clauses.
*/
result = false;
@@ -1388,9 +1375,9 @@ ExecQual(List *qual, ExprContext *econtext)
}
/*
- * if result is true, then it means a clause failed so we
- * return false. if result is false then it means no clause
- * failed so we return true.
+ * if result is true, then it means a clause failed so we return
+ * false. if result is false then it means no clause failed so we
+ * return true.
*/
if (result == true)
return false;
@@ -1447,48 +1434,46 @@ ExecTargetList(List *targetlist,
bool isNull;
/*
- * debugging stuff
+ * debugging stuff
*/
EV_printf("ExecTargetList: tl is ");
EV_nodeDisplay(targetlist);
EV_printf("\n");
/*
- * Return a dummy tuple if the targetlist is empty.
- * the dummy tuple is necessary to differentiate
- * between passing and failing the qualification.
+ * Return a dummy tuple if the targetlist is empty. the dummy tuple is
+ * necessary to differentiate between passing and failing the
+ * qualification.
*/
if (targetlist == NIL)
{
+
/*
- * I now think that the only time this makes
- * any sense is when we run a delete query. Then
- * we need to return something other than nil
- * so we know to delete the tuple associated
- * with the saved tupleid.. see what ExecutePlan
- * does with the returned tuple.. -cim 9/21/89
+ * I now think that the only time this makes any sense is when we
+ * run a delete query. Then we need to return something other
+ * than nil so we know to delete the tuple associated with the
+ * saved tupleid.. see what ExecutePlan does with the returned
+ * tuple.. -cim 9/21/89
*
- * It could also happen in queries like:
- * retrieve (foo.all) where bar.a = 3
+ * It could also happen in queries like: retrieve (foo.all) where
+ * bar.a = 3
*
- * is this a new phenomenon? it might cause bogus behavior
- * if we try to free this tuple later!! I put a hook in
- * ExecProject to watch out for this case -mer 24 Aug 1992
+ * is this a new phenomenon? it might cause bogus behavior if we try
+ * to free this tuple later!! I put a hook in ExecProject to watch
+ * out for this case -mer 24 Aug 1992
*
- * We must return dummy tuple!!! Try
- * select t1.x from t1, t2 where t1.y = 1 and t2.y = 1
- * - t2 scan target list will be empty and so no one tuple
- * will be returned! But Mer was right - dummy tuple
- * must be palloced... - vadim 03/01/1999
+ * We must return dummy tuple!!! Try select t1.x from t1, t2 where
+ * t1.y = 1 and t2.y = 1 - t2 scan target list will be empty and
+ * so no one tuple will be returned! But Mer was right - dummy
+ * tuple must be palloced... - vadim 03/01/1999
*/
*isDone = true;
return (HeapTuple) palloc(1);
}
/*
- * allocate an array of char's to hold the "null" information
- * only if we have a really large targetlist. otherwise we use
- * the stack.
+ * allocate an array of char's to hold the "null" information only if
+ * we have a really large targetlist. otherwise we use the stack.
*/
if (nodomains > 64)
{
@@ -1502,20 +1487,21 @@ ExecTargetList(List *targetlist,
}
/*
- * evaluate all the expressions in the target list
+ * evaluate all the expressions in the target list
*/
EV_printf("ExecTargetList: setting target list values\n");
*isDone = true;
foreach(tl, targetlist)
{
+
/*
- * remember, a target list is a list of lists:
+ * remember, a target list is a list of lists:
*
- * ((<resdom | fjoin> expr) (<resdom | fjoin> expr) ...)
+ * ((<resdom | fjoin> expr) (<resdom | fjoin> expr) ...)
*
- * tl is a pointer to successive cdr's of the targetlist
- * tle is a pointer to the target list entry in tl
+ * tl is a pointer to successive cdr's of the targetlist tle is a
+ * pointer to the target list entry in tl
*/
tle = lfirst(tl);
@@ -1572,7 +1558,7 @@ ExecTargetList(List *targetlist,
curNode < nNodes;
curNode++, fjTlist = lnext(fjTlist))
{
-#ifdef NOT_USED /* what is this?? */
+#ifdef NOT_USED /* what is this?? */
Node *outernode = lfirst(fjTlist);
fjRes = (Resdom *) outernode->iterexpr;
@@ -1590,19 +1576,19 @@ ExecTargetList(List *targetlist,
}
/*
- * form the new result tuple (in the "normal" context)
+ * form the new result tuple (in the "normal" context)
*/
newTuple = (HeapTuple) heap_formtuple(targettype, values, null_head);
/*
- * free the nulls array if we allocated one..
+ * free the nulls array if we allocated one..
*/
if (nodomains > 64)
{
pfree(null_head);
pfree(fjIsNull);
}
-
+
return newTuple;
}
@@ -1631,13 +1617,13 @@ ExecProject(ProjectionInfo *projInfo, bool *isDone)
HeapTuple newTuple;
/*
- * sanity checks
+ * sanity checks
*/
if (projInfo == NULL)
return (TupleTableSlot *) NULL;
/*
- * get the projection info we want
+ * get the projection info we want
*/
slot = projInfo->pi_slot;
targetlist = projInfo->pi_targetlist;
@@ -1648,7 +1634,7 @@ ExecProject(ProjectionInfo *projInfo, bool *isDone)
econtext = projInfo->pi_exprContext;
/*
- * form a new (result) tuple
+ * form a new (result) tuple
*/
newTuple = ExecTargetList(targetlist,
len,
@@ -1658,11 +1644,10 @@ ExecProject(ProjectionInfo *projInfo, bool *isDone)
isDone);
/*
- * store the tuple in the projection slot and return the slot.
+ * store the tuple in the projection slot and return the slot.
*
- * If there's no projection target list we don't want to pfree
- * the bogus tuple that ExecTargetList passes back to us.
- * -mer 24 Aug 1992
+ * If there's no projection target list we don't want to pfree the bogus
+ * tuple that ExecTargetList passes back to us. -mer 24 Aug 1992
*/
return (TupleTableSlot *)
ExecStoreTuple(newTuple,/* tuple to store */
@@ -1670,4 +1655,3 @@ ExecProject(ProjectionInfo *projInfo, bool *isDone)
InvalidBuffer, /* tuple has no buffer */
true);
}
-
diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c
index 148b6b11c17..1ffe928b57b 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.24 1999/03/23 16:50:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execTuples.c,v 1.25 1999/05/25 16:08:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -467,6 +467,7 @@ ExecSetSlotPolicy(TupleTableSlot *slot, /* slot to change */
return old_shouldFree;
}
+
#endif
/* --------------------------------
@@ -650,6 +651,7 @@ ExecInitMarkedTupleSlot(EState *estate, MergeJoinState *mergestate)
INIT_SLOT_ALLOC;
mergestate->mj_MarkedTupleSlot = (TupleTableSlot *) slot;
}
+
#endif
/* ----------------
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index b6906e0a3db..2bd3d03bc67 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.44 1999/03/20 01:13:22 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.45 1999/05/25 16:08:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -402,7 +402,7 @@ ExecFreeExprContext(CommonState *commonstate)
void
ExecFreeTypeInfo(CommonState *commonstate)
{
- TupleDesc tupDesc;
+ TupleDesc tupDesc;
tupDesc = commonstate->cs_ResultTupleSlot->ttc_tupleDescriptor;
if (tupDesc == NULL)
@@ -498,12 +498,12 @@ ExecAssignScanTypeFromOuterPlan(Plan *node, CommonScanState *csstate)
* Routines dealing with the structure 'attribute' which conatains
* the type information about attributes in a tuple:
*
- * ExecMakeTypeInfo(noType)
+ * ExecMakeTypeInfo(noType)
* returns pointer to array of 'noType' structure 'attribute'.
- * ExecSetTypeInfo(index, typeInfo, attNum, attLen)
+ * ExecSetTypeInfo(index, typeInfo, attNum, attLen)
* sets the element indexed by 'index' in typeInfo with
* the values: attNum, attLen.
- * ExecFreeTypeInfo(typeInfo)
+ * ExecFreeTypeInfo(typeInfo)
* frees the structure 'typeInfo'.
* ----------------------------------------------------------------
*/
@@ -677,7 +677,7 @@ ExecGetIndexKeyInfo(Form_pg_index indexTuple,
*/
numKeys = 0;
for (i = 0; i < INDEX_MAX_KEYS &&
- indexTuple->indkey[i] != InvalidAttrNumber; i++)
+ indexTuple->indkey[i] != InvalidAttrNumber; i++)
numKeys++;
/* ----------------
@@ -711,7 +711,7 @@ ExecGetIndexKeyInfo(Form_pg_index indexTuple,
*/
CXT1_printf("ExecGetIndexKeyInfo: context is %d\n", CurrentMemoryContext);
- attKeys = (AttrNumber *)palloc(numKeys * sizeof(AttrNumber));
+ attKeys = (AttrNumber *) palloc(numKeys * sizeof(AttrNumber));
for (i = 0; i < numKeys; i++)
attKeys[i] = indexTuple->indkey[i];
@@ -917,19 +917,20 @@ ExecOpenIndices(Oid resultRelationOid,
if (indexDesc != NULL)
{
relationDescs[i++] = indexDesc;
+
/*
- * Hack for not btree and hash indices: they use relation level
- * exclusive locking on updation (i.e. - they are not ready
- * for MVCC) and so we have to exclusively lock indices here
- * to prevent deadlocks if we will scan them - index_beginscan
- * places AccessShareLock, indices update methods don't use
- * locks at all. We release this lock in ExecCloseIndices.
- * Note, that hashes use page level locking - i.e. are not
- * deadlock-free, - let's them be on their way -:))
- * vadim 03-12-1998
+ * Hack for not btree and hash indices: they use relation
+ * level exclusive locking on updation (i.e. - they are
+ * not ready for MVCC) and so we have to exclusively lock
+ * indices here to prevent deadlocks if we will scan them
+ * - index_beginscan places AccessShareLock, indices
+ * update methods don't use locks at all. We release this
+ * lock in ExecCloseIndices. Note, that hashes use page
+ * level locking - i.e. are not deadlock-free, - let's
+ * them be on their way -:)) vadim 03-12-1998
*/
- if (indexDesc->rd_rel->relam != BTREE_AM_OID &&
- indexDesc->rd_rel->relam != HASH_AM_OID)
+ if (indexDesc->rd_rel->relam != BTREE_AM_OID &&
+ indexDesc->rd_rel->relam != HASH_AM_OID)
LockRelation(indexDesc, AccessExclusiveLock);
}
}
@@ -1014,15 +1015,17 @@ ExecCloseIndices(RelationInfo *resultRelationInfo)
{
if (relationDescs[i] == NULL)
continue;
+
/*
* Notes in ExecOpenIndices.
*/
- if (relationDescs[i]->rd_rel->relam != BTREE_AM_OID &&
- relationDescs[i]->rd_rel->relam != HASH_AM_OID)
+ if (relationDescs[i]->rd_rel->relam != BTREE_AM_OID &&
+ relationDescs[i]->rd_rel->relam != HASH_AM_OID)
UnlockRelation(relationDescs[i], AccessExclusiveLock);
index_close(relationDescs[i]);
}
+
/*
* XXX should free indexInfo array here too.
*/
@@ -1210,7 +1213,7 @@ ExecInsertIndexTuples(TupleTableSlot *slot,
result = index_insert(relationDescs[i], /* index relation */
datum, /* array of heaptuple Datums */
nulls, /* info on nulls */
- &(heapTuple->t_self), /* tid of heap tuple */
+ &(heapTuple->t_self), /* tid of heap tuple */
heapRelation);
/* ----------------
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c
index f9b729b8386..c32c14a5963 100644
--- a/src/backend/executor/functions.c
+++ b/src/backend/executor/functions.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.25 1999/05/13 07:28:29 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.26 1999/05/25 16:08:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -107,9 +107,9 @@ init_execution_state(FunctionCachePtr fcache,
preves = (execution_state *) NULL;
planTree_list = pg_parse_and_plan(fcache->src, fcache->argOidVect,
- nargs, &queryTree_list, None, FALSE);
+ nargs, &queryTree_list, None, FALSE);
- foreach (qtl_item, queryTree_list)
+ foreach(qtl_item, queryTree_list)
{
Query *queryTree = lfirst(qtl_item);
Plan *planTree = lfirst(planTree_list);
@@ -199,7 +199,7 @@ postquel_getnext(execution_state *es)
feature = (LAST_POSTQUEL_COMMAND(es)) ? EXEC_RETONE : EXEC_RUN;
- return ExecutorRun(es->qd, es->estate, feature, (Node *)NULL, (Node *)NULL);
+ return ExecutorRun(es->qd, es->estate, feature, (Node *) NULL, (Node *) NULL);
}
static void
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index a3f4f12570e..f1e0433c39d 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -45,7 +45,7 @@ typedef struct AggFuncInfo
FmgrInfo finalfn;
} AggFuncInfo;
-static Datum aggGetAttr(TupleTableSlot *tuple, Aggref *aggref, bool *isNull);
+static Datum aggGetAttr(TupleTableSlot *tuple, Aggref * aggref, bool *isNull);
/* ---------------------------------------
@@ -121,7 +121,8 @@ ExecAgg(Agg *node)
*/
/*
- * We loop retrieving groups until we find one matching node->plan.qual
+ * We loop retrieving groups until we find one matching
+ * node->plan.qual
*/
do
{
@@ -133,7 +134,7 @@ ExecAgg(Agg *node)
econtext = aggstate->csstate.cstate.cs_ExprContext;
nagg = length(node->aggs);
-
+
value1 = node->aggstate->csstate.cstate.cs_ExprContext->ecxt_values;
nulls = node->aggstate->csstate.cstate.cs_ExprContext->ecxt_nulls;
@@ -163,7 +164,7 @@ ExecAgg(Agg *node)
finalfn_oid;
aggref->aggno = ++aggno;
-
+
/* ---------------------
* find transfer functions of all the aggregates and initialize
* their initial values
@@ -172,7 +173,7 @@ ExecAgg(Agg *node)
aggname = aggref->aggname;
aggTuple = SearchSysCacheTuple(AGGNAME,
PointerGetDatum(aggname),
- ObjectIdGetDatum(aggref->basetype),
+ ObjectIdGetDatum(aggref->basetype),
0, 0);
if (!HeapTupleIsValid(aggTuple))
elog(ERROR, "ExecAgg: cache lookup failed for aggregate \"%s\"(%s)",
@@ -195,9 +196,9 @@ ExecAgg(Agg *node)
fmgr_info(xfn2_oid, &aggFuncInfo[aggno].xfn2);
aggFuncInfo[aggno].xfn2_oid = xfn2_oid;
value2[aggno] = (Datum) AggNameGetInitVal((char *) aggname,
- aggp->aggbasetype,
- 2,
- &isNull2);
+ aggp->aggbasetype,
+ 2,
+ &isNull2);
/* ------------------------------------------
* If there is a second transition function, its initial
* value must exist -- as it does not depend on data values,
@@ -213,9 +214,9 @@ ExecAgg(Agg *node)
fmgr_info(xfn1_oid, &aggFuncInfo[aggno].xfn1);
aggFuncInfo[aggno].xfn1_oid = xfn1_oid;
value1[aggno] = (Datum) AggNameGetInitVal((char *) aggname,
- aggp->aggbasetype,
- 1,
- &isNull1);
+ aggp->aggbasetype,
+ 1,
+ &isNull1);
/* ------------------------------------------
* If the initial value for the first transition function
@@ -245,6 +246,7 @@ ExecAgg(Agg *node)
outerslot = ExecProcNode(outerPlan, (Plan *) node);
if (TupIsNull(outerslot))
{
+
/*
* when the outerplan doesn't return a single tuple,
* create a dummy heaptuple anyway because we still need
@@ -299,27 +301,29 @@ ExecAgg(Agg *node)
{
if (noInitValue[aggno])
{
+
/*
- * value1 has not been initialized.
- * This is the first non-NULL input value.
- * We use it as the initial value for value1.
+ * value1 has not been initialized. This is the
+ * first non-NULL input value. We use it as the
+ * initial value for value1.
*
- * But we can't just use it straight, we have to
- * make a copy of it since the tuple from which it
- * came will be freed on the next iteration of the
+ * But we can't just use it straight, we have to make
+ * a copy of it since the tuple from which it came
+ * will be freed on the next iteration of the
* scan. This requires finding out how to copy
* the Datum. We assume the datum is of the agg's
- * basetype, or at least binary compatible with it.
+ * basetype, or at least binary compatible with
+ * it.
*/
- Type aggBaseType = typeidType(aggref->basetype);
- int attlen = typeLen(aggBaseType);
- bool byVal = typeByVal(aggBaseType);
+ Type aggBaseType = typeidType(aggref->basetype);
+ int attlen = typeLen(aggBaseType);
+ bool byVal = typeByVal(aggBaseType);
if (byVal)
value1[aggno] = newVal;
else
{
- if (attlen == -1) /* variable length */
+ if (attlen == -1) /* variable length */
attlen = VARSIZE((struct varlena *) newVal);
value1[aggno] = (Datum) palloc(attlen);
memcpy((char *) (value1[aggno]), (char *) newVal,
@@ -330,13 +334,14 @@ ExecAgg(Agg *node)
}
else
{
+
/*
* apply the transition functions.
*/
args[0] = value1[aggno];
args[1] = newVal;
- value1[aggno] = (Datum) fmgr_c(&aggfns->xfn1,
- (FmgrValues *) args, &isNull1);
+ value1[aggno] = (Datum) fmgr_c(&aggfns->xfn1,
+ (FmgrValues *) args, &isNull1);
Assert(!isNull1);
}
}
@@ -344,8 +349,8 @@ ExecAgg(Agg *node)
if (aggfns->xfn2.fn_addr != NULL)
{
args[0] = value2[aggno];
- value2[aggno] = (Datum) fmgr_c(&aggfns->xfn2,
- (FmgrValues *) args, &isNull2);
+ value2[aggno] = (Datum) fmgr_c(&aggfns->xfn2,
+ (FmgrValues *) args, &isNull2);
Assert(!isNull2);
}
}
@@ -395,7 +400,7 @@ ExecAgg(Agg *node)
else
elog(NOTICE, "ExecAgg: no valid transition functions??");
value1[aggno] = (Datum) fmgr_c(&aggfns->finalfn,
- (FmgrValues *) args, &(nulls[aggno]));
+ (FmgrValues *) args, &(nulls[aggno]));
}
else if (aggfns->xfn1.fn_addr != NULL)
{
@@ -441,10 +446,11 @@ ExecAgg(Agg *node)
* As long as the retrieved group does not match the
* qualifications it is ignored and the next group is fetched
*/
- if(node->plan.qual != NULL)
- qual_result = ExecQual(fix_opids(node->plan.qual), econtext);
- else qual_result = false;
-
+ if (node->plan.qual != NULL)
+ qual_result = ExecQual(fix_opids(node->plan.qual), econtext);
+ else
+ qual_result = false;
+
if (oneTuple)
pfree(oneTuple);
}
@@ -466,7 +472,7 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
AggState *aggstate;
Plan *outerPlan;
ExprContext *econtext;
-
+
/*
* assign the node's execution state
*/
@@ -478,7 +484,7 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
aggstate = makeNode(AggState);
node->aggstate = aggstate;
aggstate->agg_done = FALSE;
-
+
/*
* assign node's base id and create expression context
*/
@@ -494,7 +500,7 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent)
ExecInitResultTupleSlot(estate, &aggstate->csstate.cstate);
econtext = aggstate->csstate.cstate.cs_ExprContext;
- econtext->ecxt_values = (Datum *) palloc(sizeof(Datum) * length(node->aggs));
+ econtext->ecxt_values = (Datum *) palloc(sizeof(Datum) * length(node->aggs));
MemSet(econtext->ecxt_values, 0, sizeof(Datum) * length(node->aggs));
econtext->ecxt_nulls = (char *) palloc(sizeof(char) * length(node->aggs));
MemSet(econtext->ecxt_nulls, 0, sizeof(char) * length(node->aggs));
@@ -538,8 +544,8 @@ int
ExecCountSlotsAgg(Agg *node)
{
return ExecCountSlotsNode(outerPlan(node)) +
- ExecCountSlotsNode(innerPlan(node)) +
- AGG_NSLOTS;
+ ExecCountSlotsNode(innerPlan(node)) +
+ AGG_NSLOTS;
}
/* ------------------------
@@ -576,7 +582,7 @@ ExecEndAgg(Agg *node)
*/
static Datum
aggGetAttr(TupleTableSlot *slot,
- Aggref *aggref,
+ Aggref * aggref,
bool *isNull)
{
Datum result;
@@ -622,10 +628,11 @@ aggGetAttr(TupleTableSlot *slot,
return (Datum) tempSlot;
}
- result = heap_getattr(heapTuple, /* tuple containing attribute */
- attnum, /* attribute number of desired attribute */
- tuple_type,/* tuple descriptor of tuple */
- isNull); /* return: is attribute null? */
+ result = heap_getattr(heapTuple, /* tuple containing attribute */
+ attnum, /* attribute number of desired
+ * attribute */
+ tuple_type, /* tuple descriptor of tuple */
+ isNull); /* return: is attribute null? */
/* ----------------
* return null if att is null
diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c
index 8a096ef0f86..c46b467caaa 100644
--- a/src/backend/executor/nodeAppend.c
+++ b/src/backend/executor/nodeAppend.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeAppend.c,v 1.18 1999/02/21 03:48:40 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeAppend.c,v 1.19 1999/05/25 16:08:40 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -151,7 +151,7 @@ exec_append_initialize_next(Append *node)
if (appendstate->as_junkFilter_list)
{
estate->es_junkFilter = (JunkFilter *) nth(whichplan,
- appendstate->as_junkFilter_list);
+ appendstate->as_junkFilter_list);
}
if (appendstate->as_result_relation_info_list)
{
diff --git a/src/backend/executor/nodeGroup.c b/src/backend/executor/nodeGroup.c
index c850906d8ae..55659a90254 100644
--- a/src/backend/executor/nodeGroup.c
+++ b/src/backend/executor/nodeGroup.c
@@ -13,7 +13,7 @@
* columns. (ie. tuples from the same group are consecutive)
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.25 1999/02/13 23:15:21 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.26 1999/05/25 16:08:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -193,8 +193,8 @@ ExecGroupOneTuple(Group *node)
grpstate->grp_done = TRUE;
return NULL;
}
- grpstate->grp_firstTuple = firsttuple =
- heap_copytuple(outerslot->val);
+ grpstate->grp_firstTuple = firsttuple =
+ heap_copytuple(outerslot->val);
}
/*
diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c
index 4589da32bc1..3a76ef8c5d5 100644
--- a/src/backend/executor/nodeHash.c
+++ b/src/backend/executor/nodeHash.c
@@ -6,7 +6,7 @@
* Copyright (c) 1994, Regents of the University of California
*
*
- * $Id: nodeHash.c,v 1.35 1999/05/18 21:33:06 tgl Exp $
+ * $Id: nodeHash.c,v 1.36 1999/05/25 16:08:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,7 +19,7 @@
*/
#include <sys/types.h>
-#include <stdio.h>
+#include <stdio.h>
#include <math.h>
#include <string.h>
@@ -80,7 +80,8 @@ ExecHash(Hash *node)
*/
for (i = 0; i < nbatch; i++)
{
- File tfile = OpenTemporaryFile();
+ File tfile = OpenTemporaryFile();
+
Assert(tfile >= 0);
hashtable->innerBatchFile[i] = BufFileCreate(tfile);
}
@@ -247,30 +248,33 @@ ExecHashTableCreate(Hash *node)
int i;
Portal myPortal;
char myPortalName[64];
- MemoryContext oldcxt;
+ MemoryContext oldcxt;
/* ----------------
* Get information about the size of the relation to be hashed
* (it's the "outer" subtree of this node, but the inner relation of
* the hashjoin).
- * Caution: this is only the planner's estimates, and so
- * can't be trusted too far. Apply a healthy fudge factor.
+ * Caution: this is only the planner's estimates, and so
+ * can't be trusted too far. Apply a healthy fudge factor.
* ----------------
*/
outerNode = outerPlan(node);
ntuples = outerNode->plan_size;
if (ntuples <= 0) /* force a plausible size if no info */
ntuples = 1000;
- /* estimate tupsize based on footprint of tuple in hashtable...
- * but what about palloc overhead?
+
+ /*
+ * estimate tupsize based on footprint of tuple in hashtable... but
+ * what about palloc overhead?
*/
tupsize = MAXALIGN(outerNode->plan_width) +
MAXALIGN(sizeof(HashJoinTupleData));
- inner_rel_bytes = (double) ntuples * tupsize * FUDGE_FAC;
+ inner_rel_bytes = (double) ntuples *tupsize * FUDGE_FAC;
/*
* Target hashtable size is SortMem kilobytes, but not less than
- * sqrt(estimated inner rel size), so as to avoid horrible performance.
+ * sqrt(estimated inner rel size), so as to avoid horrible
+ * performance.
*/
hash_table_bytes = sqrt(inner_rel_bytes);
if (hash_table_bytes < (SortMem * 1024L))
@@ -278,17 +282,19 @@ ExecHashTableCreate(Hash *node)
/*
* Count the number of hash buckets we want for the whole relation,
- * for an average bucket load of NTUP_PER_BUCKET (per virtual bucket!).
+ * for an average bucket load of NTUP_PER_BUCKET (per virtual
+ * bucket!).
*/
totalbuckets = (int) ceil((double) ntuples * FUDGE_FAC / NTUP_PER_BUCKET);
/*
* Count the number of buckets we think will actually fit in the
- * target memory size, at a loading of NTUP_PER_BUCKET (physical buckets).
- * NOTE: FUDGE_FAC here determines the fraction of the hashtable space
- * reserved to allow for nonuniform distribution of hash values.
- * Perhaps this should be a different number from the other uses of
- * FUDGE_FAC, but since we have no real good way to pick either one...
+ * target memory size, at a loading of NTUP_PER_BUCKET (physical
+ * buckets). NOTE: FUDGE_FAC here determines the fraction of the
+ * hashtable space reserved to allow for nonuniform distribution of
+ * hash values. Perhaps this should be a different number from the
+ * other uses of FUDGE_FAC, but since we have no real good way to pick
+ * either one...
*/
bucketsize = NTUP_PER_BUCKET * tupsize;
nbuckets = (int) (hash_table_bytes / (bucketsize * FUDGE_FAC));
@@ -297,21 +303,25 @@ ExecHashTableCreate(Hash *node)
if (totalbuckets <= nbuckets)
{
- /* We have enough space, so no batching. In theory we could
- * even reduce nbuckets, but since that could lead to poor
- * behavior if estimated ntuples is much less than reality,
- * it seems better to make more buckets instead of fewer.
+
+ /*
+ * We have enough space, so no batching. In theory we could even
+ * reduce nbuckets, but since that could lead to poor behavior if
+ * estimated ntuples is much less than reality, it seems better to
+ * make more buckets instead of fewer.
*/
totalbuckets = nbuckets;
nbatch = 0;
}
else
{
- /* Need to batch; compute how many batches we want to use.
- * Note that nbatch doesn't have to have anything to do with
- * the ratio totalbuckets/nbuckets; in fact, it is the number
- * of groups we will use for the part of the data that doesn't
- * fall into the first nbuckets hash buckets.
+
+ /*
+ * Need to batch; compute how many batches we want to use. Note
+ * that nbatch doesn't have to have anything to do with the ratio
+ * totalbuckets/nbuckets; in fact, it is the number of groups we
+ * will use for the part of the data that doesn't fall into the
+ * first nbuckets hash buckets.
*/
nbatch = (int) ceil((inner_rel_bytes - hash_table_bytes) /
hash_table_bytes);
@@ -319,16 +329,17 @@ ExecHashTableCreate(Hash *node)
nbatch = 1;
}
- /* Now, totalbuckets is the number of (virtual) hashbuckets for the
+ /*
+ * Now, totalbuckets is the number of (virtual) hashbuckets for the
* whole relation, and nbuckets is the number of physical hashbuckets
- * we will use in the first pass. Data falling into the first nbuckets
- * virtual hashbuckets gets handled in the first pass; everything else
- * gets divided into nbatch batches to be processed in additional
- * passes.
+ * we will use in the first pass. Data falling into the first
+ * nbuckets virtual hashbuckets gets handled in the first pass;
+ * everything else gets divided into nbatch batches to be processed in
+ * additional passes.
*/
#ifdef HJDEBUG
- printf("nbatch = %d, totalbuckets = %d, nbuckets = %d\n",
- nbatch, totalbuckets, nbuckets);
+ printf("nbatch = %d, totalbuckets = %d, nbuckets = %d\n",
+ nbatch, totalbuckets, nbuckets);
#endif
/* ----------------
@@ -353,14 +364,16 @@ ExecHashTableCreate(Hash *node)
* ----------------
*/
i = 0;
- do {
+ do
+ {
i++;
sprintf(myPortalName, "<hashtable %d>", i);
myPortal = GetPortalByName(myPortalName);
} while (PortalIsValid(myPortal));
myPortal = CreatePortal(myPortalName);
Assert(PortalIsValid(myPortal));
- hashtable->myPortal = (void*) myPortal; /* kluge for circular includes */
+ hashtable->myPortal = (void *) myPortal; /* kluge for circular
+ * includes */
hashtable->hashCxt = (MemoryContext) PortalGetVariableMemory(myPortal);
hashtable->batchCxt = (MemoryContext) PortalGetHeapMemory(myPortal);
@@ -392,8 +405,9 @@ ExecHashTableCreate(Hash *node)
/* The files will not be opened until later... */
}
- /* Prepare portal for the first-scan space allocations;
- * allocate the hashbucket array therein, and set each bucket "empty".
+ /*
+ * Prepare portal for the first-scan space allocations; allocate the
+ * hashbucket array therein, and set each bucket "empty".
*/
MemoryContextSwitchTo(hashtable->batchCxt);
StartPortalAllocMode(DefaultAllocMode, 0);
@@ -405,9 +419,7 @@ ExecHashTableCreate(Hash *node)
elog(ERROR, "Insufficient memory for hash table.");
for (i = 0; i < nbuckets; i++)
- {
hashtable->buckets[i] = NULL;
- }
MemoryContextSwitchTo(oldcxt);
@@ -436,7 +448,7 @@ ExecHashTableDestroy(HashJoinTable hashtable)
/* Destroy the portal to release all working memory */
/* cast here is a kluge for circular includes... */
- PortalDestroy((Portal*) & hashtable->myPortal);
+ PortalDestroy((Portal *) &hashtable->myPortal);
/* And drop the control block */
pfree(hashtable);
@@ -468,15 +480,15 @@ ExecHashTableInsert(HashJoinTable hashtable,
* put the tuple in hash table
* ---------------
*/
- HashJoinTuple hashTuple;
- int hashTupleSize;
+ HashJoinTuple hashTuple;
+ int hashTupleSize;
hashTupleSize = MAXALIGN(sizeof(*hashTuple)) + heapTuple->t_len;
hashTuple = (HashJoinTuple) MemoryContextAlloc(hashtable->batchCxt,
hashTupleSize);
if (hashTuple == NULL)
elog(ERROR, "Insufficient memory for hash table.");
- memcpy((char *) & hashTuple->htup,
+ memcpy((char *) &hashTuple->htup,
(char *) heapTuple,
sizeof(hashTuple->htup));
hashTuple->htup.t_data = (HeapTupleHeader)
@@ -493,8 +505,9 @@ ExecHashTableInsert(HashJoinTable hashtable,
* put the tuple into a tmp file for other batches
* -----------------
*/
- int batchno = (hashtable->nbatch * (bucketno - hashtable->nbuckets)) /
- (hashtable->totalbuckets - hashtable->nbuckets);
+ int batchno = (hashtable->nbatch * (bucketno - hashtable->nbuckets)) /
+ (hashtable->totalbuckets - hashtable->nbuckets);
+
hashtable->innerBatchSize[batchno]++;
ExecHashJoinSaveTuple(heapTuple,
hashtable->innerBatchFile[batchno]);
@@ -563,26 +576,23 @@ ExecScanHashBucket(HashJoinState *hjstate,
List *hjclauses,
ExprContext *econtext)
{
- HashJoinTable hashtable = hjstate->hj_HashTable;
- HashJoinTuple hashTuple = hjstate->hj_CurTuple;
+ HashJoinTable hashtable = hjstate->hj_HashTable;
+ HashJoinTuple hashTuple = hjstate->hj_CurTuple;
- /* hj_CurTuple is NULL to start scanning a new bucket, or the address
+ /*
+ * hj_CurTuple is NULL to start scanning a new bucket, or the address
* of the last tuple returned from the current bucket.
*/
if (hashTuple == NULL)
- {
hashTuple = hashtable->buckets[hjstate->hj_CurBucketNo];
- }
else
- {
hashTuple = hashTuple->next;
- }
while (hashTuple != NULL)
{
- HeapTuple heapTuple = & hashTuple->htup;
+ HeapTuple heapTuple = &hashTuple->htup;
TupleTableSlot *inntuple;
- bool qualResult;
+ bool qualResult;
/* insert hashtable's tuple into exec slot so ExecQual sees it */
inntuple = ExecStoreTuple(heapTuple, /* tuple to store */
@@ -618,28 +628,34 @@ ExecScanHashBucket(HashJoinState *hjstate,
static int
hashFunc(Datum key, int len, bool byVal)
{
- unsigned int h = 0;
- unsigned char *k;
+ unsigned int h = 0;
+ unsigned char *k;
+
+ if (byVal)
+ {
- if (byVal) {
/*
- * If it's a by-value data type, use the 'len' least significant bytes
- * of the Datum value. This should do the right thing on either
- * bigendian or littleendian hardware --- see the Datum access
- * macros in c.h.
+ * If it's a by-value data type, use the 'len' least significant
+ * bytes of the Datum value. This should do the right thing on
+ * either bigendian or littleendian hardware --- see the Datum
+ * access macros in c.h.
*/
- while (len-- > 0) {
+ while (len-- > 0)
+ {
h = (h * PRIME1) ^ (key & 0xFF);
key >>= 8;
}
- } else {
+ }
+ else
+ {
+
/*
* If this is a variable length type, then 'k' points to a "struct
* varlena" and len == -1. NOTE: VARSIZE returns the "real" data
* length plus the sizeof the "vl_len" attribute of varlena (the
* length information). 'k' points to the beginning of the varlena
- * struct, so we have to use "VARDATA" to find the beginning of the
- * "real" data.
+ * struct, so we have to use "VARDATA" to find the beginning of
+ * the "real" data.
*/
if (len == -1)
{
@@ -647,9 +663,7 @@ hashFunc(Datum key, int len, bool byVal)
k = (unsigned char *) VARDATA(key);
}
else
- {
k = (unsigned char *) key;
- }
while (len-- > 0)
h = (h * PRIME1) ^ (*k++);
}
@@ -669,7 +683,7 @@ hashFunc(Datum key, int len, bool byVal)
void
ExecHashTableReset(HashJoinTable hashtable, long ntuples)
{
- MemoryContext oldcxt;
+ MemoryContext oldcxt;
int nbuckets = hashtable->nbuckets;
int i;
@@ -682,13 +696,14 @@ ExecHashTableReset(HashJoinTable hashtable, long ntuples)
StartPortalAllocMode(DefaultAllocMode, 0);
/*
- * We still use the same number of physical buckets as in the first pass.
- * (It could be different; but we already decided how many buckets would
- * be appropriate for the allowed memory, so stick with that number.)
- * We MUST set totalbuckets to equal nbuckets, because from now on
- * no tuples will go out to temp files; there are no more virtual buckets,
- * only real buckets. (This implies that tuples will go into different
- * bucket numbers than they did on the first pass, but that's OK.)
+ * We still use the same number of physical buckets as in the first
+ * pass. (It could be different; but we already decided how many
+ * buckets would be appropriate for the allowed memory, so stick with
+ * that number.) We MUST set totalbuckets to equal nbuckets, because
+ * from now on no tuples will go out to temp files; there are no more
+ * virtual buckets, only real buckets. (This implies that tuples will
+ * go into different bucket numbers than they did on the first pass,
+ * but that's OK.)
*/
hashtable->totalbuckets = nbuckets;
@@ -700,9 +715,7 @@ ExecHashTableReset(HashJoinTable hashtable, long ntuples)
elog(ERROR, "Insufficient memory for hash table.");
for (i = 0; i < nbuckets; i++)
- {
hashtable->buckets[i] = NULL;
- }
MemoryContextSwitchTo(oldcxt);
}
@@ -710,6 +723,7 @@ ExecHashTableReset(HashJoinTable hashtable, long ntuples)
void
ExecReScanHash(Hash *node, ExprContext *exprCtxt, Plan *parent)
{
+
/*
* if chgParam of subnode is not null then plan will be re-scanned by
* first ExecProcNode.
diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c
index b3808fab367..49f84294021 100644
--- a/src/backend/executor/nodeHashjoin.c
+++ b/src/backend/executor/nodeHashjoin.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.20 1999/05/18 21:33:06 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.21 1999/05/25 16:08:42 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -23,10 +23,10 @@
#include "optimizer/clauses.h" /* for get_leftop */
static TupleTableSlot *ExecHashJoinOuterGetTuple(Plan *node, Plan *parent,
- HashJoinState *hjstate);
+ HashJoinState *hjstate);
static TupleTableSlot *ExecHashJoinGetSavedTuple(HashJoinState *hjstate,
- BufFile *file,
- TupleTableSlot *tupleSlot);
+ BufFile * file,
+ TupleTableSlot *tupleSlot);
static int ExecHashJoinGetBatch(int bucketno, HashJoinTable hashtable);
static int ExecHashJoinNewBatch(HashJoinState *hjstate);
@@ -132,7 +132,8 @@ ExecHashJoin(HashJoin *node)
*/
for (i = 0; i < hashtable->nbatch; i++)
{
- File tfile = OpenTemporaryFile();
+ File tfile = OpenTemporaryFile();
+
Assert(tfile >= 0);
hashtable->outerBatchFile[i] = BufFileCreate(tfile);
}
@@ -149,6 +150,7 @@ ExecHashJoin(HashJoin *node)
for (;;)
{
+
/*
* if the current outer tuple is nil, get a new one
*/
@@ -159,6 +161,7 @@ ExecHashJoin(HashJoin *node)
hjstate);
if (TupIsNull(outerTupleSlot))
{
+
/*
* when the last batch runs out, clean up and exit
*/
@@ -168,8 +171,8 @@ ExecHashJoin(HashJoin *node)
}
/*
- * now we have an outer tuple, find the corresponding bucket for
- * this tuple from the hash table
+ * now we have an outer tuple, find the corresponding bucket
+ * for this tuple from the hash table
*/
econtext->ecxt_outertuple = outerTupleSlot;
hjstate->hj_CurBucketNo = ExecHashGetBucket(hashtable, econtext,
@@ -184,20 +187,23 @@ ExecHashJoin(HashJoin *node)
*/
if (hashtable->curbatch == 0)
{
- int batch = ExecHashJoinGetBatch(hjstate->hj_CurBucketNo,
- hashtable);
+ int batch = ExecHashJoinGetBatch(hjstate->hj_CurBucketNo,
+ hashtable);
+
if (batch > 0)
{
+
/*
* Need to postpone this outer tuple to a later batch.
* Save it in the corresponding outer-batch file.
*/
- int batchno = batch - 1;
+ int batchno = batch - 1;
+
hashtable->outerBatchSize[batchno]++;
ExecHashJoinSaveTuple(outerTupleSlot->val,
- hashtable->outerBatchFile[batchno]);
+ hashtable->outerBatchFile[batchno]);
ExecClearTuple(outerTupleSlot);
- continue; /* loop around for a new outer tuple */
+ continue; /* loop around for a new outer tuple */
}
}
}
@@ -212,6 +218,7 @@ ExecHashJoin(HashJoin *node)
econtext);
if (curtuple == NULL)
break; /* out of matches */
+
/*
* we've got a match, but still need to test qpqual
*/
@@ -427,32 +434,33 @@ ExecEndHashJoin(HashJoin *node)
static TupleTableSlot *
ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate)
{
- HashJoinTable hashtable = hjstate->hj_HashTable;
- int curbatch = hashtable->curbatch;
+ HashJoinTable hashtable = hjstate->hj_HashTable;
+ int curbatch = hashtable->curbatch;
TupleTableSlot *slot;
if (curbatch == 0)
{ /* if it is the first pass */
slot = ExecProcNode(node, parent);
- if (! TupIsNull(slot))
+ if (!TupIsNull(slot))
return slot;
+
/*
- * We have just reached the end of the first pass.
- * Try to switch to a saved batch.
+ * We have just reached the end of the first pass. Try to switch
+ * to a saved batch.
*/
curbatch = ExecHashJoinNewBatch(hjstate);
}
/*
- * Try to read from a temp file.
- * Loop allows us to advance to new batch as needed.
+ * Try to read from a temp file. Loop allows us to advance to new
+ * batch as needed.
*/
while (curbatch <= hashtable->nbatch)
{
slot = ExecHashJoinGetSavedTuple(hjstate,
- hashtable->outerBatchFile[curbatch-1],
+ hashtable->outerBatchFile[curbatch - 1],
hjstate->hj_OuterTupleSlot);
- if (! TupIsNull(slot))
+ if (!TupIsNull(slot))
return slot;
curbatch = ExecHashJoinNewBatch(hjstate);
}
@@ -470,12 +478,12 @@ ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate)
static TupleTableSlot *
ExecHashJoinGetSavedTuple(HashJoinState *hjstate,
- BufFile *file,
+ BufFile * file,
TupleTableSlot *tupleSlot)
{
- HeapTupleData htup;
- size_t nread;
- HeapTuple heapTuple;
+ HeapTupleData htup;
+ size_t nread;
+ HeapTuple heapTuple;
nread = BufFileRead(file, (void *) &htup, sizeof(HeapTupleData));
if (nread == 0)
@@ -484,8 +492,8 @@ ExecHashJoinGetSavedTuple(HashJoinState *hjstate,
elog(ERROR, "Read from hashjoin temp file failed");
heapTuple = palloc(HEAPTUPLESIZE + htup.t_len);
memcpy((char *) heapTuple, (char *) &htup, sizeof(HeapTupleData));
- heapTuple->t_data = (HeapTupleHeader)
- ((char *) heapTuple + HEAPTUPLESIZE);
+ heapTuple->t_data = (HeapTupleHeader)
+ ((char *) heapTuple + HEAPTUPLESIZE);
nread = BufFileRead(file, (void *) heapTuple->t_data, htup.t_len);
if (nread != (size_t) htup.t_len)
elog(ERROR, "Read from hashjoin temp file failed");
@@ -506,16 +514,17 @@ ExecHashJoinNewBatch(HashJoinState *hjstate)
int newbatch = hashtable->curbatch + 1;
long *innerBatchSize = hashtable->innerBatchSize;
long *outerBatchSize = hashtable->outerBatchSize;
- BufFile *innerFile;
+ BufFile *innerFile;
TupleTableSlot *slot;
ExprContext *econtext;
Var *innerhashkey;
if (newbatch > 1)
{
+
/*
- * We no longer need the previous outer batch file;
- * close it right away to free disk space.
+ * We no longer need the previous outer batch file; close it right
+ * away to free disk space.
*/
BufFileClose(hashtable->outerBatchFile[newbatch - 2]);
hashtable->outerBatchFile[newbatch - 2] = NULL;
@@ -541,8 +550,8 @@ ExecHashJoinNewBatch(HashJoinState *hjstate)
return newbatch; /* no more batches */
/*
- * Rewind inner and outer batch files for this batch,
- * so that we can start reading them.
+ * Rewind inner and outer batch files for this batch, so that we can
+ * start reading them.
*/
if (BufFileSeek(hashtable->outerBatchFile[newbatch - 1], 0L,
SEEK_SET) != 0L)
@@ -571,7 +580,8 @@ ExecHashJoinNewBatch(HashJoinState *hjstate)
}
/*
- * after we build the hash table, the inner batch file is no longer needed
+ * after we build the hash table, the inner batch file is no longer
+ * needed
*/
BufFileClose(innerFile);
hashtable->innerBatchFile[newbatch - 1] = NULL;
@@ -615,9 +625,9 @@ ExecHashJoinGetBatch(int bucketno, HashJoinTable hashtable)
void
ExecHashJoinSaveTuple(HeapTuple heapTuple,
- BufFile *file)
+ BufFile * file)
{
- size_t written;
+ size_t written;
written = BufFileWrite(file, (void *) heapTuple, sizeof(HeapTupleData));
if (written != sizeof(HeapTupleData))
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index a55d9cc6e1c..461bc1b8a5e 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.35 1999/05/10 00:45:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.36 1999/05/25 16:08:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -91,13 +91,14 @@ IndexNext(IndexScan *node)
IndexScanDesc scandesc;
Relation heapRelation;
RetrieveIndexResult result;
- HeapTuple tuple;
+ HeapTuple tuple;
TupleTableSlot *slot;
Buffer buffer = InvalidBuffer;
int numIndices;
- bool bBackward;
- int indexNumber;
+ bool bBackward;
+ int indexNumber;
+
/* ----------------
* extract necessary information from index scan node
* ----------------
@@ -114,14 +115,14 @@ IndexNext(IndexScan *node)
/*
* Check if we are evaluating PlanQual for tuple of this relation.
- * Additional checking is not good, but no other way for now.
- * We could introduce new nodes for this case and handle
- * IndexScan --> NewNode switching in Init/ReScan plan...
+ * Additional checking is not good, but no other way for now. We could
+ * introduce new nodes for this case and handle IndexScan --> NewNode
+ * switching in Init/ReScan plan...
*/
- if (estate->es_evTuple != NULL &&
+ if (estate->es_evTuple != NULL &&
estate->es_evTuple[node->scan.scanrelid - 1] != NULL)
{
- int iptr;
+ int iptr;
slot->ttc_buffer = InvalidBuffer;
slot->ttc_shouldFree = false;
@@ -138,7 +139,7 @@ IndexNext(IndexScan *node)
scanstate->cstate.cs_ExprContext))
break;
}
- if (iptr == numIndices) /* would not be returned by indices */
+ if (iptr == numIndices) /* would not be returned by indices */
slot->val = NULL;
/* Flag for the next call that no more tuples */
estate->es_evTupleNull[node->scan.scanrelid - 1] = true;
@@ -153,26 +154,26 @@ IndexNext(IndexScan *node)
* appropriate heap tuple.. else return NULL.
* ----------------
*/
- bBackward = ScanDirectionIsBackward(direction);
- if (bBackward)
- {
- indexNumber = numIndices - indexstate->iss_IndexPtr - 1;
- if (indexNumber < 0)
- {
- indexNumber = 0;
- indexstate->iss_IndexPtr = numIndices - 1;
- }
- }
- else
- {
- if ((indexNumber = indexstate->iss_IndexPtr) < 0)
- {
- indexNumber = 0;
- indexstate->iss_IndexPtr = 0;
- }
- }
- while (indexNumber < numIndices)
- {
+ bBackward = ScanDirectionIsBackward(direction);
+ if (bBackward)
+ {
+ indexNumber = numIndices - indexstate->iss_IndexPtr - 1;
+ if (indexNumber < 0)
+ {
+ indexNumber = 0;
+ indexstate->iss_IndexPtr = numIndices - 1;
+ }
+ }
+ else
+ {
+ if ((indexNumber = indexstate->iss_IndexPtr) < 0)
+ {
+ indexNumber = 0;
+ indexstate->iss_IndexPtr = 0;
+ }
+ }
+ while (indexNumber < numIndices)
+ {
scandesc = scanDescs[indexstate->iss_IndexPtr];
while ((result = index_getnext(scandesc, direction)) != NULL)
{
@@ -224,14 +225,14 @@ IndexNext(IndexScan *node)
if (BufferIsValid(buffer))
ReleaseBuffer(buffer);
}
- if (indexNumber < numIndices)
- {
- indexNumber++;
- if (bBackward)
- indexstate->iss_IndexPtr--;
- else
- indexstate->iss_IndexPtr++;
- }
+ if (indexNumber < numIndices)
+ {
+ indexNumber++;
+ if (bBackward)
+ indexstate->iss_IndexPtr--;
+ else
+ indexstate->iss_IndexPtr++;
+ }
}
/* ----------------
* if we get here it means the index scan failed so we
@@ -323,7 +324,7 @@ ExecIndexReScan(IndexScan *node, ExprContext *exprCtxt, Plan *parent)
indexstate->iss_IndexPtr = -1;
/* If this is re-scanning of PlanQual ... */
- if (estate->es_evTuple != NULL &&
+ if (estate->es_evTuple != NULL &&
estate->es_evTuple[node->scan.scanrelid - 1] != NULL)
{
estate->es_evTupleNull[node->scan.scanrelid - 1] = false;
@@ -703,7 +704,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
run_keys = (n_keys <= 0) ? NULL :
(int *) palloc(n_keys * sizeof(int));
- CXT1_printf("ExecInitIndexScan: context is %d\n",CurrentMemoryContext);
+ CXT1_printf("ExecInitIndexScan: context is %d\n", CurrentMemoryContext);
/* ----------------
* for each opclause in the given qual,
diff --git a/src/backend/executor/nodeMaterial.c b/src/backend/executor/nodeMaterial.c
index 326475102d2..b8cd808dc0c 100644
--- a/src/backend/executor/nodeMaterial.c
+++ b/src/backend/executor/nodeMaterial.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.21 1999/02/13 23:15:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.22 1999/05/25 16:08:44 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -116,7 +116,7 @@ ExecMaterial(Material *node)
if (TupIsNull(slot))
break;
-
+
/*
* heap_insert changes something...
*/
@@ -124,12 +124,12 @@ ExecMaterial(Material *node)
heapTuple = heap_copytuple(slot->val);
else
heapTuple = slot->val;
-
+
heap_insert(tempRelation, heapTuple);
if (slot->ttc_buffer != InvalidBuffer)
pfree(heapTuple);
-
+
ExecClearTuple(slot);
}
currentRelation = tempRelation;
@@ -360,8 +360,8 @@ ExecMaterialReScan(Material *node, ExprContext *exprCtxt, Plan *parent)
return;
matstate->csstate.css_currentScanDesc = ExecReScanR(matstate->csstate.css_currentRelation,
- matstate->csstate.css_currentScanDesc,
- node->plan.state->es_direction, 0, NULL);
+ matstate->csstate.css_currentScanDesc,
+ node->plan.state->es_direction, 0, NULL);
}
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c
index 9b0df288259..4d0c3dae92f 100644
--- a/src/backend/executor/nodeMergejoin.c
+++ b/src/backend/executor/nodeMergejoin.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeMergejoin.c,v 1.26 1999/05/10 00:45:07 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeMergejoin.c,v 1.27 1999/05/25 16:08:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -103,7 +103,7 @@ static bool MergeCompare(List *eqQual, List *compareQual, ExprContext *econtext)
* ----------------------------------------------------------------
*/
static List *
-MJFormSkipQual(List *qualList, char * replaceopname)
+MJFormSkipQual(List *qualList, char *replaceopname)
{
List *qualCopy;
List *qualcdr;
@@ -148,14 +148,14 @@ MJFormSkipQual(List *qualList, char * replaceopname)
* ----------------
*/
optup = get_operator_tuple(op->opno);
- if (!HeapTupleIsValid(optup)) /* shouldn't happen */
+ if (!HeapTupleIsValid(optup)) /* shouldn't happen */
elog(ERROR, "MJFormSkipQual: operator %u not found", op->opno);
opform = (Form_pg_operator) GETSTRUCT(optup);
oprleft = opform->oprleft;
oprright = opform->oprright;
/* ----------------
- * Now look up the matching "<" or ">" operator. If there isn't one,
+ * Now look up the matching "<" or ">" operator. If there isn't one,
* whoever marked the "=" operator mergejoinable was a loser.
* ----------------
*/
@@ -166,7 +166,7 @@ MJFormSkipQual(List *qualList, char * replaceopname)
CharGetDatum('b'));
if (!HeapTupleIsValid(optup))
elog(ERROR,
- "MJFormSkipQual: mergejoin operator %u has no matching %s op",
+ "MJFormSkipQual: mergejoin operator %u has no matching %s op",
op->opno, replaceopname);
opform = (Form_pg_operator) GETSTRUCT(optup);
diff --git a/src/backend/executor/nodeResult.c b/src/backend/executor/nodeResult.c
index 8b0d9e7ec96..7c8166c6f21 100644
--- a/src/backend/executor/nodeResult.c
+++ b/src/backend/executor/nodeResult.c
@@ -27,7 +27,7 @@
* SeqScan (emp.all)
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeResult.c,v 1.10 1999/03/20 01:13:22 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeResult.c,v 1.11 1999/05/25 16:08:46 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -263,8 +263,8 @@ ExecEndResult(Result *node)
* is freed at end-transaction time. -cim 6/2/91
* ----------------
*/
- ExecFreeExprContext(&resstate->cstate); /* XXX - new for us - er1p */
- ExecFreeTypeInfo(&resstate->cstate); /* XXX - new for us - er1p */
+ ExecFreeExprContext(&resstate->cstate); /* XXX - new for us - er1p */
+ ExecFreeTypeInfo(&resstate->cstate); /* XXX - new for us - er1p */
ExecFreeProjectionInfo(&resstate->cstate);
/* ----------------
@@ -278,7 +278,8 @@ ExecEndResult(Result *node)
* ----------------
*/
ExecClearTuple(resstate->cstate.cs_ResultTupleSlot);
- pfree(resstate); node->resstate = NULL; /* XXX - new for us - er1p */
+ pfree(resstate);
+ node->resstate = NULL; /* XXX - new for us - er1p */
}
void
diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c
index 70a6761a833..04a14934137 100644
--- a/src/backend/executor/nodeSeqscan.c
+++ b/src/backend/executor/nodeSeqscan.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeSeqscan.c,v 1.17 1999/02/13 23:15:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeSeqscan.c,v 1.18 1999/05/25 16:08:46 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -68,11 +68,11 @@ SeqNext(SeqScan *node)
/*
* Check if we are evaluating PlanQual for tuple of this relation.
- * Additional checking is not good, but no other way for now.
- * We could introduce new nodes for this case and handle
- * SeqScan --> NewNode switching in Init/ReScan plan...
+ * Additional checking is not good, but no other way for now. We could
+ * introduce new nodes for this case and handle SeqScan --> NewNode
+ * switching in Init/ReScan plan...
*/
- if (estate->es_evTuple != NULL &&
+ if (estate->es_evTuple != NULL &&
estate->es_evTuple[node->scanrelid - 1] != NULL)
{
slot->ttc_buffer = InvalidBuffer;
@@ -83,10 +83,11 @@ SeqNext(SeqScan *node)
return (slot);
}
slot->val = estate->es_evTuple[node->scanrelid - 1];
+
/*
- * Note that unlike IndexScan, SeqScan never use keys
- * in heap_beginscan (and this is very bad) - so, here
- * we have not check are keys ok or not.
+ * Note that unlike IndexScan, SeqScan never use keys in
+ * heap_beginscan (and this is very bad) - so, here we have not
+ * check are keys ok or not.
*/
/* Flag for the next call that no more tuples */
estate->es_evTupleNull[node->scanrelid - 1] = true;
@@ -401,10 +402,11 @@ ExecSeqReScan(SeqScan *node, ExprContext *exprCtxt, Plan *parent)
outerPlan = outerPlan((Plan *) node);
ExecReScan(outerPlan, exprCtxt, parent);
}
- else /* otherwise, we are scanning a relation */
+ else
+/* otherwise, we are scanning a relation */
{
/* If this is re-scanning of PlanQual ... */
- if (estate->es_evTuple != NULL &&
+ if (estate->es_evTuple != NULL &&
estate->es_evTuple[node->scanrelid - 1] != NULL)
{
estate->es_evTupleNull[node->scanrelid - 1] = false;
diff --git a/src/backend/executor/nodeSubplan.c b/src/backend/executor/nodeSubplan.c
index 2eebbf1f1e2..ef65a7afb51 100644
--- a/src/backend/executor/nodeSubplan.c
+++ b/src/backend/executor/nodeSubplan.c
@@ -58,15 +58,16 @@ ExecSubPlan(SubPlan *node, List *pvar, ExprContext *econtext)
ExecReScan(plan, (ExprContext *) NULL, plan);
/*
- * For all sublink types except EXPR_SUBLINK, the result type is boolean,
- * and we have a fairly clear idea of how to combine multiple subitems
- * and deal with NULL values or an empty subplan result.
+ * For all sublink types except EXPR_SUBLINK, the result type is
+ * boolean, and we have a fairly clear idea of how to combine multiple
+ * subitems and deal with NULL values or an empty subplan result.
*
* For EXPR_SUBLINK, the result type is whatever the combining operator
* returns. We have no way to deal with more than one column in the
- * subplan result --- hopefully the parser forbids that. More seriously,
- * it's unclear what to do with NULL values or an empty subplan result.
- * For now, we error out, but should something else happen?
+ * subplan result --- hopefully the parser forbids that. More
+ * seriously, it's unclear what to do with NULL values or an empty
+ * subplan result. For now, we error out, but should something else
+ * happen?
*/
for (slot = ExecProcNode(plan, plan);
@@ -105,14 +106,14 @@ ExecSubPlan(SubPlan *node, List *pvar, ExprContext *econtext)
}
if (subLinkType != EXPR_SUBLINK)
{
- if ((! (bool) result && !(sublink->useor)) ||
+ if ((!(bool) result && !(sublink->useor)) ||
((bool) result && sublink->useor))
break;
}
i++;
}
- if (subLinkType == ALL_SUBLINK && ! (bool) result)
+ if (subLinkType == ALL_SUBLINK && !(bool) result)
break;
if (subLinkType == ANY_SUBLINK && (bool) result)
break;
@@ -120,7 +121,7 @@ ExecSubPlan(SubPlan *node, List *pvar, ExprContext *econtext)
if (!found)
{
- /* deal with empty subplan result. Note default result is 'false' */
+ /* deal with empty subplan result. Note default result is 'false' */
if (subLinkType == ALL_SUBLINK)
result = (Datum) true;
else if (subLinkType == EXPR_SUBLINK)
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index f6e5b8c585e..f807412018e 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -3,7 +3,7 @@
* spi.c
* Server Programming Interface
*
- * $Id: spi.c,v 1.37 1999/05/13 07:28:30 tgl Exp $
+ * $Id: spi.c,v 1.38 1999/05/25 16:08:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,9 +19,9 @@ static _SPI_connection *_SPI_current = NULL;
static int _SPI_connected = -1;
static int _SPI_curid = -1;
-DLLIMPORT uint32 SPI_processed = 0;
+DLLIMPORT uint32 SPI_processed = 0;
DLLIMPORT SPITupleTable *SPI_tuptable;
-DLLIMPORT int SPI_result;
+DLLIMPORT int SPI_result;
static int _SPI_execute(char *src, int tcount, _SPI_plan *plan);
static int _SPI_pquery(QueryDesc *queryDesc, EState *state, int tcount);
@@ -49,8 +49,8 @@ extern void ShowUsage(void);
int
SPI_connect()
{
- char pname[64];
- PortalVariableMemory pvmem;
+ char pname[64];
+ PortalVariableMemory pvmem;
/*
* It's possible on startup and after commit/abort. In future we'll
@@ -345,8 +345,8 @@ SPI_modifytuple(Relation rel, HeapTuple tuple, int natts, int *attnum,
mtuple = heap_formtuple(rel->rd_att, v, n);
infomask = mtuple->t_data->t_infomask;
memmove(&(mtuple->t_data->t_oid), &(tuple->t_data->t_oid),
- ((char *) &(tuple->t_data->t_hoff) -
- (char *) &(tuple->t_data->t_oid)));
+ ((char *) &(tuple->t_data->t_hoff) -
+ (char *) &(tuple->t_data->t_oid)));
mtuple->t_data->t_infomask = infomask;
mtuple->t_data->t_natts = numberOfAttributes;
}
@@ -411,8 +411,8 @@ SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber)
val = heap_getattr(tuple, fnumber, tupdesc, &isnull);
if (isnull)
return NULL;
- if (! getTypeOutAndElem((Oid) tupdesc->attrs[fnumber - 1]->atttypid,
- &foutoid, &typelem))
+ if (!getTypeOutAndElem((Oid) tupdesc->attrs[fnumber - 1]->atttypid,
+ &foutoid, &typelem))
{
SPI_result = SPI_ERROR_NOOUTFUNC;
return NULL;
@@ -549,13 +549,13 @@ SPI_pfree(void *pointer)
/* =================== private functions =================== */
/*
- * spi_printtup
+ * spi_printtup
* store tuple retrieved by Executor into SPITupleTable
* of current SPI procedure
*
*/
void
-spi_printtup(HeapTuple tuple, TupleDesc tupdesc, DestReceiver* self)
+spi_printtup(HeapTuple tuple, TupleDesc tupdesc, DestReceiver * self)
{
SPITupleTable *tuptable;
MemoryContext oldcxt;
@@ -633,12 +633,13 @@ _SPI_execute(char *src, int tcount, _SPI_plan *plan)
_SPI_current->qtlist = queryTree_list;
- foreach (queryTree_list_item, queryTree_list)
+ foreach(queryTree_list_item, queryTree_list)
{
queryTree = (Query *) lfirst(queryTree_list_item);
planTree = lfirst(planTree_list);
planTree_list = lnext(planTree_list);
- islastquery = (planTree_list == NIL); /* assume lists are same len */
+ islastquery = (planTree_list == NIL); /* assume lists are same
+ * len */
if (queryTree->commandType == CMD_UTILITY)
{
@@ -658,7 +659,7 @@ _SPI_execute(char *src, int tcount, _SPI_plan *plan)
if (plan == NULL)
{
ProcessUtility(queryTree->utilityStmt, None);
- if (! islastquery)
+ if (!islastquery)
CommandCounterIncrement();
else
return res;
@@ -717,17 +718,18 @@ _SPI_execute_plan(_SPI_plan *plan, Datum *Values, char *Nulls, int tcount)
_SPI_current->tuptable = NULL;
_SPI_current->qtlist = NULL;
- foreach (queryTree_list_item, queryTree_list)
+ foreach(queryTree_list_item, queryTree_list)
{
queryTree = (Query *) lfirst(queryTree_list_item);
planTree = lfirst(planTree_list);
planTree_list = lnext(planTree_list);
- islastquery = (planTree_list == NIL); /* assume lists are same len */
+ islastquery = (planTree_list == NIL); /* assume lists are same
+ * len */
if (queryTree->commandType == CMD_UTILITY)
{
ProcessUtility(queryTree->utilityStmt, None);
- if (! islastquery)
+ if (!islastquery)
CommandCounterIncrement();
else
return SPI_OK_UTILITY;
@@ -777,7 +779,7 @@ _SPI_pquery(QueryDesc *queryDesc, EState *state, int tcount)
char *intoName = NULL;
int res;
Const tcount_const;
- Node *count = NULL;
+ Node *count = NULL;
switch (operation)
{
@@ -833,18 +835,18 @@ _SPI_pquery(QueryDesc *queryDesc, EState *state, int tcount)
* ----------------
*/
memset(&tcount_const, 0, sizeof(tcount_const));
- tcount_const.type = T_Const;
- tcount_const.consttype = INT4OID;
- tcount_const.constlen = sizeof(int4);
- tcount_const.constvalue = (Datum)tcount;
- tcount_const.constisnull = FALSE;
- tcount_const.constbyval = TRUE;
- tcount_const.constisset = FALSE;
- tcount_const.constiscast = FALSE;
-
- count = (Node *)&tcount_const;
- }
-
+ tcount_const.type = T_Const;
+ tcount_const.consttype = INT4OID;
+ tcount_const.constlen = sizeof(int4);
+ tcount_const.constvalue = (Datum) tcount;
+ tcount_const.constisnull = FALSE;
+ tcount_const.constbyval = TRUE;
+ tcount_const.constisset = FALSE;
+ tcount_const.constiscast = FALSE;
+
+ count = (Node *) &tcount_const;
+ }
+
if (state == NULL) /* plan preparation */
return res;
#ifdef SPI_EXECUTOR_STATS
@@ -922,7 +924,7 @@ _SPI_procmem()
}
/*
- * _SPI_begin_call
+ * _SPI_begin_call
*
*/
static int
diff --git a/src/backend/lib/fstack.c b/src/backend/lib/fstack.c
index 7b05dbd8fd8..1f2beafa922 100644
--- a/src/backend/lib/fstack.c
+++ b/src/backend/lib/fstack.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/lib/Attic/fstack.c,v 1.10 1999/02/13 23:15:34 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/lib/Attic/fstack.c,v 1.11 1999/05/25 16:08:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,20 +20,20 @@
*/
/*
- * FixedItemIsValid
+ * FixedItemIsValid
* True iff item is valid.
*/
#define FixedItemIsValid(item) PointerIsValid(item)
/*
- * FixedStackGetItemBase
+ * FixedStackGetItemBase
* Returns base of enclosing structure.
*/
#define FixedStackGetItemBase(stack, item) \
((Pointer)((char *)(item) - (stack)->offset))
/*
- * FixedStackGetItem
+ * FixedStackGetItem
* Returns item of given pointer to enclosing structure.
*/
#define FixedStackGetItem(stack, pointer) \
@@ -84,7 +84,7 @@ FixedStackPush(FixedStack stack, Pointer pointer)
#ifdef USE_ASSERT_CHECKING
/*
- * FixedStackContains
+ * FixedStackContains
* True iff ordered stack contains given element.
*
* Note:
diff --git a/src/backend/lib/stringinfo.c b/src/backend/lib/stringinfo.c
index 3ded7799749..12d0f8625c2 100644
--- a/src/backend/lib/stringinfo.c
+++ b/src/backend/lib/stringinfo.c
@@ -8,7 +8,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: stringinfo.c,v 1.15 1999/04/25 03:19:25 tgl Exp $
+ * $Id: stringinfo.c,v 1.16 1999/05/25 16:08:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -67,17 +67,18 @@ initStringInfo(StringInfo str)
static void
enlargeStringInfo(StringInfo str, int needed)
{
- int newlen;
- char *newdata;
+ int newlen;
+ char *newdata;
needed += str->len + 1; /* total space required now */
if (needed <= str->maxlen)
return; /* got enough space already */
/*
- * We don't want to allocate just a little more space with each append;
- * for efficiency, double the buffer size each time it overflows.
- * Actually, we might need to more than double it if 'needed' is big...
+ * We don't want to allocate just a little more space with each
+ * append; for efficiency, double the buffer size each time it
+ * overflows. Actually, we might need to more than double it if
+ * 'needed' is big...
*/
newlen = 2 * str->maxlen;
while (needed > newlen)
@@ -86,7 +87,7 @@ enlargeStringInfo(StringInfo str, int needed)
newdata = palloc(newlen);
if (newdata == NULL)
elog(ERROR,
- "enlargeStringInfo: Out of memory (%d bytes requested)", newlen);
+ "enlargeStringInfo: Out of memory (%d bytes requested)", newlen);
/* OK, transfer data into new buffer, and release old buffer */
memcpy(newdata, str->data, str->len + 1);
@@ -107,11 +108,11 @@ enlargeStringInfo(StringInfo str, int needed)
* generated in a single call (not on the total string length).
*/
void
-appendStringInfo(StringInfo str, const char *fmt, ...)
+appendStringInfo(StringInfo str, const char *fmt,...)
{
- va_list args;
- char buffer[1024];
- int buflen;
+ va_list args;
+ char buffer[1024];
+ int buflen;
Assert(str != NULL);
@@ -164,7 +165,8 @@ appendBinaryStringInfo(StringInfo str, const char *data, int datalen)
memcpy(str->data + str->len, data, datalen);
str->len += datalen;
- /* Keep a trailing null in place, even though it's probably useless
+ /*
+ * Keep a trailing null in place, even though it's probably useless
* for binary data...
*/
str->data[str->len] = '\0';
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index 6941934369c..c5bfc69748a 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.35 1999/04/16 04:59:03 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.36 1999/05/25 16:08:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -75,13 +75,13 @@ static int map_old_to_new(Port *port, UserAuth old, int status);
static int
pg_krb4_recvauth(Port *port)
{
- long krbopts = 0; /* one-way authentication */
- KTEXT_ST clttkt;
- char instance[INST_SZ+1],
- version[KRB_SENDAUTH_VLEN+1];
- AUTH_DAT auth_data;
- Key_schedule key_sched;
- int status;
+ long krbopts = 0; /* one-way authentication */
+ KTEXT_ST clttkt;
+ char instance[INST_SZ + 1],
+ version[KRB_SENDAUTH_VLEN + 1];
+ AUTH_DAT auth_data;
+ Key_schedule key_sched;
+ int status;
strcpy(instance, "*"); /* don't care, but arg gets expanded
* anyway */
@@ -99,7 +99,7 @@ pg_krb4_recvauth(Port *port)
if (status != KSUCCESS)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb4_recvauth: kerberos error: %s\n", krb_err_txt[status]);
+ "pg_krb4_recvauth: kerberos error: %s\n", krb_err_txt[status]);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
return STATUS_ERROR;
@@ -107,7 +107,7 @@ pg_krb4_recvauth(Port *port)
if (strncmp(version, PG_KRB4_VERSION, KRB_SENDAUTH_VLEN))
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb4_recvauth: protocol version != \"%s\"\n", PG_KRB4_VERSION);
+ "pg_krb4_recvauth: protocol version != \"%s\"\n", PG_KRB4_VERSION);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
return STATUS_ERROR;
@@ -115,8 +115,8 @@ pg_krb4_recvauth(Port *port)
if (strncmp(port->user, auth_data.pname, SM_USER))
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb4_recvauth: name \"%s\" != \"%s\"\n",
- port->user, auth_data.pname);
+ "pg_krb4_recvauth: name \"%s\" != \"%s\"\n",
+ port->user, auth_data.pname);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
return STATUS_ERROR;
@@ -129,7 +129,7 @@ static int
pg_krb4_recvauth(Port *port)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb4_recvauth: Kerberos not implemented on this server.\n");
+ "pg_krb4_recvauth: Kerberos not implemented on this server.\n");
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
@@ -223,7 +223,7 @@ pg_krb5_recvauth(Port *port)
if (code = krb5_parse_name(servbuf, &server))
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb5_recvauth: Kerberos error %d in krb5_parse_name\n", code);
+ "pg_krb5_recvauth: Kerberos error %d in krb5_parse_name\n", code);
com_err("pg_krb5_recvauth", code, "in krb5_parse_name");
return STATUS_ERROR;
}
@@ -256,7 +256,7 @@ pg_krb5_recvauth(Port *port)
(krb5_authenticator **) NULL))
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb5_recvauth: Kerberos error %d in krb5_recvauth\n", code);
+ "pg_krb5_recvauth: Kerberos error %d in krb5_recvauth\n", code);
com_err("pg_krb5_recvauth", code, "in krb5_recvauth");
krb5_free_principal(server);
return STATUS_ERROR;
@@ -271,7 +271,7 @@ pg_krb5_recvauth(Port *port)
if ((code = krb5_unparse_name(client, &kusername)))
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb5_recvauth: Kerberos error %d in krb5_unparse_name\n", code);
+ "pg_krb5_recvauth: Kerberos error %d in krb5_unparse_name\n", code);
com_err("pg_krb5_recvauth", code, "in krb5_unparse_name");
krb5_free_principal(client);
return STATUS_ERROR;
@@ -280,7 +280,7 @@ pg_krb5_recvauth(Port *port)
if (!kusername)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb5_recvauth: could not decode username\n");
+ "pg_krb5_recvauth: could not decode username\n");
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
return STATUS_ERROR;
@@ -289,7 +289,7 @@ pg_krb5_recvauth(Port *port)
if (strncmp(username, kusername, SM_USER))
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb5_recvauth: name \"%s\" != \"%s\"\n", port->user, kusername);
+ "pg_krb5_recvauth: name \"%s\" != \"%s\"\n", port->user, kusername);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
pfree(kusername);
@@ -304,7 +304,7 @@ static int
pg_krb5_recvauth(Port *port)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_krb5_recvauth: Kerberos not implemented on this server.\n");
+ "pg_krb5_recvauth: Kerberos not implemented on this server.\n");
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
@@ -359,7 +359,7 @@ pg_passwordv0_recvauth(void *arg, PacketLen len, void *pkt)
if (user == NULL || password == NULL)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "pg_password_recvauth: badly formed password packet.\n");
+ "pg_password_recvauth: badly formed password packet.\n");
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
@@ -405,7 +405,7 @@ pg_passwordv0_recvauth(void *arg, PacketLen len, void *pkt)
void
auth_failed(Port *port)
{
- char buffer[512];
+ char buffer[512];
const char *authmethod = "Unknown auth method:";
switch (port->auth_method)
@@ -449,9 +449,9 @@ be_recvauth(Port *port)
/*
* Get the authentication method to use for this frontend/database
- * combination. Note: a failure return indicates a problem with
- * the hba config file, not with the request. hba.c should have
- * dropped an error message into the postmaster logfile if it failed.
+ * combination. Note: a failure return indicates a problem with the
+ * hba config file, not with the request. hba.c should have dropped
+ * an error message into the postmaster logfile if it failed.
*/
if (hba_getauthmethod(&port->raddr, port->user, port->database,
@@ -470,27 +470,28 @@ be_recvauth(Port *port)
{
/* Handle new style authentication. */
- AuthRequest areq = AUTH_REQ_OK;
- PacketDoneProc auth_handler = NULL;
+ AuthRequest areq = AUTH_REQ_OK;
+ PacketDoneProc auth_handler = NULL;
switch (port->auth_method)
{
case uaReject:
+
/*
- * This could have come from an explicit "reject" entry
- * in pg_hba.conf, but more likely it means there was no
- * matching entry. Take pity on the poor user and issue
- * a helpful error message. NOTE: this is not a security
- * breach, because all the info reported here is known
- * at the frontend and must be assumed known to bad guys.
+ * This could have come from an explicit "reject" entry in
+ * pg_hba.conf, but more likely it means there was no
+ * matching entry. Take pity on the poor user and issue a
+ * helpful error message. NOTE: this is not a security
+ * breach, because all the info reported here is known at
+ * the frontend and must be assumed known to bad guys.
* We're merely helping out the less clueful good guys.
* NOTE 2: libpq-be.h defines the maximum error message
* length as 99 characters. It probably wouldn't hurt
- * anything to increase it, but there might be some
- * client out there that will fail. So, be terse.
+ * anything to increase it, but there might be some client
+ * out there that will fail. So, be terse.
*/
{
- char buffer[512];
+ char buffer[512];
const char *hostinfo = "localhost";
if (port->raddr.sa.sa_family == AF_INET)
diff --git a/src/backend/libpq/be-dumpdata.c b/src/backend/libpq/be-dumpdata.c
index 8c9dcae52d2..ed70ab734a0 100644
--- a/src/backend/libpq/be-dumpdata.c
+++ b/src/backend/libpq/be-dumpdata.c
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: be-dumpdata.c,v 1.23 1999/05/10 00:45:08 momjian Exp $
+ * $Id: be-dumpdata.c,v 1.24 1999/05/25 16:08:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -130,8 +130,8 @@ static u_int be_portalcnt = 0;
PortalEntry *
be_newportal(void)
{
- PortalEntry *entry;
- char buf[PortalNameLength];
+ PortalEntry *entry;
+ char buf[PortalNameLength];
/* ----------------
* generate a new name
@@ -208,7 +208,7 @@ be_typeinit(PortalEntry *entry,
* ----------------
*/
void
-be_printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
+be_printtup(HeapTuple tuple, TupleDesc typeinfo, DestReceiver * self)
{
int i;
Datum attr;
diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c
index 8a063cf1eaf..bef974d8a5d 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.32 1999/05/10 00:45:09 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.33 1999/05/25 16:08:57 momjian Exp $
*
* NOTES
* This should be moved to a more appropriate place. It is here
@@ -131,8 +131,8 @@ lo_close(int fd)
int
lo_read(int fd, char *buf, int len)
{
- MemoryContext currentContext;
- int status;
+ MemoryContext currentContext;
+ int status;
if (fd < 0 || fd >= MAX_LOBJ_FDS)
{
@@ -144,19 +144,19 @@ lo_read(int fd, char *buf, int len)
elog(ERROR, "lo_read: invalid large obj descriptor (%d)", fd);
return -3;
}
- currentContext = MemoryContextSwitchTo((MemoryContext) fscxt);
+ currentContext = MemoryContextSwitchTo((MemoryContext) fscxt);
status = inv_read(cookies[fd], buf, len);
MemoryContextSwitchTo(currentContext);
- return(status);
+ return (status);
}
int
lo_write(int fd, char *buf, int len)
{
- MemoryContext currentContext;
- int status;
+ MemoryContext currentContext;
+ int status;
if (fd < 0 || fd >= MAX_LOBJ_FDS)
{
@@ -168,12 +168,12 @@ lo_write(int fd, char *buf, int len)
elog(ERROR, "lo_write: invalid large obj descriptor (%d)", fd);
return -3;
}
- currentContext = MemoryContextSwitchTo((MemoryContext) fscxt);
+ currentContext = MemoryContextSwitchTo((MemoryContext) fscxt);
status = inv_write(cookies[fd], buf, len);
MemoryContextSwitchTo(currentContext);
- return(status);
+ return (status);
}
@@ -374,9 +374,7 @@ lo_export(Oid lobjId, text *filename)
*/
lobj = inv_open(lobjId, INV_READ);
if (lobj == NULL)
- {
elog(ERROR, "lo_export: can't open inv object %u", lobjId);
- }
/*
* open the file to be written to
diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c
index ac8b3733876..afd289d1f57 100644
--- a/src/backend/libpq/crypt.c
+++ b/src/backend/libpq/crypt.c
@@ -1,7 +1,7 @@
/*-------------------------------------------------------------------------
*
* crypt.c
- * Look into pg_shadow and check the encrypted password with
+ * Look into pg_shadow and check the encrypted password with
* the one passed in from the frontend.
*
* Modification History
@@ -9,7 +9,7 @@
* Dec 17, 1997 - Todd A. Brandys
* Orignal Version Completed.
*
- * $Id: crypt.c,v 1.16 1999/05/09 00:54:30 tgl Exp $
+ * $Id: crypt.c,v 1.17 1999/05/25 16:08:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -38,8 +38,8 @@ char *
crypt_getpwdfilename()
{
- static char *pfnam = NULL;
- int bufsize;
+ static char *pfnam = NULL;
+ int bufsize;
bufsize = strlen(DataDir) + strlen(CRYPT_PWD_FILE) + 2;
pfnam = (char *) palloc(bufsize);
@@ -54,9 +54,9 @@ char *
crypt_getpwdreloadfilename()
{
- static char *rpfnam = NULL;
- char *pwdfilename;
- int bufsize;
+ static char *rpfnam = NULL;
+ char *pwdfilename;
+ int bufsize;
pwdfilename = crypt_getpwdfilename();
bufsize = strlen(pwdfilename) + strlen(CRYPT_PWD_RELOAD_SUFX) + 1;
@@ -147,9 +147,7 @@ crypt_loadpwdfile()
{ /* free the old data only if this is a
* reload */
while (pwd_cache_count--)
- {
pfree((void *) pwd_cache[pwd_cache_count]);
- }
pfree((void *) pwd_cache);
pwd_cache = NULL;
pwd_cache_count = 0;
@@ -226,9 +224,9 @@ int
crypt_getloginfo(const char *user, char **passwd, char **valuntil)
{
- char *pwd,
- *valdate;
- void *fakeout;
+ char *pwd,
+ *valdate;
+ void *fakeout;
*passwd = NULL;
*valuntil = NULL;
@@ -236,8 +234,8 @@ crypt_getloginfo(const char *user, char **passwd, char **valuntil)
if (pwd_cache)
{
- char **pwd_entry;
- char user_search[NAMEDATALEN + 2];
+ char **pwd_entry;
+ char user_search[NAMEDATALEN + 2];
snprintf(user_search, NAMEDATALEN + 2, "%s\t", user);
fakeout = (void *) &user_search;
@@ -261,28 +259,22 @@ int
crypt_verify(Port *port, const char *user, const char *pgpass)
{
- char *passwd,
- *valuntil,
- *crypt_pwd;
- int retval = STATUS_ERROR;
- AbsoluteTime vuntil,
- current;
+ char *passwd,
+ *valuntil,
+ *crypt_pwd;
+ int retval = STATUS_ERROR;
+ AbsoluteTime vuntil,
+ current;
if (crypt_getloginfo(user, &passwd, &valuntil) == STATUS_ERROR)
- {
return STATUS_ERROR;
- }
if (passwd == NULL || *passwd == '\0')
{
if (passwd)
- {
pfree((void *) passwd);
- }
if (valuntil)
- {
pfree((void *) valuntil);
- }
return STATUS_ERROR;
}
@@ -291,38 +283,29 @@ crypt_verify(Port *port, const char *user, const char *pgpass)
* authentication method being used for this connection.
*/
- crypt_pwd =
- (port->auth_method == uaCrypt ? crypt(passwd, port->salt) : passwd);
+ crypt_pwd =
+ (port->auth_method == uaCrypt ? crypt(passwd, port->salt) : passwd);
if (!strcmp(pgpass, crypt_pwd))
{
+
/*
* check here to be sure we are not past valuntil
*/
if (!valuntil || strcmp(valuntil, "\\N") == 0)
- {
vuntil = INVALID_ABSTIME;
- }
else
- {
vuntil = nabstimein(valuntil);
- }
current = GetCurrentAbsoluteTime();
if (vuntil != INVALID_ABSTIME && vuntil < current)
- {
retval = STATUS_ERROR;
- }
else
- {
retval = STATUS_OK;
- }
}
pfree((void *) passwd);
if (valuntil)
- {
pfree((void *) valuntil);
- }
return retval;
}
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index 85bbcb890e6..dd64971c99d 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -5,7 +5,7 @@
* wherein you authenticate a user by seeing what IP address the system
* says he comes from and possibly using ident).
*
- * $Id: hba.c,v 1.42 1999/05/10 15:17:16 momjian Exp $
+ * $Id: hba.c,v 1.43 1999/05/25 16:08:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -286,7 +286,7 @@ process_hba_record(FILE *file, SockAddr *raddr, const char *user,
syntax:
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "process_hba_record: invalid syntax in pg_hba.conf file\n");
+ "process_hba_record: invalid syntax in pg_hba.conf file\n");
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
@@ -305,14 +305,15 @@ process_open_config_file(FILE *file, SockAddr *raddr, const char *user,
This function does the same thing as find_hba_entry, only with
the config file already open on stream descriptor "file".
----------------------------------------------------------------------------*/
- bool found_entry = false; /* found an applicable entry? */
- bool error = false; /* found an erroneous entry? */
- bool eof = false; /* end of hba file */
+ bool found_entry = false; /* found an applicable entry? */
+ bool error = false; /* found an erroneous entry? */
+ bool eof = false; /* end of hba file */
while (!eof && !found_entry && !error)
{
/* Process a line from the config file */
- int c = getc(file);
+ int c = getc(file);
+
if (c == EOF)
eof = true;
else
@@ -347,7 +348,7 @@ find_hba_entry(SockAddr *raddr, const char *user, const char *database,
* Read the config file and find an entry that allows connection from
* host "raddr", user "user", to database "database". If found,
* return *hba_ok_p = true and *userauth_p and *auth_arg representing
- * the contents of that entry. If there is no matching entry, we
+ * the contents of that entry. If there is no matching entry, we
* set *hba_ok_p = true, *userauth_p = uaReject.
*
* If the config file is unreadable or contains invalid syntax, we
@@ -355,15 +356,15 @@ find_hba_entry(SockAddr *raddr, const char *user, const char *database,
* and return without changing *hba_ok_p.
*
* If we find a file by the old name of the config file (pg_hba), we issue
- * an error message because it probably needs to be converted. He didn't
+ * an error message because it probably needs to be converted. He didn't
* follow directions and just installed his old hba file in the new database
* system.
*/
- int fd,
+ int fd,
bufsize;
- FILE *file; /* The config file we have to read */
- char *old_conf_file;
+ FILE *file; /* The config file we have to read */
+ char *old_conf_file;
/* The name of old config file that better not exist. */
@@ -387,14 +388,15 @@ find_hba_entry(SockAddr *raddr, const char *user, const char *database,
"A file exists by the name used for host-based authentication "
"in prior releases of Postgres (%s). The name and format of "
"the configuration file have changed, so this file should be "
- "converted.\n",
- old_conf_file);
+ "converted.\n",
+ old_conf_file);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
}
else
{
- char *conf_file; /* The name of the config file we have to read */
+ char *conf_file; /* The name of the config file we have to
+ * read */
/* put together the full pathname to the config file */
bufsize = (strlen(DataDir) + strlen(CONF_FILE) + 2) * sizeof(char);
@@ -407,17 +409,17 @@ find_hba_entry(SockAddr *raddr, const char *user, const char *database,
/* The open of the config file failed. */
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "find_hba_entry: Host-based authentication config file "
- "does not exist or permissions are not setup correctly! "
- "Unable to open file \"%s\".\n",
- conf_file);
+ "find_hba_entry: Host-based authentication config file "
+ "does not exist or permissions are not setup correctly! "
+ "Unable to open file \"%s\".\n",
+ conf_file);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
}
else
{
- process_open_config_file(file, raddr, user, database, hba_ok_p,
- userauth_p, auth_arg);
+ process_open_config_file(file, raddr, user, database, hba_ok_p,
+ userauth_p, auth_arg);
FreeFile(file);
}
pfree(conf_file);
@@ -531,16 +533,18 @@ ident(const struct in_addr remote_ip_addr, const struct in_addr local_ip_addr,
----------------------------------------------------------------------------*/
- int sock_fd, /* File descriptor for socket on which we talk to Ident */
- rc; /* Return code from a locally called function */
+ int sock_fd, /* File descriptor for socket on which we
+ * talk to Ident */
+ rc; /* Return code from a locally called
+ * function */
sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if (sock_fd == -1)
{
- snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "Failed to create socket on which to talk to Ident server. "
- "socket() returned errno = %s (%d)\n",
- strerror(errno), errno);
+ snprintf(PQerrormsg, ERROR_MSG_LENGTH,
+ "Failed to create socket on which to talk to Ident server. "
+ "socket() returned errno = %s (%d)\n",
+ strerror(errno), errno);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
}
@@ -559,66 +563,66 @@ ident(const struct in_addr remote_ip_addr, const struct in_addr local_ip_addr,
/*
* Bind to the address which the client originally contacted,
- * otherwise the ident server won't be able to match up the
- * right connection. This is necessary if the PostgreSQL
- * server is running on an IP alias.
+ * otherwise the ident server won't be able to match up the right
+ * connection. This is necessary if the PostgreSQL server is
+ * running on an IP alias.
*/
memset(&la, 0, sizeof(la));
la.sin_family = AF_INET;
la.sin_addr = local_ip_addr;
- rc = bind(sock_fd, (struct sockaddr *) &la, sizeof(la));
+ rc = bind(sock_fd, (struct sockaddr *) & la, sizeof(la));
if (rc == 0)
{
rc = connect(sock_fd,
- (struct sockaddr *) & ident_server, sizeof(ident_server));
+ (struct sockaddr *) & ident_server, sizeof(ident_server));
}
if (rc != 0)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "Unable to connect to Ident server on the host which is "
- "trying to connect to Postgres "
- "(IP address %s, Port %d). "
- "errno = %s (%d)\n",
- inet_ntoa(remote_ip_addr), IDENT_PORT, strerror(errno), errno);
+ "Unable to connect to Ident server on the host which is "
+ "trying to connect to Postgres "
+ "(IP address %s, Port %d). "
+ "errno = %s (%d)\n",
+ inet_ntoa(remote_ip_addr), IDENT_PORT, strerror(errno), errno);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
*ident_failed = true;
}
else
{
- char ident_query[80];
+ char ident_query[80];
/* The query we send to the Ident server */
snprintf(ident_query, 80, "%d,%d\n",
- ntohs(remote_port), ntohs(local_port));
+ ntohs(remote_port), ntohs(local_port));
rc = send(sock_fd, ident_query, strlen(ident_query), 0);
if (rc < 0)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "Unable to send query to Ident server on the host which is "
+ "Unable to send query to Ident server on the host which is "
"trying to connect to Postgres (Host %s, Port %d),"
- "even though we successfully connected to it. "
- "errno = %s (%d)\n",
- inet_ntoa(remote_ip_addr), IDENT_PORT, strerror(errno), errno);
+ "even though we successfully connected to it. "
+ "errno = %s (%d)\n",
+ inet_ntoa(remote_ip_addr), IDENT_PORT, strerror(errno), errno);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
*ident_failed = true;
}
else
{
- char ident_response[80 + IDENT_USERNAME_MAX];
+ char ident_response[80 + IDENT_USERNAME_MAX];
rc = recv(sock_fd, ident_response, sizeof(ident_response) - 1, 0);
if (rc < 0)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "Unable to receive response from Ident server "
- "on the host which is "
- "trying to connect to Postgres (Host %s, Port %d),"
- "even though we successfully sent our query to it. "
- "errno = %s (%d)\n",
- inet_ntoa(remote_ip_addr), IDENT_PORT,
- strerror(errno), errno);
+ "Unable to receive response from Ident server "
+ "on the host which is "
+ "trying to connect to Postgres (Host %s, Port %d),"
+ "even though we successfully sent our query to it. "
+ "errno = %s (%d)\n",
+ inet_ntoa(remote_ip_addr), IDENT_PORT,
+ strerror(errno), errno);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
*ident_failed = true;
@@ -676,8 +680,8 @@ parse_map_record(FILE *file,
return;
}
}
- snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "Incomplete line in pg_ident: %s", file_map);
+ snprintf(PQerrormsg, ERROR_MSG_LENGTH,
+ "Incomplete line in pg_ident: %s", file_map);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
}
@@ -760,29 +764,26 @@ verify_against_usermap(const char *pguser,
{
*checks_out_p = false;
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "verify_against_usermap: hba configuration file does not "
- "have the usermap field filled in in the entry that pertains "
- "to this connection. That field is essential for Ident-based "
- "authentication.\n");
+ "verify_against_usermap: hba configuration file does not "
+ "have the usermap field filled in in the entry that pertains "
+ "to this connection. That field is essential for Ident-based "
+ "authentication.\n");
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
}
else if (strcmp(usermap_name, "sameuser") == 0)
{
if (strcmp(ident_username, pguser) == 0)
- {
*checks_out_p = true;
- }
else
- {
*checks_out_p = false;
- }
}
else
{
- FILE *file; /* The map file we have to read */
- char *map_file; /* The name of the map file we have to read */
- int bufsize;
+ FILE *file; /* The map file we have to read */
+ char *map_file; /* The name of the map file we have to
+ * read */
+ int bufsize;
/* put together the full pathname to the map file */
bufsize = (strlen(DataDir) + strlen(USERMAP_FILE) + 2) * sizeof(char);
@@ -801,11 +802,11 @@ verify_against_usermap(const char *pguser,
*checks_out_p = false;
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "verify_against_usermap: usermap file for Ident-based "
- "authentication "
- "does not exist or permissions are not setup correctly! "
- "Unable to open file \"%s\".\n",
- map_file);
+ "verify_against_usermap: usermap file for Ident-based "
+ "authentication "
+ "does not exist or permissions are not setup correctly! "
+ "Unable to open file \"%s\".\n",
+ map_file);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
}
@@ -945,21 +946,21 @@ InRange(char *buf, int host)
void
GetCharSetByHost(char *TableName, int host, const char *DataDir)
{
- FILE *file;
- char buf[MAX_TOKEN],
+ FILE *file;
+ char buf[MAX_TOKEN],
BaseCharset[MAX_TOKEN],
OrigCharset[MAX_TOKEN],
DestCharset[MAX_TOKEN],
HostCharset[MAX_TOKEN],
c,
eof = false,
- *map_file;
- int key = 0,
+ *map_file;
+ int key = 0,
ChIndex = 0,
i,
bufsize;
- struct CharsetItem *ChArray[MAX_CHARSETS];
+ struct CharsetItem *ChArray[MAX_CHARSETS];
*TableName = '\0';
bufsize = (strlen(DataDir) + strlen(CHARSET_FILE) + 2) * sizeof(char);
@@ -971,9 +972,7 @@ GetCharSetByHost(char *TableName, int host, const char *DataDir)
file = AllocateFile(map_file, "rb");
#endif
if (file == NULL)
- {
return;
- }
while (!eof)
{
c = getc(file);
@@ -1033,8 +1032,8 @@ GetCharSetByHost(char *TableName, int host, const char *DataDir)
next_token(file, buf, sizeof(buf));
if (buf[0] != '\0')
{
- ChArray[ChIndex] =
- (struct CharsetItem *) palloc(sizeof(struct CharsetItem));
+ ChArray[ChIndex] =
+ (struct CharsetItem *) palloc(sizeof(struct CharsetItem));
strcpy(ChArray[ChIndex]->Orig, OrigCharset);
strcpy(ChArray[ChIndex]->Dest, DestCharset);
strcpy(ChArray[ChIndex]->Table, buf);
diff --git a/src/backend/libpq/password.c b/src/backend/libpq/password.c
index 968ba055e67..98c05d30749 100644
--- a/src/backend/libpq/password.c
+++ b/src/backend/libpq/password.c
@@ -1,7 +1,7 @@
-/*
+/*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: password.c,v 1.20 1999/01/17 06:18:26 momjian Exp $
+ * $Id: password.c,v 1.21 1999/05/25 16:09:00 momjian Exp $
*
*/
@@ -35,8 +35,8 @@ verify_password(char *auth_arg, char *user, char *password)
if (!pw_file)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "verify_password: couldn't open password file '%s'\n",
- pw_file_fullname);
+ "verify_password: couldn't open password file '%s'\n",
+ pw_file_fullname);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
@@ -80,8 +80,8 @@ verify_password(char *auth_arg, char *user, char *password)
}
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "verify_password: password mismatch for '%s'.\n",
- user);
+ "verify_password: password mismatch for '%s'.\n",
+ user);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
@@ -92,8 +92,8 @@ verify_password(char *auth_arg, char *user, char *password)
}
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "verify_password: user '%s' not found in password file.\n",
- user);
+ "verify_password: user '%s' not found in password file.\n",
+ user);
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
diff --git a/src/backend/libpq/portal.c b/src/backend/libpq/portal.c
index 05970a5cc38..6f7dca5cb5e 100644
--- a/src/backend/libpq/portal.c
+++ b/src/backend/libpq/portal.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: portal.c,v 1.21 1999/04/25 03:19:20 tgl Exp $
+ * $Id: portal.c,v 1.22 1999/05/25 16:09:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -50,7 +50,7 @@
* see utils/mmgr/portalmem.c for why. -cim 2/22/91
*
*/
-#include <stdio.h>
+#include <stdio.h>
#include <string.h>
#include <postgres.h>
@@ -71,7 +71,7 @@ in_range(char *msg, int value, int min, int max)
if (value < min || value >= max)
{
snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "FATAL: %s, %d is not in range [%d,%d)\n", msg, value, min, max);
+ "FATAL: %s, %d is not in range [%d,%d)\n", msg, value, min, max);
pqdebug("%s", PQerrormsg);
fputs(PQerrormsg, stderr);
return 0;
diff --git a/src/backend/libpq/portalbuf.c b/src/backend/libpq/portalbuf.c
index 002dbf5483d..038a0a46141 100644
--- a/src/backend/libpq/portalbuf.c
+++ b/src/backend/libpq/portalbuf.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portalbuf.c,v 1.13 1999/02/13 23:15:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portalbuf.c,v 1.14 1999/05/25 16:09:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,7 +63,7 @@ size_t portals_array_size = 0;
/* GlobalMemory portals_mmcxt = (GlobalMemory) NULL; */
/* -------------------------------
- * portals_realloc
+ * portals_realloc
* grow the size of the portals array by size
*
* also ensures that elements are initially NULL
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 7f830d9c564..e8489dce418 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -28,7 +28,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pqcomm.c,v 1.71 1999/05/21 01:25:06 tgl Exp $
+ * $Id: pqcomm.c,v 1.72 1999/05/25 16:09:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,7 +53,7 @@
*
* message-level I/O (and COPY OUT cruft):
* pq_putmessage - send a normal message (suppressed in COPY OUT mode)
- * pq_startcopyout - inform libpq that a COPY OUT transfer is beginning
+ * pq_startcopyout - inform libpq that a COPY OUT transfer is beginning
* pq_endcopyout - end a COPY OUT transfer
*
*------------------------
@@ -90,7 +90,7 @@
#define SOMAXCONN 5 /* from Linux listen(2) man page */
#endif /* SOMAXCONN */
-extern FILE * debug_port; /* in util.c */
+extern FILE *debug_port; /* in util.c */
/*
* Buffers for low-level I/O
@@ -99,11 +99,13 @@ extern FILE * debug_port; /* in util.c */
#define PQ_BUFFER_SIZE 8192
static unsigned char PqSendBuffer[PQ_BUFFER_SIZE];
-static int PqSendPointer; /* Next index to store a byte in PqSendBuffer */
+static int PqSendPointer; /* Next index to store a byte in
+ * PqSendBuffer */
static unsigned char PqRecvBuffer[PQ_BUFFER_SIZE];
-static int PqRecvPointer; /* Next index to read a byte from PqRecvBuffer */
-static int PqRecvLength; /* End of data available in PqRecvBuffer */
+static int PqRecvPointer; /* Next index to read a byte from
+ * PqRecvBuffer */
+static int PqRecvLength; /* End of data available in PqRecvBuffer */
/*
* Message status
@@ -121,7 +123,7 @@ pq_init(void)
PqSendPointer = PqRecvPointer = PqRecvLength = 0;
DoingCopyOut = false;
if (getenv("LIBPQ_DEBUG"))
- debug_port = stderr;
+ debug_port = stderr;
}
/* --------------------------------
@@ -187,8 +189,10 @@ StreamServerPort(char *hostName, short portName, int *fdP)
family;
size_t len;
int one = 1;
+
#ifdef HAVE_FCNTL_SETLK
int lock_fd;
+
#endif
family = ((hostName != NULL) ? AF_INET : AF_UNIX);
@@ -204,19 +208,20 @@ StreamServerPort(char *hostName, short portName, int *fdP)
}
#ifdef ONLY_REUSE_INET_SOCKETS
- if (family == AF_INET) {
+ if (family == AF_INET)
+ {
#endif
- if ((setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one,
- sizeof(one))) == -1)
- {
- snprintf(PQerrormsg, ERROR_MSG_LENGTH,
- "FATAL: StreamServerPort: setsockopt(SO_REUSEADDR) failed: %s\n",
- strerror(errno));
- fputs(PQerrormsg, stderr);
- pqdebug("%s", PQerrormsg);
- return STATUS_ERROR;
- }
+ if ((setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one,
+ sizeof(one))) == -1)
+ {
+ snprintf(PQerrormsg, ERROR_MSG_LENGTH,
+ "FATAL: StreamServerPort: setsockopt(SO_REUSEADDR) failed: %s\n",
+ strerror(errno));
+ fputs(PQerrormsg, stderr);
+ pqdebug("%s", PQerrormsg);
+ return STATUS_ERROR;
+ }
#ifdef ONLY_REUSE_INET_SOCKETS
}
@@ -240,9 +245,10 @@ StreamServerPort(char *hostName, short portName, int *fdP)
if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | O_BINARY, 0666)) >= 0)
#endif
{
- struct flock lck;
-
- lck.l_whence = SEEK_SET; lck.l_start = lck.l_len = 0;
+ struct flock lck;
+
+ lck.l_whence = SEEK_SET;
+ lck.l_start = lck.l_len = 0;
lck.l_type = F_WRLCK;
if (fcntl(lock_fd, F_SETLK, &lck) == 0)
{
@@ -253,7 +259,7 @@ StreamServerPort(char *hostName, short portName, int *fdP)
TPRINTF(TRACE_VERBOSE, "flock failed for %s", sock_path);
close(lock_fd);
}
-#endif /* HAVE_FCNTL_SETLK */
+#endif /* HAVE_FCNTL_SETLK */
}
else
{
@@ -277,9 +283,7 @@ StreamServerPort(char *hostName, short portName, int *fdP)
sock_path);
}
else
- {
strcat(PQerrormsg, "\tIf not, wait a few seconds and retry.\n");
- }
fputs(PQerrormsg, stderr);
pqdebug("%s", PQerrormsg);
return STATUS_ERROR;
@@ -300,14 +304,15 @@ StreamServerPort(char *hostName, short portName, int *fdP)
if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | O_BINARY, 0666)) >= 0)
#endif
{
- struct flock lck;
-
- lck.l_whence = SEEK_SET; lck.l_start = lck.l_len = 0;
+ struct flock lck;
+
+ lck.l_whence = SEEK_SET;
+ lck.l_start = lck.l_len = 0;
lck.l_type = F_WRLCK;
if (fcntl(lock_fd, F_SETLK, &lck) != 0)
TPRINTF(TRACE_VERBOSE, "flock error for %s", sock_path);
}
-#endif /* HAVE_FCNTL_SETLK */
+#endif /* HAVE_FCNTL_SETLK */
}
listen(fd, SOMAXCONN);
@@ -339,7 +344,7 @@ StreamServerPort(char *hostName, short portName, int *fdP)
int
StreamConnection(int server_fd, Port *port)
{
- SOCKET_SIZE_TYPE addrlen;
+ SOCKET_SIZE_TYPE addrlen;
/* accept connection (and fill in the client (remote) address) */
addrlen = sizeof(port->raddr);
@@ -419,8 +424,8 @@ pq_recvbuf(void)
if (PqRecvLength > PqRecvPointer)
{
/* still some unread data, left-justify it in the buffer */
- memmove(PqRecvBuffer, PqRecvBuffer+PqRecvPointer,
- PqRecvLength-PqRecvPointer);
+ memmove(PqRecvBuffer, PqRecvBuffer + PqRecvPointer,
+ PqRecvLength - PqRecvPointer);
PqRecvLength -= PqRecvPointer;
PqRecvPointer = 0;
}
@@ -431,16 +436,19 @@ pq_recvbuf(void)
/* Can fill buffer from PqRecvLength and upwards */
for (;;)
{
- int r = recv(MyProcPort->sock, PqRecvBuffer + PqRecvLength,
- PQ_BUFFER_SIZE - PqRecvLength, 0);
+ int r = recv(MyProcPort->sock, PqRecvBuffer + PqRecvLength,
+ PQ_BUFFER_SIZE - PqRecvLength, 0);
+
if (r < 0)
{
if (errno == EINTR)
continue; /* Ok if interrupted */
- /* We would like to use elog() here, but dare not because elog
- * tries to write to the client, which will cause problems
- * if we have a hard communications failure ...
- * So just write the message to the postmaster log.
+
+ /*
+ * We would like to use elog() here, but dare not because elog
+ * tries to write to the client, which will cause problems if
+ * we have a hard communications failure ... So just write the
+ * message to the postmaster log.
*/
fprintf(stderr, "pq_recvbuf: recv() failed: %s\n",
strerror(errno));
@@ -499,7 +507,7 @@ pq_peekbyte(void)
int
pq_getbytes(char *s, size_t len)
{
- size_t amount;
+ size_t amount;
while (len > 0)
{
@@ -539,8 +547,8 @@ pq_getstring(char *s, size_t len)
int c;
/*
- * Keep on reading until we get the terminating '\0',
- * discarding any bytes we don't have room for.
+ * Keep on reading until we get the terminating '\0', discarding any
+ * bytes we don't have room for.
*/
while ((c = pq_getbyte()) != EOF && c != '\0')
@@ -570,7 +578,7 @@ pq_getstring(char *s, size_t len)
int
pq_putbytes(const char *s, size_t len)
{
- size_t amount;
+ size_t amount;
while (len > 0)
{
@@ -602,19 +610,24 @@ pq_flush(void)
while (bufptr < bufend)
{
- int r = send(MyProcPort->sock, bufptr, bufend - bufptr, 0);
+ int r = send(MyProcPort->sock, bufptr, bufend - bufptr, 0);
+
if (r <= 0)
{
if (errno == EINTR)
continue; /* Ok if we were interrupted */
- /* We would like to use elog() here, but cannot because elog
+
+ /*
+ * We would like to use elog() here, but cannot because elog
* tries to write to the client, which would cause a recursive
* flush attempt! So just write it out to the postmaster log.
*/
fprintf(stderr, "pq_flush: send() failed: %s\n",
strerror(errno));
- /* We drop the buffered data anyway so that processing
- * can continue, even though we'll probably quit soon.
+
+ /*
+ * We drop the buffered data anyway so that processing can
+ * continue, even though we'll probably quit soon.
*/
PqSendPointer = 0;
return EOF;
@@ -661,7 +674,7 @@ pq_putmessage(char msgtype, const char *s, size_t len)
}
/* --------------------------------
- * pq_startcopyout - inform libpq that a COPY OUT transfer is beginning
+ * pq_startcopyout - inform libpq that a COPY OUT transfer is beginning
* --------------------------------
*/
void
@@ -682,7 +695,7 @@ pq_startcopyout(void)
void
pq_endcopyout(bool errorAbort)
{
- if (! DoingCopyOut)
+ if (!DoingCopyOut)
return;
if (errorAbort)
pq_putbytes("\n\n\\.\n", 5);
diff --git a/src/backend/libpq/pqformat.c b/src/backend/libpq/pqformat.c
index 45b4259d8b9..529b3115bdd 100644
--- a/src/backend/libpq/pqformat.c
+++ b/src/backend/libpq/pqformat.c
@@ -15,14 +15,14 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pqformat.c,v 1.3 1999/04/25 21:50:56 tgl Exp $
+ * $Id: pqformat.c,v 1.4 1999/05/25 16:09:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/*
* INTERFACE ROUTINES
* Message assembly and output:
- * pq_beginmessage - initialize StringInfo buffer
+ * pq_beginmessage - initialize StringInfo buffer
* pq_sendbyte - append a raw byte to a StringInfo buffer
* pq_sendint - append a binary integer to a StringInfo buffer
* pq_sendbytes - append raw data to a StringInfo buffer
@@ -126,6 +126,7 @@ pq_sendcountedtext(StringInfo buf, const char *str, int slen)
{
#ifdef MULTIBYTE
const char *p;
+
p = (const char *) pg_server_to_client((unsigned char *) str, slen);
if (p != str) /* actual conversion has been done? */
{
@@ -147,9 +148,11 @@ pq_sendcountedtext(StringInfo buf, const char *str, int slen)
void
pq_sendstring(StringInfo buf, const char *str)
{
- int slen = strlen(str);
+ int slen = strlen(str);
+
#ifdef MULTIBYTE
const char *p;
+
p = (const char *) pg_server_to_client((unsigned char *) str, slen);
if (p != str) /* actual conversion has been done? */
{
@@ -157,7 +160,7 @@ pq_sendstring(StringInfo buf, const char *str)
slen = strlen(str);
}
#endif
- appendBinaryStringInfo(buf, str, slen+1);
+ appendBinaryStringInfo(buf, str, slen + 1);
}
/* --------------------------------
@@ -167,9 +170,9 @@ pq_sendstring(StringInfo buf, const char *str)
void
pq_sendint(StringInfo buf, int i, int b)
{
- unsigned char n8;
- uint16 n16;
- uint32 n32;
+ unsigned char n8;
+ uint16 n16;
+ uint32 n32;
switch (b)
{
@@ -225,9 +228,11 @@ pq_endmessage(StringInfo buf)
int
pq_puttextmessage(char msgtype, const char *str)
{
- int slen = strlen(str);
+ int slen = strlen(str);
+
#ifdef MULTIBYTE
const char *p;
+
p = (const char *) pg_server_to_client((unsigned char *) str, slen);
if (p != str) /* actual conversion has been done? */
{
@@ -235,7 +240,7 @@ pq_puttextmessage(char msgtype, const char *str)
slen = strlen(str);
}
#endif
- return pq_putmessage(msgtype, str, slen+1);
+ return pq_putmessage(msgtype, str, slen + 1);
}
/* --------------------------------
@@ -247,10 +252,10 @@ pq_puttextmessage(char msgtype, const char *str)
int
pq_getint(int *result, int b)
{
- int status;
- unsigned char n8;
- uint16 n16;
- uint32 n32;
+ int status;
+ unsigned char n8;
+ uint16 n16;
+ uint32 n32;
switch (b)
{
@@ -269,8 +274,10 @@ pq_getint(int *result, int b)
ntoh_l(n32) : ntohl(n32));
break;
default:
- /* if we elog(ERROR) here, we will lose sync with the frontend,
- * so just complain to postmaster log instead...
+
+ /*
+ * if we elog(ERROR) here, we will lose sync with the
+ * frontend, so just complain to postmaster log instead...
*/
fprintf(stderr, "pq_getint: unsupported size %d\n", b);
status = EOF;
@@ -293,23 +300,26 @@ int
pq_getstr(char *s, int maxlen)
{
int c;
+
#ifdef MULTIBYTE
char *p;
+
#endif
c = pq_getstring(s, maxlen);
#ifdef MULTIBYTE
- p = (char*) pg_client_to_server((unsigned char *) s, strlen(s));
+ p = (char *) pg_client_to_server((unsigned char *) s, strlen(s));
if (p != s) /* actual conversion has been done? */
{
- int newlen = strlen(p);
+ int newlen = strlen(p);
+
if (newlen < maxlen)
strcpy(s, p);
else
{
strncpy(s, p, maxlen);
- s[maxlen-1] = '\0';
+ s[maxlen - 1] = '\0';
}
}
#endif
diff --git a/src/backend/libpq/util.c b/src/backend/libpq/util.c
index ce35c2571c9..50c2846815d 100644
--- a/src/backend/libpq/util.c
+++ b/src/backend/libpq/util.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: util.c,v 1.8 1999/02/13 23:15:49 momjian Exp $
+ * $Id: util.c,v 1.9 1999/05/25 16:09:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,7 +17,7 @@
* PQuntrace - turn off pqdebug() tracing
*/
-#include <stdio.h>
+#include <stdio.h>
#include <string.h>
#include <postgres.h>
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 87919b4dbab..723e70b1e0c 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.80 1999/05/18 21:34:27 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.81 1999/05/25 16:09:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -92,7 +92,7 @@ CopyPlanFields(Plan *from, Plan *newnode)
newnode->chgParam = listCopy(from->chgParam);
Node_Copy(from, newnode, initPlan);
if (from->subPlan != NULL)
- newnode->subPlan = SS_pull_subplan((Node*) newnode->qual);
+ newnode->subPlan = SS_pull_subplan((Node *) newnode->qual);
else
newnode->subPlan = NULL;
newnode->nParamExec = from->nParamExec;
@@ -138,10 +138,12 @@ _copyResult(Result *from)
*/
Node_Copy(from, newnode, resconstantqual);
- /* We must add subplans in resconstantqual to the new plan's subPlan list
+ /*
+ * We must add subplans in resconstantqual to the new plan's subPlan
+ * list
*/
newnode->plan.subPlan = nconc(newnode->plan.subPlan,
- SS_pull_subplan(newnode->resconstantqual));
+ SS_pull_subplan(newnode->resconstantqual));
return newnode;
}
@@ -369,7 +371,7 @@ _copyHashJoin(HashJoin *from)
* ----------------
*/
static void
-CopyNonameFields(Noname *from, Noname *newnode)
+CopyNonameFields(Noname * from, Noname * newnode)
{
newnode->nonameid = from->nonameid;
newnode->keycount = from->keycount;
@@ -382,7 +384,7 @@ CopyNonameFields(Noname *from, Noname *newnode)
* ----------------
*/
static Noname *
-_copyNoname(Noname *from)
+_copyNoname(Noname * from)
{
Noname *newnode = makeNode(Noname);
@@ -466,9 +468,10 @@ _copyAgg(Agg *from)
CopyPlanFields((Plan *) from, (Plan *) newnode);
- /* Cannot copy agg list; it must be rebuilt to point to subnodes of
+ /*
+ * Cannot copy agg list; it must be rebuilt to point to subnodes of
* new node.
- */
+ */
set_agg_tlist_references(newnode);
return newnode;
@@ -859,7 +862,7 @@ _copyFunc(Func *from)
* ----------------
*/
static Aggref *
-_copyAggref(Aggref *from)
+_copyAggref(Aggref * from)
{
Aggref *newnode = makeNode(Aggref);
@@ -904,7 +907,7 @@ _copySubLink(SubLink *from)
* ----------------
*/
static CaseExpr *
-_copyCaseExpr(CaseExpr *from)
+_copyCaseExpr(CaseExpr * from)
{
CaseExpr *newnode = makeNode(CaseExpr);
@@ -926,7 +929,7 @@ _copyCaseExpr(CaseExpr *from)
* ----------------
*/
static CaseWhen *
-_copyCaseWhen(CaseWhen *from)
+_copyCaseWhen(CaseWhen * from)
{
CaseWhen *newnode = makeNode(CaseWhen);
@@ -1170,7 +1173,7 @@ _copyIndexPath(IndexPath *from)
* ----------------
*/
static void
-CopyNestPathFields(NestPath *from, NestPath *newnode)
+CopyNestPathFields(NestPath * from, NestPath * newnode)
{
Node_Copy(from, newnode, pathinfo);
Node_Copy(from, newnode, outerjoinpath);
@@ -1182,7 +1185,7 @@ CopyNestPathFields(NestPath *from, NestPath *newnode)
* ----------------
*/
static NestPath *
-_copyNestPath(NestPath *from)
+_copyNestPath(NestPath * from)
{
NestPath *newnode = makeNode(NestPath);
@@ -1316,7 +1319,7 @@ _copyMergeOrder(MergeOrder *from)
* ----------------
*/
static RestrictInfo *
-_copyRestrictInfo(RestrictInfo *from)
+_copyRestrictInfo(RestrictInfo * from)
{
RestrictInfo *newnode = makeNode(RestrictInfo);
@@ -1371,9 +1374,9 @@ _copyJoinMethod(JoinMethod *from)
* ----------------
*/
static HashInfo *
-_copyHashInfo(HashInfo *from)
+_copyHashInfo(HashInfo * from)
{
- HashInfo *newnode = makeNode(HashInfo);
+ HashInfo *newnode = makeNode(HashInfo);
/* ----------------
* copy remainder of node
@@ -1390,9 +1393,9 @@ _copyHashInfo(HashInfo *from)
* ----------------
*/
static MergeInfo *
-_copyMergeInfo(MergeInfo *from)
+_copyMergeInfo(MergeInfo * from)
{
- MergeInfo *newnode = makeNode(MergeInfo);
+ MergeInfo *newnode = makeNode(MergeInfo);
/* ----------------
* copy remainder of node
@@ -1409,7 +1412,7 @@ _copyMergeInfo(MergeInfo *from)
* ----------------
*/
static JoinInfo *
-_copyJoinInfo(JoinInfo *from)
+_copyJoinInfo(JoinInfo * from)
{
JoinInfo *newnode = makeNode(JoinInfo);
@@ -1493,9 +1496,9 @@ _copyRangeTblEntry(RangeTblEntry *from)
}
static RowMark *
-_copyRowMark(RowMark *from)
+_copyRowMark(RowMark * from)
{
- RowMark *newnode = makeNode(RowMark);
+ RowMark *newnode = makeNode(RowMark);
newnode->rti = from->rti;
newnode->info = from->info;
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 45e752f5028..7f86933496e 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.36 1999/05/12 15:01:33 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.37 1999/05/25 16:09:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -283,7 +283,7 @@ _equalFunc(Func *a, Func *b)
* RestrictInfo is a subclass of Node.
*/
static bool
-_equalRestrictInfo(RestrictInfo *a, RestrictInfo *b)
+_equalRestrictInfo(RestrictInfo * a, RestrictInfo * b)
{
Assert(IsA(a, RestrictInfo));
Assert(IsA(b, RestrictInfo));
@@ -307,7 +307,7 @@ _equalRestrictInfo(RestrictInfo *a, RestrictInfo *b)
* RelOptInfo is a subclass of Node.
*/
static bool
-_equalRelOptInfo(RelOptInfo *a, RelOptInfo *b)
+_equalRelOptInfo(RelOptInfo * a, RelOptInfo * b)
{
Assert(IsA(a, RelOptInfo));
Assert(IsA(b, RelOptInfo));
@@ -392,7 +392,7 @@ _equalIndexPath(IndexPath *a, IndexPath *b)
}
static bool
-_equalNestPath(NestPath *a, NestPath *b)
+_equalNestPath(NestPath * a, NestPath * b)
{
Assert(IsA_JoinPath(a));
Assert(IsA_JoinPath(b));
@@ -477,7 +477,7 @@ _equalMergeOrder(MergeOrder *a, MergeOrder *b)
}
static bool
-_equalHashInfo(HashInfo *a, HashInfo *b)
+_equalHashInfo(HashInfo * a, HashInfo * b)
{
Assert(IsA(a, HashInfo));
Assert(IsA(b, HashInfo));
@@ -524,7 +524,7 @@ _equalSubPlan(SubPlan *a, SubPlan *b)
}
static bool
-_equalJoinInfo(JoinInfo *a, JoinInfo *b)
+_equalJoinInfo(JoinInfo * a, JoinInfo * b)
{
Assert(IsA(a, JoinInfo));
Assert(IsA(b, JoinInfo));
@@ -574,10 +574,13 @@ _equalQuery(Query *a, Query *b)
return false;
if (a->resultRelation != b->resultRelation)
return false;
- if (a->into && b->into) {
+ if (a->into && b->into)
+ {
if (strcmp(a->into, b->into) != 0)
return false;
- } else {
+ }
+ else
+ {
if (a->into != b->into)
return false;
}
@@ -593,10 +596,13 @@ _equalQuery(Query *a, Query *b)
return false;
if (a->hasSubLinks != b->hasSubLinks)
return false;
- if (a->uniqueFlag && b->uniqueFlag) {
+ if (a->uniqueFlag && b->uniqueFlag)
+ {
if (strcmp(a->uniqueFlag, b->uniqueFlag) != 0)
return false;
- } else {
+ }
+ else
+ {
if (a->uniqueFlag != b->uniqueFlag)
return false;
}
@@ -623,10 +629,10 @@ _equalQuery(Query *a, Query *b)
if (!equal(a->limitCount, b->limitCount))
return false;
- /* We do not check the internal-to-the-planner fields
- * base_rel_list and join_rel_list. They might not be
- * set yet, and in any case they should be derivable
- * from the other fields.
+ /*
+ * We do not check the internal-to-the-planner fields base_rel_list
+ * and join_rel_list. They might not be set yet, and in any case they
+ * should be derivable from the other fields.
*/
return true;
}
@@ -634,17 +640,23 @@ _equalQuery(Query *a, Query *b)
static bool
_equalRangeTblEntry(RangeTblEntry *a, RangeTblEntry *b)
{
- if (a->relname && b->relname) {
+ if (a->relname && b->relname)
+ {
if (strcmp(a->relname, b->relname) != 0)
return false;
- } else {
+ }
+ else
+ {
if (a->relname != b->relname)
return false;
}
- if (a->refname && b->refname) {
+ if (a->refname && b->refname)
+ {
if (strcmp(a->refname, b->refname) != 0)
return false;
- } else {
+ }
+ else
+ {
if (a->refname != b->refname)
return false;
}
diff --git a/src/backend/nodes/freefuncs.c b/src/backend/nodes/freefuncs.c
index 3c95dcbe225..71bf12bcde6 100644
--- a/src/backend/nodes/freefuncs.c
+++ b/src/backend/nodes/freefuncs.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.16 1999/05/12 15:01:33 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.17 1999/05/25 16:09:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -297,12 +297,12 @@ _freeHashJoin(HashJoin *node)
/* ----------------
* FreeNonameFields
*
- * This function frees the fields of the Noname node. It is used by
+ * This function frees the fields of the Noname node. It is used by
* all the free functions for classes which inherit node Noname.
* ----------------
*/
static void
-FreeNonameFields(Noname *node)
+FreeNonameFields(Noname * node)
{
return;
}
@@ -313,7 +313,7 @@ FreeNonameFields(Noname *node)
* ----------------
*/
static void
-_freeNoname(Noname *node)
+_freeNoname(Noname * node)
{
/* ----------------
* free node superclass fields
@@ -562,7 +562,7 @@ _freeConst(Const *node)
* ----------------
*/
if (!node->constbyval)
- pfree((void *)node->constvalue);
+ pfree((void *) node->constvalue);
pfree(node);
}
@@ -609,7 +609,7 @@ _freeFunc(Func *node)
* ----------------
*/
static void
-_freeAggref(Aggref *node)
+_freeAggref(Aggref * node)
{
/* ----------------
* free remainder of node
@@ -644,7 +644,7 @@ _freeSubLink(SubLink *node)
* ----------------
*/
static void
-_freeCaseExpr(CaseExpr *node)
+_freeCaseExpr(CaseExpr * node)
{
/* ----------------
* free remainder of node
@@ -662,7 +662,7 @@ _freeCaseExpr(CaseExpr *node)
* ----------------
*/
static void
-_freeCaseWhen(CaseWhen *node)
+_freeCaseWhen(CaseWhen * node)
{
/* ----------------
* free remainder of node
@@ -709,7 +709,7 @@ _freeArrayRef(ArrayRef *node)
* ----------------
*/
static void
-_freeRelOptInfo(RelOptInfo *node)
+_freeRelOptInfo(RelOptInfo * node)
{
/* ----------------
* free remainder of node
@@ -757,8 +757,8 @@ FreePathFields(Path *node)
else
freeObject(node->pathorder->ord.merge);
- pfree(node->pathorder); /* is it an object, but we don't have
- separate free for it */
+ pfree(node->pathorder); /* is it an object, but we don't have
+ * separate free for it */
freeObject(node->pathkeys);
@@ -812,7 +812,7 @@ _freeIndexPath(IndexPath *node)
* ----------------
*/
static void
-FreeNestPathFields(NestPath *node)
+FreeNestPathFields(NestPath * node)
{
freeObject(node->pathinfo);
freeObject(node->outerjoinpath);
@@ -824,7 +824,7 @@ FreeNestPathFields(NestPath *node)
* ----------------
*/
static void
-_freeNestPath(NestPath *node)
+_freeNestPath(NestPath * node)
{
/* ----------------
* free the node superclass fields
@@ -933,7 +933,7 @@ _freeMergeOrder(MergeOrder *node)
* ----------------
*/
static void
-_freeRestrictInfo(RestrictInfo *node)
+_freeRestrictInfo(RestrictInfo * node)
{
/* ----------------
* free remainder of node
@@ -950,7 +950,7 @@ _freeRestrictInfo(RestrictInfo *node)
/* ----------------
* FreeJoinMethodFields
*
- * This function frees the fields of the JoinMethod node. It is used by
+ * This function frees the fields of the JoinMethod node. It is used by
* all the free functions for classes which inherit node JoinMethod.
* ----------------
*/
@@ -979,7 +979,7 @@ _freeJoinMethod(JoinMethod *node)
* ----------------
*/
static void
-_freeHashInfo(HashInfo *node)
+_freeHashInfo(HashInfo * node)
{
/* ----------------
* free remainder of node
@@ -995,7 +995,7 @@ _freeHashInfo(HashInfo *node)
* ----------------
*/
static void
-_freeMergeInfo(MergeInfo *node)
+_freeMergeInfo(MergeInfo * node)
{
/* ----------------
* free remainder of node
@@ -1012,7 +1012,7 @@ _freeMergeInfo(MergeInfo *node)
* ----------------
*/
static void
-_freeJoinInfo(JoinInfo *node)
+_freeJoinInfo(JoinInfo * node)
{
/* ----------------
* free remainder of node
@@ -1066,7 +1066,7 @@ _freeRangeTblEntry(RangeTblEntry *node)
}
static void
-_freeRowMark(RowMark *node)
+_freeRowMark(RowMark * node)
{
pfree(node);
}
@@ -1142,7 +1142,7 @@ _freeValue(Value *node)
{
switch (node->type)
{
- case T_String:
+ case T_String:
pfree(node->val.str);
break;
default:
@@ -1165,6 +1165,7 @@ freeObject(void *node)
switch (nodeTag(node))
{
+
/*
* PLAN NODES
*/
diff --git a/src/backend/nodes/list.c b/src/backend/nodes/list.c
index e148e66669d..48c15f1802c 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.20 1999/02/22 17:29:57 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.21 1999/05/25 16:09:08 momjian Exp $
*
* NOTES
* XXX a few of the following functions are duplicated to handle
@@ -96,7 +96,7 @@ lconsi(int datum, List *list)
* lappend
*
* Add obj to the end of list, or make a new list if 'list' is NIL
- *
+ *
* MORE EXPENSIVE THAN lcons
*/
List *
@@ -161,6 +161,7 @@ nreverse(List *list)
lnext(list) = lnext(rlist);
return list;
}
+
#endif
/*
@@ -307,6 +308,7 @@ append(List *l1, List *l2)
lnext(p) = newlist2;
return newlist;
}
+
#endif
#ifdef NOT_USED
@@ -331,6 +333,7 @@ intAppend(List *l1, List *l2)
lnext(p) = newlist2;
return newlist;
}
+
#endif
/*
@@ -435,7 +438,7 @@ member(void *l1, List *l2)
foreach(i, l2)
if (equal((Node *) l1, (Node *) lfirst(i)))
- return true;
+ return true;
return false;
}
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index f3dec72128b..43fa22e0451 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: outfuncs.c,v 1.84 1999/05/19 16:46:11 momjian Exp $
+ * $Id: outfuncs.c,v 1.85 1999/05/25 16:09:09 momjian Exp $
*
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
@@ -54,24 +54,22 @@ static void _outNode(StringInfo str, void *obj);
static void
_outIntList(StringInfo str, List *list)
{
- List *l;
+ List *l;
appendStringInfo(str, "(");
foreach(l, list)
- {
appendStringInfo(str, " %d ", lfirsti(l));
- }
appendStringInfo(str, ")");
}
static void
_outCreateStmt(StringInfo str, CreateStmt *node)
{
- appendStringInfo(str, " CREATE :relname %s ",
- stringStringInfo(node->relname));
+ appendStringInfo(str, " CREATE :relname %s ",
+ stringStringInfo(node->relname));
appendStringInfo(str, " :istemp %s ",
- node->istemp ? "true" : "false");
+ node->istemp ? "true" : "false");
appendStringInfo(str, " :columns ");
_outNode(str, node->tableElts);
@@ -86,11 +84,11 @@ _outCreateStmt(StringInfo str, CreateStmt *node)
static void
_outIndexStmt(StringInfo str, IndexStmt *node)
{
- appendStringInfo(str,
- " INDEX :idxname %s :relname %s :accessMethod %s :indexParams ",
- stringStringInfo(node->idxname),
- stringStringInfo(node->relname),
- stringStringInfo(node->accessMethod));
+ appendStringInfo(str,
+ " INDEX :idxname %s :relname %s :accessMethod %s :indexParams ",
+ stringStringInfo(node->idxname),
+ stringStringInfo(node->relname),
+ stringStringInfo(node->accessMethod));
_outNode(str, node->indexParams);
appendStringInfo(str, " :withClause ");
@@ -103,8 +101,8 @@ _outIndexStmt(StringInfo str, IndexStmt *node)
_outNode(str, node->rangetable);
appendStringInfo(str, " :lossy %s :unique %s ",
- node->lossy ? "true" : "false",
- node->unique ? "true" : "false");
+ node->lossy ? "true" : "false",
+ node->unique ? "true" : "false");
}
static void
@@ -125,24 +123,24 @@ static void
_outColumnDef(StringInfo str, ColumnDef *node)
{
appendStringInfo(str, " COLUMNDEF :colname %s :typename ",
- stringStringInfo(node->colname));
+ stringStringInfo(node->colname));
_outNode(str, node->typename);
appendStringInfo(str, " :is_not_null %s :defval %s :constraints ",
- node->is_not_null ? "true" : "false",
- stringStringInfo(node->defval));
+ node->is_not_null ? "true" : "false",
+ stringStringInfo(node->defval));
_outNode(str, node->constraints);
}
static void
_outTypeName(StringInfo str, TypeName *node)
{
- appendStringInfo(str,
- " TYPENAME :name %s :timezone %s :setof %s typmod %d :arrayBounds ",
- stringStringInfo(node->name),
- node->timezone ? "true" : "false",
- node->setof ? "true" : "false",
- node->typmod);
+ appendStringInfo(str,
+ " TYPENAME :name %s :timezone %s :setof %s typmod %d :arrayBounds ",
+ stringStringInfo(node->name),
+ node->timezone ? "true" : "false",
+ node->setof ? "true" : "false",
+ node->typmod);
appendStringInfo(str, " :arrayBounds ");
_outNode(str, node->arrayBounds);
@@ -152,7 +150,7 @@ static void
_outIndexElem(StringInfo str, IndexElem *node)
{
appendStringInfo(str, " INDEXELEM :name %s :args ",
- stringStringInfo(node->name));
+ stringStringInfo(node->name));
_outNode(str, node->args);
appendStringInfo(str, " :class %s :typename ", stringStringInfo(node->class));
@@ -171,20 +169,20 @@ _outQuery(StringInfo str, Query *node)
{
case T_CreateStmt:
appendStringInfo(str, " :create %s ",
- stringStringInfo(((CreateStmt *) (node->utilityStmt))->relname));
+ stringStringInfo(((CreateStmt *) (node->utilityStmt))->relname));
_outNode(str, node->utilityStmt);
break;
case T_IndexStmt:
appendStringInfo(str, " :index %s on %s ",
- stringStringInfo(((IndexStmt *) (node->utilityStmt))->idxname),
- stringStringInfo(((IndexStmt *) (node->utilityStmt))->relname));
+ stringStringInfo(((IndexStmt *) (node->utilityStmt))->idxname),
+ stringStringInfo(((IndexStmt *) (node->utilityStmt))->relname));
_outNode(str, node->utilityStmt);
break;
case T_NotifyStmt:
appendStringInfo(str, " :utility %s ",
- stringStringInfo(((NotifyStmt *) (node->utilityStmt))->relname));
+ stringStringInfo(((NotifyStmt *) (node->utilityStmt))->relname));
break;
default:
@@ -192,21 +190,19 @@ _outQuery(StringInfo str, Query *node)
}
}
else
- {
appendStringInfo(str, " :utility <>");
- }
- appendStringInfo(str,
- " :resultRelation %u :into %s :isPortal %s :isBinary %s :isTemp %s :unionall %s ",
- node->resultRelation,
- stringStringInfo(node->into),
- node->isPortal ? "true" : "false",
- node->isBinary ? "true" : "false",
- node->isTemp ? "true" : "false",
- node->unionall ? "true" : "false");
-
- appendStringInfo(str, " :unique %s :sortClause ",
- stringStringInfo(node->uniqueFlag));
+ appendStringInfo(str,
+ " :resultRelation %u :into %s :isPortal %s :isBinary %s :isTemp %s :unionall %s ",
+ node->resultRelation,
+ stringStringInfo(node->into),
+ node->isPortal ? "true" : "false",
+ node->isBinary ? "true" : "false",
+ node->isTemp ? "true" : "false",
+ node->unionall ? "true" : "false");
+
+ appendStringInfo(str, " :unique %s :sortClause ",
+ stringStringInfo(node->uniqueFlag));
_outNode(str, node->sortClause);
appendStringInfo(str, " :rtable ");
@@ -225,8 +221,8 @@ _outQuery(StringInfo str, Query *node)
_outNode(str, node->havingQual);
appendStringInfo(str, " :hasAggs %s :hasSubLinks %s :unionClause ",
- node->hasAggs ? "true" : "false",
- node->hasSubLinks ? "true" : "false");
+ node->hasAggs ? "true" : "false",
+ node->hasSubLinks ? "true" : "false");
_outNode(str, node->unionClause);
appendStringInfo(str, " :intersectClause ");
@@ -255,9 +251,9 @@ _outSortClause(StringInfo str, SortClause *node)
static void
_outGroupClause(StringInfo str, GroupClause *node)
{
- appendStringInfo(str, " GROUPCLAUSE :grpOpoid %u :tleGroupref %d",
- node->grpOpoid,
- node->tleGroupref);
+ appendStringInfo(str, " GROUPCLAUSE :grpOpoid %u :tleGroupref %d",
+ node->grpOpoid,
+ node->tleGroupref);
}
/*
@@ -266,12 +262,12 @@ _outGroupClause(StringInfo str, GroupClause *node)
static void
_outPlanInfo(StringInfo str, Plan *node)
{
- appendStringInfo(str,
- ":cost %g :size %d :width %d :state %s :qptargetlist ",
- node->cost,
- node->plan_size,
- node->plan_width,
- node->state ? "not-NULL" : "<>");
+ appendStringInfo(str,
+ ":cost %g :size %d :width %d :state %s :qptargetlist ",
+ node->cost,
+ node->plan_size,
+ node->plan_width,
+ node->state ? "not-NULL" : "<>");
_outNode(str, node->targetlist);
appendStringInfo(str, " :qpqual ");
@@ -331,9 +327,9 @@ _outAppend(StringInfo str, Append *node)
appendStringInfo(str, " :unionrtables ");
_outNode(str, node->unionrtables);
- appendStringInfo(str,
- " :inheritrelid %u :inheritrtable ",
- node->inheritrelid);
+ appendStringInfo(str,
+ " :inheritrelid %u :inheritrtable ",
+ node->inheritrelid);
_outNode(str, node->inheritrtable);
}
@@ -384,13 +380,13 @@ _outHashJoin(StringInfo str, HashJoin *node)
appendStringInfo(str, " :hashclauses ");
_outNode(str, node->hashclauses);
- appendStringInfo(str,
- " :hashjoinop %u ",
- node->hashjoinop);
+ appendStringInfo(str,
+ " :hashjoinop %u ",
+ node->hashjoinop);
- appendStringInfo(str,
- " :hashdone %d ",
- node->hashdone);
+ appendStringInfo(str,
+ " :hashdone %d ",
+ node->hashdone);
}
static void
@@ -460,14 +456,14 @@ _outIndexScan(StringInfo str, IndexScan *node)
* Noname is a subclass of Plan
*/
static void
-_outNoname(StringInfo str, Noname *node)
+_outNoname(StringInfo str, Noname * node)
{
appendStringInfo(str, " NONAME ");
_outPlanInfo(str, (Plan *) node);
- appendStringInfo(str, " :nonameid %u :keycount %d ",
- node->nonameid,
- node->keycount);
+ appendStringInfo(str, " :nonameid %u :keycount %d ",
+ node->nonameid,
+ node->keycount);
}
/*
@@ -480,8 +476,8 @@ _outSort(StringInfo str, Sort *node)
_outPlanInfo(str, (Plan *) node);
appendStringInfo(str, " :nonameid %u :keycount %d ",
- node->nonameid,
- node->keycount);
+ node->nonameid,
+ node->keycount);
}
static void
@@ -503,8 +499,8 @@ _outGroup(StringInfo str, Group *node)
/* the actual Group fields */
appendStringInfo(str, " :numCols %d :tuplePerGroup %s ",
- node->numCols,
- node->tuplePerGroup ? "true" : "false");
+ node->numCols,
+ node->tuplePerGroup ? "true" : "false");
}
/*
@@ -517,8 +513,8 @@ _outUnique(StringInfo str, Unique *node)
_outPlanInfo(str, (Plan *) node);
appendStringInfo(str, " :nonameid %u :keycount %d ",
- node->nonameid,
- node->keycount);
+ node->nonameid,
+ node->keycount);
}
@@ -548,18 +544,18 @@ static void
_outResdom(StringInfo str, Resdom *node)
{
appendStringInfo(str, " RESDOM :resno %d :restype %u :restypmod %d",
- node->resno,
- node->restype,
- node->restypmod);
+ node->resno,
+ node->restype,
+ node->restypmod);
appendStringInfo(str, " :resname \"%s\" :reskey %d :reskeyop %u",
- stringStringInfo(node->resname),
- node->reskey,
- node->reskeyop);
+ stringStringInfo(node->resname),
+ node->reskey,
+ node->reskeyop);
appendStringInfo(str, " :resgroupref %d :resjunk %s ",
- node->resgroupref,
- node->resjunk ? "true" : "false");
+ node->resgroupref,
+ node->resjunk ? "true" : "false");
}
static void
@@ -568,14 +564,14 @@ _outFjoin(StringInfo str, Fjoin *node)
int i;
appendStringInfo(str, " FJOIN :initialized %s :nNodes %d ",
- node->fj_initialized ? "true" : "false",
- node->fj_nNodes);
+ node->fj_initialized ? "true" : "false",
+ node->fj_nNodes);
appendStringInfo(str, " :innerNode ");
_outNode(str, node->fj_innerNode);
- appendStringInfo(str, " :results @ 0x%x :alwaysdone",
- (int) node->fj_results);
+ appendStringInfo(str, " :results @ 0x%x :alwaysdone",
+ (int) node->fj_results);
for (i = 0; i < node->fj_nNodes; i++)
appendStringInfo(str, (node->fj_alwaysDone[i]) ? "true" : "false");
@@ -590,7 +586,7 @@ _outExpr(StringInfo str, Expr *node)
char *opstr = NULL;
appendStringInfo(str, " EXPR :typeOid %u ",
- node->typeOid);
+ node->typeOid);
switch (node->opType)
{
@@ -626,17 +622,17 @@ _outExpr(StringInfo str, Expr *node)
static void
_outVar(StringInfo str, Var *node)
{
- appendStringInfo(str,
- " VAR :varno %d :varattno %d :vartype %u :vartypmod %d ",
- node->varno,
- node->varattno,
- node->vartype,
- node->vartypmod);
+ appendStringInfo(str,
+ " VAR :varno %d :varattno %d :vartype %u :vartypmod %d ",
+ node->varno,
+ node->varattno,
+ node->vartype,
+ node->vartypmod);
- appendStringInfo(str, " :varlevelsup %u :varnoold %d :varoattno %d" ,
- node->varlevelsup,
- node->varnoold,
- node->varoattno);
+ appendStringInfo(str, " :varlevelsup %u :varnoold %d :varoattno %d",
+ node->varlevelsup,
+ node->varnoold,
+ node->varoattno);
}
/*
@@ -645,37 +641,37 @@ _outVar(StringInfo str, Var *node)
static void
_outConst(StringInfo str, Const *node)
{
- appendStringInfo(str,
- " CONST :consttype %u :constlen %d :constisnull %s :constvalue ",
- node->consttype,
- node->constlen,
- node->constisnull ? "true" : "false");
+ appendStringInfo(str,
+ " CONST :consttype %u :constlen %d :constisnull %s :constvalue ",
+ node->consttype,
+ node->constlen,
+ node->constisnull ? "true" : "false");
if (node->constisnull)
appendStringInfo(str, "<>");
else
_outDatum(str, node->constvalue, node->consttype);
- appendStringInfo(str, " :constbyval %s ",
- node->constbyval ? "true" : "false");
+ appendStringInfo(str, " :constbyval %s ",
+ node->constbyval ? "true" : "false");
}
/*
* Aggref
*/
static void
-_outAggref(StringInfo str, Aggref *node)
+_outAggref(StringInfo str, Aggref * node)
{
- appendStringInfo(str,
- " AGGREG :aggname %s :basetype %u :aggtype %u :target ",
- stringStringInfo(node->aggname),
- node->basetype,
- node->aggtype);
+ appendStringInfo(str,
+ " AGGREG :aggname %s :basetype %u :aggtype %u :target ",
+ stringStringInfo(node->aggname),
+ node->basetype,
+ node->aggtype);
_outNode(str, node->target);
appendStringInfo(str, ":aggno %d :usenulls %s",
- node->aggno,
- node->usenulls ? "true" : "false");
+ node->aggno,
+ node->usenulls ? "true" : "false");
}
/*
@@ -684,10 +680,10 @@ _outAggref(StringInfo str, Aggref *node)
static void
_outSubLink(StringInfo str, SubLink *node)
{
- appendStringInfo(str,
- " SUBLINK :subLinkType %d :useor %s :lefthand ",
- node->subLinkType,
- node->useor ? "true" : "false");
+ appendStringInfo(str,
+ " SUBLINK :subLinkType %d :useor %s :lefthand ",
+ node->subLinkType,
+ node->useor ? "true" : "false");
_outNode(str, node->lefthand);
appendStringInfo(str, " :oper ");
@@ -705,22 +701,18 @@ _outArray(StringInfo str, Array *node)
{
int i;
- appendStringInfo(str,
- " ARRAY :arrayelemtype %u :arrayelemlength %d :arrayelembyval %c ",
- node->arrayelemtype,
- node->arrayelemlength,
- node->arrayelembyval ? 't' : 'f');
+ appendStringInfo(str,
+ " ARRAY :arrayelemtype %u :arrayelemlength %d :arrayelembyval %c ",
+ node->arrayelemtype,
+ node->arrayelemlength,
+ node->arrayelembyval ? 't' : 'f');
appendStringInfo(str, " :arrayndim %d :arraylow ", node->arrayndim);
for (i = 0; i < node->arrayndim; i++)
- {
appendStringInfo(str, " %d ", node->arraylow.indx[i]);
- }
appendStringInfo(str, " :arrayhigh ");
for (i = 0; i < node->arrayndim; i++)
- {
appendStringInfo(str, " %d ", node->arrayhigh.indx[i]);
- }
appendStringInfo(str, " :arraylen %d ", node->arraylen);
}
@@ -730,14 +722,14 @@ _outArray(StringInfo str, Array *node)
static void
_outArrayRef(StringInfo str, ArrayRef *node)
{
- appendStringInfo(str,
- " ARRAYREF :refelemtype %u :refattrlength $d :refelemlength %d ",
- node->refelemtype,
- node->refattrlength,
- node->refelemlength);
+ appendStringInfo(str,
+ " ARRAYREF :refelemtype %u :refattrlength $d :refelemlength %d ",
+ node->refelemtype,
+ node->refattrlength,
+ node->refelemlength);
- appendStringInfo(str, " :refelembyval %c :refupperindex ",
- node->refelembyval ? 't' : 'f');
+ appendStringInfo(str, " :refelembyval %c :refupperindex ",
+ node->refelembyval ? 't' : 'f');
_outNode(str, node->refupperindexpr);
appendStringInfo(str, " :reflowerindex ");
@@ -756,15 +748,15 @@ _outArrayRef(StringInfo str, ArrayRef *node)
static void
_outFunc(StringInfo str, Func *node)
{
- appendStringInfo(str,
- " FUNC :funcid %u :functype %u :funcisindex %s :funcsize %d ",
- node->funcid,
- node->functype,
- node->funcisindex ? "true" : "false",
- node->funcsize);
+ appendStringInfo(str,
+ " FUNC :funcid %u :functype %u :funcisindex %s :funcsize %d ",
+ node->funcid,
+ node->functype,
+ node->funcisindex ? "true" : "false",
+ node->funcsize);
appendStringInfo(str, " :func_fcache @ 0x%x :func_tlist ",
- (int) node->func_fcache);
+ (int) node->func_fcache);
_outNode(str, node->func_tlist);
appendStringInfo(str, " :func_planlist ");
@@ -777,11 +769,11 @@ _outFunc(StringInfo str, Func *node)
static void
_outOper(StringInfo str, Oper *node)
{
- appendStringInfo(str,
- " OPER :opno %u :opid %u :opresulttype %u ",
- node->opno,
- node->opid,
- node->opresulttype);
+ appendStringInfo(str,
+ " OPER :opno %u :opid %u :opresulttype %u ",
+ node->opno,
+ node->opid,
+ node->opresulttype);
}
/*
@@ -790,12 +782,12 @@ _outOper(StringInfo str, Oper *node)
static void
_outParam(StringInfo str, Param *node)
{
- appendStringInfo(str,
- " PARAM :paramkind %d :paramid %d :paramname %s :paramtype %u ",
- node->paramkind,
- node->paramid,
- stringStringInfo(node->paramname),
- node->paramtype);
+ appendStringInfo(str,
+ " PARAM :paramkind %d :paramid %d :paramname %s :paramtype %u ",
+ node->paramkind,
+ node->paramid,
+ stringStringInfo(node->paramname),
+ node->paramtype);
appendStringInfo(str, " :param_tlist ");
_outNode(str, node->param_tlist);
@@ -811,31 +803,31 @@ _outParam(StringInfo str, Param *node)
static void
_outEState(StringInfo str, EState *node)
{
- appendStringInfo(str,
- " ESTATE :direction %d :range_table ",
- node->es_direction);
+ appendStringInfo(str,
+ " ESTATE :direction %d :range_table ",
+ node->es_direction);
_outNode(str, node->es_range_table);
appendStringInfo(str, " :result_relation_info @ 0x%x ",
- (int) (node->es_result_relation_info));
+ (int) (node->es_result_relation_info));
}
/*
* Stuff from relation.h
*/
static void
-_outRelOptInfo(StringInfo str, RelOptInfo *node)
+_outRelOptInfo(StringInfo str, RelOptInfo * node)
{
appendStringInfo(str, " RELOPTINFO :relids ");
_outIntList(str, node->relids);
- appendStringInfo(str,
- " :indexed %s :pages %u :tuples %u :size %u :width %u :targetlist ",
- node->indexed ? "true" : "false",
- node->pages,
- node->tuples,
- node->size,
- node->width);
+ appendStringInfo(str,
+ " :indexed %s :pages %u :tuples %u :size %u :width %u :targetlist ",
+ node->indexed ? "true" : "false",
+ node->pages,
+ node->tuples,
+ node->size,
+ node->width);
_outNode(str, node->targetlist);
appendStringInfo(str, " :pathlist ");
@@ -847,10 +839,10 @@ _outRelOptInfo(StringInfo str, RelOptInfo *node)
* This can be changed later, if necessary.
*/
- appendStringInfo(str,
- " :cheapestpath @ 0x%x :pruneable %s :restrictinfo ",
- (int) node->cheapestpath,
- node->pruneable ? "true" : "false");
+ appendStringInfo(str,
+ " :cheapestpath @ 0x%x :pruneable %s :restrictinfo ",
+ (int) node->cheapestpath,
+ node->pruneable ? "true" : "false");
_outNode(str, node->restrictinfo);
appendStringInfo(str, " :joininfo ");
@@ -876,18 +868,18 @@ _outTargetEntry(StringInfo str, TargetEntry *node)
static void
_outRangeTblEntry(StringInfo str, RangeTblEntry *node)
{
- appendStringInfo(str,
- " RTE :relname %s :refname %s :relid %u :inh %s :inFromCl %s :skipAcl %s",
- stringStringInfo(node->relname),
- stringStringInfo(node->refname),
- node->relid,
- node->inh ? "true" : "false",
- node->inFromCl ? "true" : "false",
- node->skipAcl ? "true" : "false");
+ appendStringInfo(str,
+ " RTE :relname %s :refname %s :relid %u :inh %s :inFromCl %s :skipAcl %s",
+ stringStringInfo(node->relname),
+ stringStringInfo(node->refname),
+ node->relid,
+ node->inh ? "true" : "false",
+ node->inFromCl ? "true" : "false",
+ node->skipAcl ? "true" : "false");
}
static void
-_outRowMark(StringInfo str, RowMark *node)
+_outRowMark(StringInfo str, RowMark * node)
{
appendStringInfo(str, " ROWMARK :rti %u :info %u", node->rti, node->info);
}
@@ -899,17 +891,17 @@ static void
_outPathOrder(StringInfo str, PathOrder *node)
{
appendStringInfo(str, " PATHORDER :ordtype %d ",
- node->ordtype);
+ node->ordtype);
if (node->ordtype == SORTOP_ORDER)
{
- int i;
-
+ int i;
+
appendStringInfo(str, " :sortop ");
if (node->ord.sortop == NULL)
appendStringInfo(str, "<>");
else
{
- for (i=0; node->ord.sortop[i] != 0; i++)
+ for (i = 0; node->ord.sortop[i] != 0; i++)
appendStringInfo(str, " %d ", node->ord.sortop[i]);
appendStringInfo(str, " %d ", 0);
}
@@ -917,7 +909,7 @@ _outPathOrder(StringInfo str, PathOrder *node)
else
{
appendStringInfo(str, " :merge ");
- _outNode(str,node->ord.merge);
+ _outNode(str, node->ord.merge);
}
}
@@ -928,8 +920,8 @@ static void
_outPath(StringInfo str, Path *node)
{
appendStringInfo(str, " PATH :pathtype %d :cost %f :pathkeys ",
- node->pathtype,
- node->path_cost);
+ node->pathtype,
+ node->path_cost);
_outNode(str, node->pathkeys);
appendStringInfo(str, " :pathorder ");
@@ -942,10 +934,10 @@ _outPath(StringInfo str, Path *node)
static void
_outIndexPath(StringInfo str, IndexPath *node)
{
- appendStringInfo(str,
- " INDEXPATH :pathtype %d :cost %f :pathkeys ",
- node->path.pathtype,
- node->path.path_cost);
+ appendStringInfo(str,
+ " INDEXPATH :pathtype %d :cost %f :pathkeys ",
+ node->path.pathtype,
+ node->path.path_cost);
_outNode(str, node->path.pathkeys);
appendStringInfo(str, " :pathorder ");
@@ -962,17 +954,17 @@ _outIndexPath(StringInfo str, IndexPath *node)
* NestPath is a subclass of Path
*/
static void
-_outNestPath(StringInfo str, NestPath *node)
+_outNestPath(StringInfo str, NestPath * node)
{
- appendStringInfo(str,
- " NESTPATH :pathtype %d :cost %f :pathkeys ",
- node->path.pathtype,
- node->path.path_cost);
+ appendStringInfo(str,
+ " NESTPATH :pathtype %d :cost %f :pathkeys ",
+ node->path.pathtype,
+ node->path.path_cost);
_outNode(str, node->path.pathkeys);
appendStringInfo(str, " :pathorder ");
_outNode(str, node->path.pathorder);
-
+
appendStringInfo(str, " :pathinfo ");
_outNode(str, node->pathinfo);
@@ -981,11 +973,11 @@ _outNestPath(StringInfo str, NestPath *node)
* For now, i'll just print the addresses.
*/
- appendStringInfo(str,
- " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outjoincost %f :joinid ",
- (int) node->outerjoinpath,
- (int) node->innerjoinpath,
- node->path.outerjoincost);
+ appendStringInfo(str,
+ " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outjoincost %f :joinid ",
+ (int) node->outerjoinpath,
+ (int) node->innerjoinpath,
+ node->path.outerjoincost);
_outIntList(str, node->path.joinid);
}
@@ -995,15 +987,15 @@ _outNestPath(StringInfo str, NestPath *node)
static void
_outMergePath(StringInfo str, MergePath *node)
{
- appendStringInfo(str,
- " MERGEPATH :pathtype %d :cost %f :pathkeys ",
- node->jpath.path.pathtype,
- node->jpath.path.path_cost);
+ appendStringInfo(str,
+ " MERGEPATH :pathtype %d :cost %f :pathkeys ",
+ node->jpath.path.pathtype,
+ node->jpath.path.path_cost);
_outNode(str, node->jpath.path.pathkeys);
appendStringInfo(str, " :pathorder ");
_outNode(str, node->jpath.path.pathorder);
-
+
appendStringInfo(str, " :pathinfo ");
_outNode(str, node->jpath.pathinfo);
@@ -1012,11 +1004,11 @@ _outMergePath(StringInfo str, MergePath *node)
* For now, i'll just print the addresses.
*/
- appendStringInfo(str,
- " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outerjoincost %f :joinid ",
- (int) node->jpath.outerjoinpath,
- (int) node->jpath.innerjoinpath,
- (int) node->jpath.path.outerjoincost);
+ appendStringInfo(str,
+ " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outerjoincost %f :joinid ",
+ (int) node->jpath.outerjoinpath,
+ (int) node->jpath.innerjoinpath,
+ (int) node->jpath.path.outerjoincost);
_outIntList(str, node->jpath.path.joinid);
appendStringInfo(str, " :path_mergeclauses ");
@@ -1035,10 +1027,10 @@ _outMergePath(StringInfo str, MergePath *node)
static void
_outHashPath(StringInfo str, HashPath *node)
{
- appendStringInfo(str,
- " HASHPATH :pathtype %d :cost %f :pathkeys ",
- node->jpath.path.pathtype,
- node->jpath.path.path_cost);
+ appendStringInfo(str,
+ " HASHPATH :pathtype %d :cost %f :pathkeys ",
+ node->jpath.path.pathtype,
+ node->jpath.path.path_cost);
_outNode(str, node->jpath.path.pathkeys);
appendStringInfo(str, " :pathorder ");
@@ -1052,11 +1044,11 @@ _outHashPath(StringInfo str, HashPath *node)
* For now, i'll just print the addresses.
*/
- appendStringInfo(str,
- " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outerjoincost %f :joinid ",
- (int) node->jpath.outerjoinpath,
- (int) node->jpath.innerjoinpath,
- node->jpath.path.outerjoincost);
+ appendStringInfo(str,
+ " :outerjoinpath @ 0x%x :innerjoinpath @ 0x%x :outerjoincost %f :joinid ",
+ (int) node->jpath.outerjoinpath,
+ (int) node->jpath.innerjoinpath,
+ node->jpath.path.outerjoincost);
_outIntList(str, node->jpath.path.joinid);
appendStringInfo(str, " :path_hashclauses ");
@@ -1075,10 +1067,10 @@ _outHashPath(StringInfo str, HashPath *node)
static void
_outOrderKey(StringInfo str, OrderKey *node)
{
- appendStringInfo(str,
- " ORDERKEY :attribute_number %d :array_index %d ",
- node->attribute_number,
- node->array_index);
+ appendStringInfo(str,
+ " ORDERKEY :attribute_number %d :array_index %d ",
+ node->attribute_number,
+ node->array_index);
}
/*
@@ -1101,31 +1093,31 @@ _outJoinKey(StringInfo str, JoinKey *node)
static void
_outMergeOrder(StringInfo str, MergeOrder *node)
{
- appendStringInfo(str,
- " MERGEORDER :join_operator %u :left_operator %u :right_operator %u ",
- node->join_operator,
- node->left_operator,
- node->right_operator);
+ appendStringInfo(str,
+ " MERGEORDER :join_operator %u :left_operator %u :right_operator %u ",
+ node->join_operator,
+ node->left_operator,
+ node->right_operator);
- appendStringInfo(str,
- " :left_type %u :right_type %u ",
- node->left_type,
- node->right_type);
+ appendStringInfo(str,
+ " :left_type %u :right_type %u ",
+ node->left_type,
+ node->right_type);
}
/*
* RestrictInfo is a subclass of Node.
*/
static void
-_outRestrictInfo(StringInfo str, RestrictInfo *node)
+_outRestrictInfo(StringInfo str, RestrictInfo * node)
{
appendStringInfo(str, " RESTRICTINFO :clause ");
_outNode(str, node->clause);
- appendStringInfo(str,
- " :selectivity %f :notclause %s :indexids ",
- node->selectivity,
- node->notclause ? "true" : "false");
+ appendStringInfo(str,
+ " :selectivity %f :notclause %s :indexids ",
+ node->selectivity,
+ node->notclause ? "true" : "false");
_outNode(str, node->indexids);
appendStringInfo(str, " :mergejoinorder ");
@@ -1152,7 +1144,7 @@ _outJoinMethod(StringInfo str, JoinMethod *node)
* HashInfo is a subclass of JoinMethod.
*/
static void
-_outHashInfo(StringInfo str, HashInfo *node)
+_outHashInfo(StringInfo str, HashInfo * node)
{
appendStringInfo(str, " HASHINFO :hashop %u :jmkeys ", node->hashop);
_outNode(str, node->jmethod.jmkeys);
@@ -1165,7 +1157,7 @@ _outHashInfo(StringInfo str, HashInfo *node)
* JoinInfo is a subclass of Node.
*/
static void
-_outJoinInfo(StringInfo str, JoinInfo *node)
+_outJoinInfo(StringInfo str, JoinInfo * node)
{
appendStringInfo(str, " JINFO :unjoined_relids ");
_outIntList(str, node->unjoined_relids);
@@ -1174,8 +1166,8 @@ _outJoinInfo(StringInfo str, JoinInfo *node)
_outNode(str, node->jinfo_restrictinfo);
appendStringInfo(str, " :mergejoinable %s :hashjoinable %s ",
- node->mergejoinable ? "true" : "false",
- node->hashjoinable ? "true" : "false");
+ node->mergejoinable ? "true" : "false",
+ node->hashjoinable ? "true" : "false");
}
/*
@@ -1184,9 +1176,9 @@ _outJoinInfo(StringInfo str, JoinInfo *node)
static void
_outDatum(StringInfo str, Datum value, Oid type)
{
- char *s;
+ char *s;
Size length,
- typeLength;
+ typeLength;
bool byValue;
int i;
@@ -1213,6 +1205,7 @@ _outDatum(StringInfo str, Datum value, Oid type)
appendStringInfo(str, " 0 [ ] ");
else
{
+
/*
* length is unsigned - very bad to do < comparison to -1
* without casting it to int first!! -mer 8 Jan 1991
@@ -1221,9 +1214,7 @@ _outDatum(StringInfo str, Datum value, Oid type)
length = VARSIZE(s);
appendStringInfo(str, " %d [ ", length);
for (i = 0; i < length; i++)
- {
appendStringInfo(str, " %d ", (int) (s[i]));
- }
appendStringInfo(str, "] ");
}
}
@@ -1239,19 +1230,19 @@ _outIter(StringInfo str, Iter *node)
static void
_outStream(StringInfo str, Stream *node)
{
- appendStringInfo(str,
- " STREAM :pathptr @ 0x%x :cinfo @ 0x%x :clausetype %d :upstream @ 0x%x ",
- (int) node->pathptr,
- (int) node->cinfo,
- (int) node->clausetype,
- (int) node->upstream);
+ appendStringInfo(str,
+ " STREAM :pathptr @ 0x%x :cinfo @ 0x%x :clausetype %d :upstream @ 0x%x ",
+ (int) node->pathptr,
+ (int) node->cinfo,
+ (int) node->clausetype,
+ (int) node->upstream);
- appendStringInfo(str,
- " :downstream @ 0x%x :groupup %d :groupcost %f :groupsel %f ",
- (int) node->downstream,
- node->groupup,
- node->groupcost,
- node->groupsel);
+ appendStringInfo(str,
+ " :downstream @ 0x%x :groupup %d :groupcost %f :groupsel %f ",
+ (int) node->downstream,
+ node->groupup,
+ node->groupcost,
+ node->groupsel);
}
static void
@@ -1289,7 +1280,7 @@ _outValue(StringInfo str, Value *value)
{
switch (value->type)
{
- case T_String:
+ case T_String:
appendStringInfo(str, " \"%s\" ", stringStringInfo(value->val.str));
break;
case T_Integer:
@@ -1340,7 +1331,7 @@ _outAConst(StringInfo str, A_Const *node)
static void
_outConstraint(StringInfo str, Constraint *node)
{
- appendStringInfo(str," %s :type", stringStringInfo(node->name));
+ appendStringInfo(str, " %s :type", stringStringInfo(node->name));
switch (node->contype)
{
@@ -1374,7 +1365,7 @@ _outConstraint(StringInfo str, Constraint *node)
}
static void
-_outCaseExpr(StringInfo str, CaseExpr *node)
+_outCaseExpr(StringInfo str, CaseExpr * node)
{
appendStringInfo(str, "CASE ");
_outNode(str, node->args);
@@ -1386,7 +1377,7 @@ _outCaseExpr(StringInfo str, CaseExpr *node)
}
static void
-_outCaseWhen(StringInfo str, CaseWhen *node)
+_outCaseWhen(StringInfo str, CaseWhen * node)
{
appendStringInfo(str, " WHEN ");
_outNode(str, node->expr);
@@ -1653,7 +1644,7 @@ _outNode(StringInfo str, void *obj)
char *
nodeToString(void *obj)
{
- StringInfoData str;
+ StringInfoData str;
/* see stringinfo.h for an explanation of this maneuver */
initStringInfo(&str);
diff --git a/src/backend/nodes/print.c b/src/backend/nodes/print.c
index 97d3c46a8e6..4e8f767bbf3 100644
--- a/src/backend/nodes/print.c
+++ b/src/backend/nodes/print.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.27 1999/05/10 00:45:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.28 1999/05/25 16:09:10 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -218,17 +218,19 @@ print_expr(Node *expr, List *rtable)
void
print_pathkeys(List *pathkeys, List *rtable)
{
- List *i, *k;
+ List *i,
+ *k;
printf("(");
foreach(i, pathkeys)
{
- List *pathkey = lfirst(i);
+ List *pathkey = lfirst(i);
printf("(");
foreach(k, pathkey)
{
Node *var = lfirst(k);
+
print_expr(var, rtable);
if (lnext(k))
printf(", ");
@@ -241,7 +243,7 @@ print_pathkeys(List *pathkeys, List *rtable)
}
/*
- * print_tl
+ * print_tl
* print targetlist in a more legible way.
*/
void
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 82ccdd2dac9..b5e8d94c934 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.63 1999/05/18 21:34:29 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.64 1999/05/25 16:09:11 momjian Exp $
*
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
@@ -169,9 +169,9 @@ _readQuery()
local_node->unionClause = nodeRead(true);
/***S*I***/
- token = lsptok(NULL, &length); /* skip :intersectClause */
- local_node->intersectClause = nodeRead(true);
-
+ token = lsptok(NULL, &length); /* skip :intersectClause */
+ local_node->intersectClause = nodeRead(true);
+
token = lsptok(NULL, &length); /* skip :limitOffset */
local_node->limitOffset = nodeRead(true);
@@ -544,7 +544,7 @@ _readIndexScan()
local_node->indxqual = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* eat :indxqualorig */
- local_node->indxqualorig = nodeRead(true); /* now read it */
+ local_node->indxqualorig = nodeRead(true); /* now read it */
return local_node;
}
@@ -1407,7 +1407,7 @@ _readRangeTblEntry()
static RowMark *
_readRowMark()
{
- RowMark *local_node = makeNode(RowMark);
+ RowMark *local_node = makeNode(RowMark);
char *token;
int length;
@@ -1431,7 +1431,7 @@ _readRowMark()
static PathOrder *
_readPathOrder()
{
- PathOrder *local_node;
+ PathOrder *local_node;
char *token;
int length;
@@ -1443,17 +1443,18 @@ _readPathOrder()
if (local_node->ordtype == SORTOP_ORDER)
{
- token = lsptok(NULL, &length); /* get :sortop */
+ token = lsptok(NULL, &length); /* get :sortop */
if (length == 0)
local_node->ord.sortop = NULL;
else
{
- int i = -1;
-
- local_node->ord.sortop = palloc(sizeof(Oid) * (INDEX_MAX_KEYS+1));
-
- do {
+ int i = -1;
+
+ local_node->ord.sortop = palloc(sizeof(Oid) * (INDEX_MAX_KEYS + 1));
+
+ do
+ {
i++;
Assert(i <= INDEX_MAX_KEYS);
token = lsptok(NULL, &length); /* now read it */
@@ -1463,7 +1464,7 @@ _readPathOrder()
}
else
{
- token = lsptok(NULL, &length); /* get :merge */
+ token = lsptok(NULL, &length); /* get :merge */
local_node->ord.merge = nodeRead(true); /* now read it */
}
@@ -1494,10 +1495,10 @@ _readPath()
local_node->path_cost = (Cost) atof(token);
token = lsptok(NULL, &length); /* get :pathorder */
- local_node->pathorder = nodeRead(true); /* now read it */
+ local_node->pathorder = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathkeys */
- local_node->pathkeys = nodeRead(true); /* now read it */
+ local_node->pathkeys = nodeRead(true); /* now read it */
return local_node;
}
@@ -1526,10 +1527,10 @@ _readIndexPath()
local_node->path.path_cost = (Cost) atof(token);
token = lsptok(NULL, &length); /* get :pathorder */
- local_node->path.pathorder = nodeRead(true); /* now read it */
+ local_node->path.pathorder = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathkeys */
- local_node->path.pathkeys = nodeRead(true); /* now read it */
+ local_node->path.pathkeys = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :indexid */
local_node->indexid = toIntList(nodeRead(true));
@@ -1568,7 +1569,7 @@ _readNestPath()
local_node->path.pathorder = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathkeys */
- local_node->path.pathkeys = nodeRead(true); /* now read it */
+ local_node->path.pathkeys = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathinfo */
local_node->pathinfo = nodeRead(true); /* now read it */
@@ -1630,13 +1631,13 @@ _readMergePath()
local_node->jpath.path.path_cost = (Cost) atof(token);
token = lsptok(NULL, &length); /* get :pathorder */
- local_node->jpath.path.pathorder = nodeRead(true); /* now read it */
+ local_node->jpath.path.pathorder = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathkeys */
- local_node->jpath.path.pathkeys = nodeRead(true); /* now read it */
+ local_node->jpath.path.pathkeys = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathinfo */
- local_node->jpath.pathinfo = nodeRead(true); /* now read it */
+ local_node->jpath.pathinfo = nodeRead(true); /* now read it */
/*
* Not sure if these are nodes; they're declared as "struct path *".
@@ -1664,7 +1665,7 @@ _readMergePath()
local_node->jpath.path.outerjoincost = (Cost) atof(token);
token = lsptok(NULL, &length); /* get :joinid */
- local_node->jpath.path.joinid = toIntList(nodeRead(true)); /* now read it */
+ local_node->jpath.path.joinid = toIntList(nodeRead(true)); /* now read it */
token = lsptok(NULL, &length); /* get :path_mergeclauses */
local_node->path_mergeclauses = nodeRead(true); /* now read it */
@@ -1704,13 +1705,13 @@ _readHashPath()
local_node->jpath.path.path_cost = (Cost) atof(token);
token = lsptok(NULL, &length); /* get :pathorder */
- local_node->jpath.path.pathorder = nodeRead(true); /* now read it */
+ local_node->jpath.path.pathorder = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathkeys */
- local_node->jpath.path.pathkeys = nodeRead(true); /* now read it */
+ local_node->jpath.path.pathkeys = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :pathinfo */
- local_node->jpath.pathinfo = nodeRead(true); /* now read it */
+ local_node->jpath.pathinfo = nodeRead(true); /* now read it */
/*
* Not sure if these are nodes; they're declared as "struct path *".
@@ -1738,7 +1739,7 @@ _readHashPath()
local_node->jpath.path.outerjoincost = (Cost) atof(token);
token = lsptok(NULL, &length); /* get :joinid */
- local_node->jpath.path.joinid = toIntList(nodeRead(true)); /* now read it */
+ local_node->jpath.path.joinid = toIntList(nodeRead(true)); /* now read it */
token = lsptok(NULL, &length); /* get :path_hashclauses */
local_node->path_hashclauses = nodeRead(true); /* now read it */
@@ -1924,7 +1925,7 @@ _readJoinMethod()
static HashInfo *
_readHashInfo()
{
- HashInfo *local_node;
+ HashInfo *local_node;
char *token;
int length;
@@ -1960,10 +1961,10 @@ _readJoinInfo()
local_node = makeNode(JoinInfo);
token = lsptok(NULL, &length); /* get :unjoined_relids */
- local_node->unjoined_relids = toIntList(nodeRead(true)); /* now read it */
+ local_node->unjoined_relids = toIntList(nodeRead(true)); /* now read it */
token = lsptok(NULL, &length); /* get :jinfo_restrictinfo */
- local_node->jinfo_restrictinfo = nodeRead(true); /* now read it */
+ local_node->jinfo_restrictinfo = nodeRead(true); /* now read it */
token = lsptok(NULL, &length); /* get :mergejoinable */
diff --git a/src/backend/optimizer/geqo/geqo_eval.c b/src/backend/optimizer/geqo/geqo_eval.c
index 31a77f46e4a..69d568dbc35 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.37 1999/05/17 00:25:34 tgl Exp $
+ * $Id: geqo_eval.c,v 1.38 1999/05/25 16:09:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,7 +56,7 @@ static MemoryContext geqo_eval_context;
/*
* geqo_eval_startup:
- * Must be called during geqo_main startup (before geqo_eval may be called)
+ * Must be called during geqo_main startup (before geqo_eval may be called)
*
* The main thing we need to do here is prepare a private memory context for
* allocation of temp storage used while constructing a path in geqo_eval().
@@ -70,9 +70,10 @@ void
geqo_eval_startup(void)
{
#define GEQO_PORTAL_NAME "<geqo workspace>"
- Portal geqo_portal = GetPortalByName(GEQO_PORTAL_NAME);
+ Portal geqo_portal = GetPortalByName(GEQO_PORTAL_NAME);
- if (!PortalIsValid(geqo_portal)) {
+ if (!PortalIsValid(geqo_portal))
+ {
/* First time through (within current transaction, that is) */
geqo_portal = CreatePortal(GEQO_PORTAL_NAME);
Assert(PortalIsValid(geqo_portal));
@@ -89,15 +90,18 @@ geqo_eval_startup(void)
Cost
geqo_eval(Query *root, Gene *tour, int num_gene)
{
- MemoryContext oldcxt;
- RelOptInfo *joinrel;
- Cost fitness;
- List *savelist;
+ MemoryContext oldcxt;
+ RelOptInfo *joinrel;
+ Cost fitness;
+ List *savelist;
/* preserve root->join_rel_list, which gimme_tree changes */
savelist = root->join_rel_list;
- /* create a temporary allocation context for the path construction work */
+ /*
+ * create a temporary allocation context for the path construction
+ * work
+ */
oldcxt = MemoryContextSwitchTo(geqo_eval_context);
StartPortalAllocMode(DefaultAllocMode, 0);
@@ -118,7 +122,7 @@ geqo_eval(Query *root, Gene *tour, int num_gene)
}
/*
- * gimme_tree
+ * gimme_tree
* this program presumes that only LEFT-SIDED TREES are considered!
*
* 'old_rel' is the preceding join
@@ -126,7 +130,7 @@ geqo_eval(Query *root, Gene *tour, int num_gene)
* Returns a new join relation incorporating all joins in a left-sided tree.
*/
RelOptInfo *
-gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old_rel)
+gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo * old_rel)
{
RelOptInfo *inner_rel; /* current relation */
int base_rel_index;
@@ -139,7 +143,7 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old
/* tour[0] = 3; tour[1] = 1; tour[2] = 2 */
base_rel_index = (int) tour[rel_count];
- inner_rel = (RelOptInfo *) nth(base_rel_index-1, root->base_rel_list);
+ inner_rel = (RelOptInfo *) nth(base_rel_index - 1, root->base_rel_list);
if (rel_count == 0)
{ /* processing first join with
@@ -151,15 +155,17 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old
{ /* tree main part */
if (!(new_rels = make_rels_by_clause_joins(root, old_rel,
old_rel->joininfo,
- inner_rel->relids)))
+ inner_rel->relids)))
{
new_rels = make_rels_by_clauseless_joins(old_rel,
- lcons(inner_rel,NIL));
- /* we don't do bushy plans in geqo, do we? bjm 02/18/1999
- new_rels = append(new_rels,
- make_rels_by_clauseless_joins(old_rel,
- lcons(old_rel,NIL));
- */
+ lcons(inner_rel, NIL));
+
+ /*
+ * we don't do bushy plans in geqo, do we? bjm 02/18/1999
+ * new_rels = append(new_rels,
+ * make_rels_by_clauseless_joins(old_rel,
+ * lcons(old_rel,NIL));
+ */
}
/* process new_rel->pathlist */
@@ -202,5 +208,5 @@ gimme_tree(Query *root, Gene *tour, int rel_count, int num_gene, RelOptInfo *old
}
}
- return old_rel; /* tree finished ... */
+ return old_rel; /* tree finished ... */
}
diff --git a/src/backend/optimizer/geqo/geqo_main.c b/src/backend/optimizer/geqo/geqo_main.c
index 2cedda675bd..88bcce1ed7d 100644
--- a/src/backend/optimizer/geqo/geqo_main.c
+++ b/src/backend/optimizer/geqo/geqo_main.c
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: geqo_main.c,v 1.15 1999/05/17 00:25:33 tgl Exp $
+ * $Id: geqo_main.c,v 1.16 1999/05/25 16:09:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -77,24 +77,28 @@ geqo(Query *root)
status_interval;
Gene *best_tour;
RelOptInfo *best_rel;
+
#if defined(ERX)
Edge *edge_table; /* list of edges */
int edge_failures = 0;
float difference;
+
#endif
#if defined(CX) || defined(PX) || defined(OX1) || defined(OX2)
City *city_table; /* list of cities */
+
#endif
#if defined(CX)
int cycle_diffs = 0;
int mutations = 0;
+
#endif
/* set tour size */
number_of_rels = length(root->base_rel_list);
/* set GA parameters */
- geqo_params(number_of_rels); /* read "$PGDATA/pg_geqo" file */
+ geqo_params(number_of_rels);/* read "$PGDATA/pg_geqo" file */
pool_size = PoolSize;
number_generations = Generations;
status_interval = 10;
diff --git a/src/backend/optimizer/geqo/geqo_misc.c b/src/backend/optimizer/geqo/geqo_misc.c
index adb4255c89c..dd4320a3d43 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.17 1999/02/13 23:16:09 momjian Exp $
+ * $Id: geqo_misc.c,v 1.18 1999/05/25 16:09:17 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -261,7 +261,7 @@ geqo_print_path(Query *root, Path *path, int indent)
}
void
-geqo_print_rel(Query *root, RelOptInfo *rel)
+geqo_print_rel(Query *root, RelOptInfo * rel)
{
List *l;
diff --git a/src/backend/optimizer/geqo/geqo_pool.c b/src/backend/optimizer/geqo/geqo_pool.c
index f8530ef4ef0..c01073e614a 100644
--- a/src/backend/optimizer/geqo/geqo_pool.c
+++ b/src/backend/optimizer/geqo/geqo_pool.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: geqo_pool.c,v 1.11 1999/02/13 23:16:12 momjian Exp $
+ * $Id: geqo_pool.c,v 1.12 1999/05/25 16:09:18 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -109,7 +109,7 @@ random_init_pool(Query *root, Pool *pool, int strt, int stp)
* "geqo_recombination.c"
* */
- pool->data[i].worth = geqo_eval(root, chromo[i].string, pool->string_length); /* "from geqo_eval.c" */
+ pool->data[i].worth = geqo_eval(root, chromo[i].string, pool->string_length); /* "from geqo_eval.c" */
}
}
diff --git a/src/backend/optimizer/geqo/minspantree.c b/src/backend/optimizer/geqo/minspantree.c
index daf8a459e3a..c49f135ce25 100644
--- a/src/backend/optimizer/geqo/minspantree.c
+++ b/src/backend/optimizer/geqo/minspantree.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
-* $Header: /cvsroot/pgsql/src/backend/optimizer/geqo/Attic/minspantree.c,v 1.10 1999/02/13 23:16:13 momjian Exp $
+* $Header: /cvsroot/pgsql/src/backend/optimizer/geqo/Attic/minspantree.c,v 1.11 1999/05/25 16:09:19 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,7 +41,7 @@
*/
void
-minspantree(Query *root, List *join_rels, RelOptInfo *garel)
+minspantree(Query *root, List *join_rels, RelOptInfo * garel)
{
int number_of_rels = length(root->base_rel_list);
int number_of_joins = length(join_rels);
diff --git a/src/backend/optimizer/path/_deadcode/predmig.c b/src/backend/optimizer/path/_deadcode/predmig.c
index 058b89780d6..a27b61fb62c 100644
--- a/src/backend/optimizer/path/_deadcode/predmig.c
+++ b/src/backend/optimizer/path/_deadcode/predmig.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/_deadcode/Attic/predmig.c,v 1.1 1999/02/18 19:58:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/_deadcode/Attic/predmig.c,v 1.2 1999/05/25 16:09:30 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -257,7 +257,7 @@ xfunc_llel_chains(Stream root, Stream bottom)
*/
Assert(xfunc_num_relids(pathstream) > xfunc_num_relids(tmpstream));
progress = xfunc_prdmig_pullup(origstream, tmpstream,
- (JoinPath) get_pathptr(pathstream));
+ (JoinPath) get_pathptr(pathstream));
}
if (get_downstream(tmpstream))
pathstream = (Stream) xfunc_get_downjoin((Stream) get_downstream(tmpstream));
@@ -269,7 +269,7 @@ xfunc_llel_chains(Stream root, Stream bottom)
}
/*
- ** xfunc_complete_stream
+ ** xfunc_complete_stream
** Given a stream composed of join nodes only, make a copy containing the
** join nodes along with the associated restriction nodes.
*/
@@ -313,7 +313,7 @@ xfunc_complete_stream(Stream stream)
static bool
xfunc_prdmig_pullup(Stream origstream, Stream pullme, JoinPath joinpath)
{
- RestrictInfo restrictinfo = get_cinfo(pullme);
+ RestrictInfo restrictinfo = get_cinfo(pullme);
bool progress = false;
Stream upjoin,
orignode,
@@ -347,10 +347,10 @@ xfunc_prdmig_pullup(Stream origstream, Stream pullme, JoinPath joinpath)
else
whichchild = INNER;
restrictinfo = xfunc_pullup((Path) get_pathptr((Stream) get_downstream(upjoin)),
- (JoinPath) get_pathptr(upjoin),
- restrictinfo,
- whichchild,
- get_clausetype(orignode));
+ (JoinPath) get_pathptr(upjoin),
+ restrictinfo,
+ whichchild,
+ get_clausetype(orignode));
set_pathptr(pullme, get_pathptr(upjoin));
/* pullme has been moved into locrestrictinfo */
set_clausetype(pullme, XFUNC_LOCPRD);
@@ -390,7 +390,7 @@ xfunc_prdmig_pullup(Stream origstream, Stream pullme, JoinPath joinpath)
}
/*
- ** xfunc_form_groups
+ ** xfunc_form_groups
** A group is a pair of stream nodes a,b such that a is constrained to
** precede b (for instance if a and b are both joins), but rank(a) > rank(b).
** In such a situation, Monma and Sidney prove that no clauses should end
@@ -487,10 +487,10 @@ xfunc_form_groups(Query *queryInfo, Stream root, Stream bottom)
}
-/* ------------------- UTILITY FUNCTIONS ------------------------- */
+/* ------------------- UTILITY FUNCTIONS ------------------------- */
/*
- ** xfunc_free_stream
+ ** xfunc_free_stream
** walk down a stream and pfree it
*/
static void
@@ -525,7 +525,7 @@ xfunc_add_clauses(Stream current)
foreach(temp, get_loc_restrictinfo((Path) get_pathptr(current)))
{
topnode = xfunc_streaminsert((RestrictInfo) lfirst(temp), topnode,
- XFUNC_LOCPRD);
+ XFUNC_LOCPRD);
}
/* and add in the join clauses */
@@ -536,7 +536,7 @@ xfunc_add_clauses(Stream current)
{
if (!equal(get_clause((RestrictInfo) lfirst(temp)), primjoin))
topnode = xfunc_streaminsert((RestrictInfo) lfirst(temp), topnode,
- XFUNC_JOINPRD);
+ XFUNC_JOINPRD);
}
}
return topnode;
@@ -623,7 +623,7 @@ xfunc_num_relids(Stream node)
}
/*
- ** xfunc_get_downjoin
+ ** xfunc_get_downjoin
** Given a stream node, find the next lowest node which points to a
** join predicate or a scan node.
*/
@@ -642,7 +642,7 @@ xfunc_get_downjoin(Stream node)
}
/*
- ** xfunc_get_upjoin
+ ** xfunc_get_upjoin
** same as above, but upwards.
*/
static StreamPtr
@@ -660,7 +660,7 @@ xfunc_get_upjoin(Stream node)
}
/*
- ** xfunc_stream_qsort
+ ** xfunc_stream_qsort
** Given a stream, sort by group rank the elements in the stream from the
** node "bottom" up. DESTRUCTIVELY MODIFIES STREAM! Returns new root.
*/
diff --git a/src/backend/optimizer/path/_deadcode/xfunc.c b/src/backend/optimizer/path/_deadcode/xfunc.c
index f365cdcd1b5..7ee1c3616c5 100644
--- a/src/backend/optimizer/path/_deadcode/xfunc.c
+++ b/src/backend/optimizer/path/_deadcode/xfunc.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/_deadcode/Attic/xfunc.c,v 1.2 1999/05/10 00:45:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/_deadcode/Attic/xfunc.c,v 1.3 1999/05/25 16:09:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -49,7 +49,7 @@ static int xfunc_card_unreferenced(Query *queryInfo,
*/
/*
-** xfunc_trypullup
+** xfunc_trypullup
** Preliminary pullup of predicates, to allow for maximal pruning.
** Given a relation, check each of its paths and see if you can
** pullup clauses from its inner and outer.
@@ -59,7 +59,7 @@ void
xfunc_trypullup(RelOptInfo rel)
{
LispValue y; /* list ptr */
- RestrictInfo maxcinfo; /* The RestrictInfo to pull up, as
+ RestrictInfo maxcinfo; /* The RestrictInfo to pull up, as
* calculated by xfunc_shouldpull() */
JoinPath curpath; /* current path in list */
int progress; /* has progress been made this time
@@ -81,7 +81,7 @@ xfunc_trypullup(RelOptInfo rel)
{
/* No, the following should NOT be '==' !! */
if (clausetype = xfunc_shouldpull((Path) get_innerjoinpath(curpath),
- curpath, INNER, &maxcinfo))
+ curpath, INNER, &maxcinfo))
{
xfunc_pullup((Path) get_innerjoinpath(curpath),
@@ -96,7 +96,7 @@ xfunc_trypullup(RelOptInfo rel)
/* No, the following should NOT be '==' !! */
if (clausetype = xfunc_shouldpull((Path) get_outerjoinpath(curpath),
- curpath, OUTER, &maxcinfo))
+ curpath, OUTER, &maxcinfo))
{
xfunc_pullup((Path) get_outerjoinpath(curpath),
@@ -127,7 +127,7 @@ xfunc_trypullup(RelOptInfo rel)
}
/*
- ** xfunc_shouldpull
+ ** xfunc_shouldpull
** find clause with highest rank, and decide whether to pull it up
** from child to parent. Currently we only pullup secondary join clauses
** that are in the pathrestrictinfo. Secondary hash and sort clauses are
@@ -144,12 +144,12 @@ xfunc_shouldpull(Query *queryInfo,
Path childpath,
JoinPath parentpath,
int whichchild,
- RestrictInfo *maxcinfopt) /* Out: pointer to clause
+ RestrictInfo * maxcinfopt) /* Out: pointer to clause
* to pullup */
{
LispValue clauselist,
tmplist; /* lists of clauses */
- RestrictInfo maxcinfo; /* clause to pullup */
+ RestrictInfo maxcinfo; /* clause to pullup */
LispValue primjoinclause /* primary join clause */
= xfunc_primary_join(parentpath);
Cost tmprank,
@@ -225,7 +225,7 @@ xfunc_shouldpull(Query *queryInfo,
|| (!is_join(childpath)
&& (whichchild == INNER)
&& IsA(parentpath, NestPath)
- &&!IsA(parentpath, HashPath)
+ && !IsA(parentpath, HashPath)
&&!IsA(parentpath, MergePath)))))
{
@@ -250,7 +250,7 @@ xfunc_shouldpull(Query *queryInfo,
/*
- ** xfunc_pullup
+ ** xfunc_pullup
** move clause from child pathnode to parent pathnode. This operation
** makes the child pathnode produce a larger relation than it used to.
** This means that we must construct a new RelOptInfo just for the childpath,
@@ -264,7 +264,7 @@ RestrictInfo
xfunc_pullup(Query *queryInfo,
Path childpath,
JoinPath parentpath,
- RestrictInfo cinfo, /* clause to pull up */
+ RestrictInfo cinfo,/* clause to pull up */
int whichchild, /* whether child is INNER or OUTER of join */
int clausetype) /* whether clause to pull is join or local */
{
@@ -272,22 +272,22 @@ xfunc_pullup(Query *queryInfo,
RelOptInfo newrel;
Cost pulled_selec;
Cost cost;
- RestrictInfo newinfo;
+ RestrictInfo newinfo;
/* remove clause from childpath */
newkid = (Path) copyObject((Node) childpath);
if (clausetype == XFUNC_LOCPRD)
{
set_locrestrictinfo(newkid,
- xfunc_LispRemove((LispValue) cinfo,
- (List) get_loc_restrictinfo(newkid)));
+ xfunc_LispRemove((LispValue) cinfo,
+ (List) get_loc_restrictinfo(newkid)));
}
else
{
set_pathrestrictinfo
((JoinPath) newkid,
xfunc_LispRemove((LispValue) cinfo,
- (List) get_pathrestrictinfo((JoinPath) newkid)));
+ (List) get_pathrestrictinfo((JoinPath) newkid)));
}
/*
@@ -328,8 +328,8 @@ xfunc_pullup(Query *queryInfo,
/* add clause to parentpath, and fix up its cost. */
set_locrestrictinfo(parentpath,
- lispCons((LispValue) newinfo,
- (LispValue) get_loc_restrictinfo(parentpath)));
+ lispCons((LispValue) newinfo,
+ (LispValue) get_loc_restrictinfo(parentpath)));
/* put new childpath into the path tree */
if (whichchild == INNER)
set_innerjoinpath(parentpath, (pathPtr) newkid);
@@ -386,7 +386,7 @@ LispValue clause;
}
/*
- ** xfunc_join_expense
+ ** xfunc_join_expense
** Find global expense of a join clause
*/
Cost
@@ -457,7 +457,7 @@ xfunc_local_expense(LispValue clause)
}
/*
- ** xfunc_func_expense
+ ** xfunc_func_expense
** given a Func or Oper and its args, find its expense.
** Note: in Stonebraker's SIGMOD '91 paper, he uses a more complicated metric
** than the one here. We can ignore the expected number of tuples for
@@ -581,7 +581,7 @@ xfunc_func_expense(LispValue node, LispValue args)
}
/*
- ** xfunc_width
+ ** xfunc_width
** recursively find the width of a expression
*/
@@ -694,7 +694,7 @@ xfunc_width(LispValue clause)
*/
Assert(length(get_func_tlist(func)) == 1); /* sanity */
retval = xfunc_width((LispValue)
- get_expr(lfirst(get_func_tlist(func))));
+ get_expr(lfirst(get_func_tlist(func))));
goto exit;
}
else
@@ -771,8 +771,8 @@ xfunc_card_product(Query *queryInfo, Relids relids)
{
if (!xfunc_expense(queryInfo, get_clause((RestrictInfo) lfirst(cinfonode))))
tuples *= compute_clause_selec(queryInfo,
- get_clause((RestrictInfo) lfirst(cinfonode)),
- LispNil);
+ get_clause((RestrictInfo) lfirst(cinfonode)),
+ LispNil);
}
if (retval == 0)
@@ -857,7 +857,7 @@ LispValue
xfunc_primary_join(JoinPath pathnode)
{
LispValue joinclauselist = get_pathrestrictinfo(pathnode);
- RestrictInfo mincinfo;
+ RestrictInfo mincinfo;
LispValue tmplist;
LispValue minclause = LispNil;
Cost minrank,
@@ -931,7 +931,7 @@ xfunc_get_path_cost(Query *queryInfo, Path pathnode)
*/
if (XfuncMode != XFUNC_OFF)
set_locrestrictinfo(pathnode, lisp_qsort(get_loc_restrictinfo(pathnode),
- xfunc_cinfo_compare));
+ xfunc_cinfo_compare));
for (tmplist = get_loc_restrictinfo(pathnode), selec = 1.0;
tmplist != LispNil;
tmplist = lnext(tmplist))
@@ -939,7 +939,7 @@ xfunc_get_path_cost(Query *queryInfo, Path pathnode)
cost += (Cost) (xfunc_local_expense(get_clause((RestrictInfo) lfirst(tmplist)))
* (Cost) get_tuples(get_parent(pathnode)) * selec);
selec *= compute_clause_selec(queryInfo,
- get_clause((RestrictInfo) lfirst(tmplist)),
+ get_clause((RestrictInfo) lfirst(tmplist)),
LispNil);
}
@@ -951,8 +951,8 @@ xfunc_get_path_cost(Query *queryInfo, Path pathnode)
{
if (XfuncMode != XFUNC_OFF)
set_pathrestrictinfo((JoinPath) pathnode, lisp_qsort
- (get_pathrestrictinfo((JoinPath) pathnode),
- xfunc_cinfo_compare));
+ (get_pathrestrictinfo((JoinPath) pathnode),
+ xfunc_cinfo_compare));
for (tmplist = get_pathrestrictinfo((JoinPath) pathnode), selec = 1.0;
tmplist != LispNil;
tmplist = lnext(tmplist))
@@ -960,7 +960,7 @@ xfunc_get_path_cost(Query *queryInfo, Path pathnode)
cost += (Cost) (xfunc_local_expense(get_clause((RestrictInfo) lfirst(tmplist)))
* (Cost) get_tuples(get_parent(pathnode)) * selec);
selec *= compute_clause_selec(queryInfo,
- get_clause((RestrictInfo) lfirst(tmplist)),
+ get_clause((RestrictInfo) lfirst(tmplist)),
LispNil);
}
}
@@ -1071,7 +1071,7 @@ xfunc_total_path_cost(JoinPath pathnode)
/*
- ** xfunc_expense_per_tuple
+ ** xfunc_expense_per_tuple
** return the expense of the join *per-tuple* of the input relation.
** The cost model here is that a join costs
** k*card(outer)*card(inner) + l*card(outer) + m*card(inner) + n
@@ -1124,7 +1124,7 @@ xfunc_expense_per_tuple(JoinPath joinnode, int whichchild)
}
/*
- ** xfunc_fixvars
+ ** xfunc_fixvars
** After pulling up a clause, we must walk its expression tree, fixing Var
** nodes to point to the correct varno (either INNER or OUTER, depending
** on which child the clause was pulled from), and the right varattno in the
@@ -1189,8 +1189,8 @@ xfunc_fixvars(LispValue clause, /* clause being pulled up */
int
xfunc_cinfo_compare(void *arg1, void *arg2)
{
- RestrictInfo info1 = *(RestrictInfo *) arg1;
- RestrictInfo info2 = *(RestrictInfo *) arg2;
+ RestrictInfo info1 = *(RestrictInfo *) arg1;
+ RestrictInfo info2 = *(RestrictInfo *) arg2;
LispValue clause1 = (LispValue) get_clause(info1),
clause2 = (LispValue) get_clause(info2);
@@ -1223,7 +1223,7 @@ xfunc_clause_compare(void *arg1, void *arg2)
}
/*
- ** xfunc_disjunct_sort
+ ** xfunc_disjunct_sort
** given a list of clauses, for each clause sort the disjuncts by cost
** (this assumes the predicates have been converted to Conjunctive NF)
** Modifies the clause list!
@@ -1287,7 +1287,7 @@ xfunc_disjunct_compare(Query *queryInfo, void *arg1, void *arg2)
/* ------------------------ UTILITY FUNCTIONS ------------------------------- */
/*
- ** xfunc_func_width
+ ** xfunc_func_width
** Given a function OID and operands, find the width of the return value.
*/
int
@@ -1349,7 +1349,7 @@ exit:
}
/*
- ** xfunc_tuple_width
+ ** xfunc_tuple_width
** Return the sum of the lengths of all the attributes of a given relation
*/
int
@@ -1371,7 +1371,7 @@ xfunc_tuple_width(Relation rd)
}
/*
- ** xfunc_num_join_clauses
+ ** xfunc_num_join_clauses
** Find the number of join clauses associated with this join path
*/
int
@@ -1388,7 +1388,7 @@ xfunc_num_join_clauses(JoinPath path)
}
/*
- ** xfunc_LispRemove
+ ** xfunc_LispRemove
** Just like LispRemove, but it whines if the item to be removed ain't there
*/
LispValue
@@ -1419,11 +1419,11 @@ do { \
} while(0)
/*
- ** xfunc_copyrel
+ ** xfunc_copyrel
** Just like _copyRel, but doesn't copy the paths
*/
bool
-xfunc_copyrel(RelOptInfo from, RelOptInfo *to)
+xfunc_copyrel(RelOptInfo from, RelOptInfo * to)
{
RelOptInfo newnode;
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index ba421b4f5ff..8ebcc5d4794 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.44 1999/02/22 05:26:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.45 1999/05/25 16:09:22 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,10 +45,10 @@ int32 _use_geqo_rels_ = GEQO_RELS;
static void set_base_rel_pathlist(Query *root, List *rels);
static RelOptInfo *make_one_rel_by_joins(Query *root, List *rels,
- int levels_needed);
+ int levels_needed);
#ifdef OPTIMIZER_DEBUG
-static void debug_print_rel(Query *root, RelOptInfo *rel);
+static void debug_print_rel(Query *root, RelOptInfo * rel);
#endif
@@ -76,6 +76,7 @@ make_one_rel(Query *root, List *rels)
if (levels_needed <= 1)
{
+
/*
* Unsorted single relation, no more processing is required.
*/
@@ -83,6 +84,7 @@ make_one_rel(Query *root, List *rels)
}
else
{
+
/*
* This means that joins or sorts are required. set selectivities
* of clauses that have not been set by an index.
@@ -117,17 +119,17 @@ set_base_rel_pathlist(Query *root, List *rels)
sequential_scan_list = lcons(create_seqscan_path(rel), NIL);
rel_index_scan_list = create_index_paths(root,
- rel,
- find_relation_indices(root, rel),
- rel->restrictinfo,
- rel->joininfo);
+ rel,
+ find_relation_indices(root, rel),
+ rel->restrictinfo,
+ rel->joininfo);
or_index_scan_list = create_or_index_paths(root, rel, rel->restrictinfo);
rel->pathlist = add_pathlist(rel,
sequential_scan_list,
nconc(rel_index_scan_list,
- or_index_scan_list));
+ or_index_scan_list));
set_cheapest(rel, rel->pathlist);
@@ -171,13 +173,14 @@ make_one_rel_by_joins(Query *root, List *rels, int levels_needed)
*******************************************/
if ((_use_geqo_) && length(root->base_rel_list) >= _use_geqo_rels_)
return geqo(root);
-
+
/*******************************************
* rest will be deprecated in case of GEQO *
*******************************************/
while (--levels_needed)
{
+
/*
* Determine all possible pairs of relations to be joined at this
* level. Determine paths for joining these relation pairs and
@@ -193,6 +196,7 @@ make_one_rel_by_joins(Query *root, List *rels, int levels_needed)
root->join_rel_list = rels = joined_rels;
#ifdef NOT_USED
+
/*
* * for each expensive predicate in each path in each distinct
* rel, * consider doing pullup -- JMH
@@ -351,7 +355,7 @@ print_path(Query *root, Path *path, int indent)
}
static void
-debug_print_rel(Query *root, RelOptInfo *rel)
+debug_print_rel(Query *root, RelOptInfo * rel)
{
List *l;
diff --git a/src/backend/optimizer/path/clausesel.c b/src/backend/optimizer/path/clausesel.c
index 1eeae4c6d3d..bbc9e3547e3 100644
--- a/src/backend/optimizer/path/clausesel.c
+++ b/src/backend/optimizer/path/clausesel.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/clausesel.c,v 1.19 1999/05/16 19:45:37 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/clausesel.c,v 1.20 1999/05/25 16:09:22 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -132,7 +132,7 @@ set_rest_selec(Query *root, List *restrictinfo_list)
if (cost_clause <= 0 || valid_or_clause(clausenode))
{
clausenode->selectivity = compute_clause_selec(root,
- (Node *) clausenode->clause,
+ (Node *) clausenode->clause,
lcons(makeFloat(cost_clause), NIL));
}
}
@@ -256,7 +256,7 @@ compute_selec(Query *root, List *clauses, List *or_selectivities)
else if (not_clause((Node *) clause))
{
/* negate this baby */
- return 1 - compute_selec(root, ((Expr *)clause)->args, or_selectivities);
+ return 1 - compute_selec(root, ((Expr *) clause)->args, or_selectivities);
}
else if (is_subplan((Node *) clause))
{
diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c
index 22eb4d3e53d..327f58cf320 100644
--- a/src/backend/optimizer/path/costsize.c
+++ b/src/backend/optimizer/path/costsize.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v 1.36 1999/05/01 19:47:41 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v 1.37 1999/05/25 16:09:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -37,7 +37,7 @@
extern int NBuffers;
static int compute_attribute_width(TargetEntry *tlistentry);
-static double relation_byte_size (int tuples, int width);
+static double relation_byte_size(int tuples, int width);
static double base_log(double x, double b);
static int compute_targetlist_width(List *targetlist);
@@ -134,9 +134,10 @@ cost_index(Oid indexid,
if (!_enable_indexscan_ && !is_injoin)
temp += _disable_cost_;
- /* We want to be sure we estimate the cost of an index scan
- * as more than the cost of a sequential scan (when selec == 1.0),
- * even if we don't have good stats. So, disbelieve zero index size.
+ /*
+ * We want to be sure we estimate the cost of an index scan as more
+ * than the cost of a sequential scan (when selec == 1.0), even if we
+ * don't have good stats. So, disbelieve zero index size.
*/
if (expected_indexpages <= 0)
expected_indexpages = 1;
@@ -146,11 +147,11 @@ cost_index(Oid indexid,
/* expected index relation pages */
temp += expected_indexpages;
- /* expected base relation pages
- * XXX this isn't really right, since we will access the table
- * nonsequentially and might have to fetch the same page
- * more than once. This calculation assumes the buffer cache
- * will prevent that from happening...
+ /*
+ * expected base relation pages XXX this isn't really right, since we
+ * will access the table nonsequentially and might have to fetch the
+ * same page more than once. This calculation assumes the buffer
+ * cache will prevent that from happening...
*/
temp += ceil(((double) selec) * ((double) relpages));
@@ -192,8 +193,10 @@ cost_sort(List *pathkeys, int tuples, int width)
if (!_enable_sort_)
temp += _disable_cost_;
- /* We want to be sure the cost of a sort is never estimated as zero,
- * even if passed-in tuple count is zero. Besides, mustn't do log(0)...
+ /*
+ * We want to be sure the cost of a sort is never estimated as zero,
+ * even if passed-in tuple count is zero. Besides, mustn't do
+ * log(0)...
*/
if (tuples <= 0)
tuples = 1;
@@ -344,10 +347,11 @@ cost_hashjoin(Cost outercost,
if (!_enable_hashjoin_)
temp += _disable_cost_;
- /* Bias against putting larger relation on inside.
+ /*
+ * Bias against putting larger relation on inside.
*
- * Code used to use "outerpages < innerpages" but that has
- * poor resolution when both relations are small.
+ * Code used to use "outerpages < innerpages" but that has poor
+ * resolution when both relations are small.
*/
if (relation_byte_size(outersize, outerwidth) <
relation_byte_size(innersize, innerwidth))
@@ -362,7 +366,8 @@ cost_hashjoin(Cost outercost,
/* cost of main-memory hashtable */
temp += (innerpages < NBuffers) ? innerpages : NBuffers;
- /* if inner relation is too big then we will need to "batch" the join,
+ /*
+ * if inner relation is too big then we will need to "batch" the join,
* which implies writing and reading most of the tuples to disk an
* extra time.
*/
@@ -385,7 +390,7 @@ cost_hashjoin(Cost outercost,
* Returns the size.
*/
int
-compute_rel_size(RelOptInfo *rel)
+compute_rel_size(RelOptInfo * rel)
{
Cost temp;
int temp1;
@@ -408,7 +413,7 @@ compute_rel_size(RelOptInfo *rel)
* Returns the width of the tuple as a fixnum.
*/
int
-compute_rel_width(RelOptInfo *rel)
+compute_rel_width(RelOptInfo * rel)
{
return compute_targetlist_width(get_actual_tlist(rel->targetlist));
}
@@ -470,11 +475,11 @@ compute_joinrel_size(JoinPath *joinpath)
temp *= ((Path *) joinpath->innerjoinpath)->parent->size;
temp = temp * product_selec(joinpath->pathinfo);
- if (temp >= (MAXINT-1)/2)
+ if (temp >= (MAXINT - 1) / 2)
{
/* if we exceed (MAXINT-1)/2, we switch to log scale */
/* +1 prevents log(0) */
- temp1 = ceil(log(temp + 1 - (MAXINT-1)/2) + (MAXINT-1)/2);
+ temp1 = ceil(log(temp + 1 - (MAXINT - 1) / 2) + (MAXINT - 1) / 2);
}
else
temp1 = ceil((double) temp);
@@ -485,13 +490,13 @@ compute_joinrel_size(JoinPath *joinpath)
/*
* relation_byte_size
- * Estimate the storage space in bytes for a given number of tuples
- * of a given width (size in bytes).
- * To avoid overflow with big relations, result is a double.
+ * Estimate the storage space in bytes for a given number of tuples
+ * of a given width (size in bytes).
+ * To avoid overflow with big relations, result is a double.
*/
static double
-relation_byte_size (int tuples, int width)
+relation_byte_size(int tuples, int width)
{
return ((double) tuples) * ((double) (width + sizeof(HeapTupleData)));
}
diff --git a/src/backend/optimizer/path/hashutils.c b/src/backend/optimizer/path/hashutils.c
index f67e4eb8eca..0d4b2326ba4 100644
--- a/src/backend/optimizer/path/hashutils.c
+++ b/src/backend/optimizer/path/hashutils.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.15 1999/04/03 00:18:27 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.16 1999/05/25 16:09:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,7 +30,7 @@ static HashInfo *match_hashop_hashinfo(Oid hashop, List *hashinfo_list);
*
* 'restrictinfo_list' is the list of restrictinfo nodes
* 'inner_relids' is the list of relids in the inner join relation
- * (used to determine whether a join var is inner or outer)
+ * (used to determine whether a join var is inner or outer)
*
* Returns the new list of hashinfo nodes.
*
@@ -84,7 +84,7 @@ group_clauses_by_hashop(List *restrictinfo_list,
}
xhashinfo->jmethod.clauses = lcons(clause,
- xhashinfo->jmethod.clauses);
+ xhashinfo->jmethod.clauses);
xhashinfo->jmethod.jmkeys = lcons(joinkey,
xhashinfo->jmethod.jmkeys);
}
@@ -105,7 +105,7 @@ static HashInfo *
match_hashop_hashinfo(Oid hashop, List *hashinfo_list)
{
Oid key = 0;
- HashInfo *xhashinfo = (HashInfo *) NULL;
+ HashInfo *xhashinfo = (HashInfo *) NULL;
List *i = NIL;
foreach(i, hashinfo_list)
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index 84ef82f3106..29694ed2587 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.54 1999/03/18 19:59:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.55 1999/05/25 16:09:24 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,32 +45,32 @@
#include "utils/lsyscache.h"
-static void match_index_orclauses(RelOptInfo *rel, RelOptInfo *index, int indexkey,
+static void match_index_orclauses(RelOptInfo * rel, RelOptInfo * index, int indexkey,
int xclass, List *restrictinfo_list);
static bool match_index_to_operand(int indexkey, Expr *operand,
- RelOptInfo *rel, RelOptInfo *index);
-static List *match_index_orclause(RelOptInfo *rel, RelOptInfo *index, int indexkey,
+ RelOptInfo * rel, RelOptInfo * index);
+static List *match_index_orclause(RelOptInfo * rel, RelOptInfo * index, int indexkey,
int xclass, List *or_clauses, List *other_matching_indices);
-static List *group_clauses_by_indexkey(RelOptInfo *rel, RelOptInfo *index,
- int *indexkeys, Oid *classes, List *restrictinfo_list);
-static List *group_clauses_by_ikey_for_joins(RelOptInfo *rel, RelOptInfo *index,
+static List *group_clauses_by_indexkey(RelOptInfo * rel, RelOptInfo * index,
+ int *indexkeys, Oid *classes, List *restrictinfo_list);
+static List *group_clauses_by_ikey_for_joins(RelOptInfo * rel, RelOptInfo * index,
int *indexkeys, Oid *classes, List *join_cinfo_list, List *restr_cinfo_list);
-static RestrictInfo *match_clause_to_indexkey(RelOptInfo *rel, RelOptInfo *index, int indexkey,
- int xclass, RestrictInfo *restrictInfo, bool join);
+static RestrictInfo *match_clause_to_indexkey(RelOptInfo * rel, RelOptInfo * index, int indexkey,
+ int xclass, RestrictInfo * restrictInfo, bool join);
static bool pred_test(List *predicate_list, List *restrictinfo_list,
List *joininfo_list);
static bool one_pred_test(Expr *predicate, List *restrictinfo_list);
static bool one_pred_clause_expr_test(Expr *predicate, Node *clause);
static bool one_pred_clause_test(Expr *predicate, Node *clause);
static bool clause_pred_clause_test(Expr *predicate, Node *clause);
-static List *indexable_joinclauses(RelOptInfo *rel, RelOptInfo *index,
+static List *indexable_joinclauses(RelOptInfo * rel, RelOptInfo * index,
List *joininfo_list, List *restrictinfo_list);
-static List *index_innerjoin(Query *root, RelOptInfo *rel,
- List *clausegroup_list, RelOptInfo *index);
-static List *create_index_path_group(Query *root, RelOptInfo *rel, RelOptInfo *index,
- List *clausegroup_list, bool join);
+static List *index_innerjoin(Query *root, RelOptInfo * rel,
+ List *clausegroup_list, RelOptInfo * index);
+static List *create_index_path_group(Query *root, RelOptInfo * rel, RelOptInfo * index,
+ List *clausegroup_list, bool join);
static List *add_index_paths(List *indexpaths, List *new_indexpaths);
-static bool function_index_operand(Expr *funcOpnd, RelOptInfo *rel, RelOptInfo *index);
+static bool function_index_operand(Expr *funcOpnd, RelOptInfo * rel, RelOptInfo * index);
/* find_index_paths()
@@ -100,10 +100,10 @@ static bool function_index_operand(Expr *funcOpnd, RelOptInfo *rel, RelOptInfo *
*/
List *
create_index_paths(Query *root,
- RelOptInfo *rel,
- List *indices,
- List *restrictinfo_list,
- List *joininfo_list)
+ RelOptInfo * rel,
+ List *indices,
+ List *restrictinfo_list,
+ List *joininfo_list)
{
List *scanclausegroups = NIL;
List *scanpaths = NIL;
@@ -127,11 +127,11 @@ create_index_paths(Query *root,
/*
* 1. Try matching the index against subclauses of an 'or' clause.
- * The fields of the restrictinfo nodes are marked with lists of the
- * matching indices. No path are actually created. We currently
- * only look to match the first key. We don't find multi-key
- * index cases where an AND matches the first key, and the OR
- * matches the second key.
+ * The fields of the restrictinfo nodes are marked with lists of
+ * the matching indices. No path are actually created. We
+ * currently only look to match the first key. We don't find
+ * multi-key index cases where an AND matches the first key, and
+ * the OR matches the second key.
*/
match_index_orclauses(rel,
index,
@@ -144,7 +144,7 @@ create_index_paths(Query *root,
* restriction clauses, then create pathnodes corresponding to
* each group of usable clauses.
*/
- scanclausegroups = group_clauses_by_indexkey(rel,
+ scanclausegroups = group_clauses_by_indexkey(rel,
index,
index->indexkeys,
index->classlist,
@@ -153,10 +153,10 @@ create_index_paths(Query *root,
scanpaths = NIL;
if (scanclausegroups != NIL)
scanpaths = create_index_path_group(root,
- rel,
- index,
- scanclausegroups,
- false);
+ rel,
+ index,
+ scanclausegroups,
+ false);
/*
* 3. If this index can be used with any join clause, then create
@@ -171,12 +171,12 @@ create_index_paths(Query *root,
if (joinclausegroups != NIL)
{
joinpaths = create_index_path_group(root, rel,
- index,
- joinclausegroups,
- true);
+ index,
+ joinclausegroups,
+ true);
rel->innerjoin = nconc(rel->innerjoin,
index_innerjoin(root, rel,
- joinclausegroups, index));
+ joinclausegroups, index));
}
/*
@@ -217,8 +217,8 @@ create_index_paths(Query *root,
*
*/
static void
-match_index_orclauses(RelOptInfo *rel,
- RelOptInfo *index,
+match_index_orclauses(RelOptInfo * rel,
+ RelOptInfo * index,
int indexkey,
int xclass,
List *restrictinfo_list)
@@ -238,9 +238,9 @@ match_index_orclauses(RelOptInfo *rel,
* 'index' to the existing list where appropriate.
*/
restrictinfo->indexids = match_index_orclause(rel, index, indexkey,
- xclass,
- restrictinfo->clause->args,
- restrictinfo->indexids);
+ xclass,
+ restrictinfo->clause->args,
+ restrictinfo->indexids);
}
}
}
@@ -253,8 +253,8 @@ match_index_orclauses(RelOptInfo *rel,
static bool
match_index_to_operand(int indexkey,
Expr *operand,
- RelOptInfo *rel,
- RelOptInfo *index)
+ RelOptInfo * rel,
+ RelOptInfo * index)
{
bool result;
@@ -296,8 +296,8 @@ match_index_to_operand(int indexkey,
* match the third, g,h match the fourth, etc.
*/
static List *
-match_index_orclause(RelOptInfo *rel,
- RelOptInfo *index,
+match_index_orclause(RelOptInfo * rel,
+ RelOptInfo * index,
int indexkey,
int xclass,
List *or_clauses,
@@ -325,8 +325,9 @@ match_index_orclause(RelOptInfo *rel,
if (is_opclause(clause))
{
- Expr *left = (Expr *) get_leftop((Expr *) clause);
- Expr *right = (Expr *) get_rightop((Expr *) clause);
+ Expr *left = (Expr *) get_leftop((Expr *) clause);
+ Expr *right = (Expr *) get_rightop((Expr *) clause);
+
if (left && right &&
op_class(((Oper *) ((Expr *) clause)->oper)->opno,
xclass, index->relam) &&
@@ -335,7 +336,7 @@ match_index_orclause(RelOptInfo *rel,
(IsA(left, Const) &&
match_index_to_operand(indexkey, right, rel, index))))
lfirst(matching_indices) = lcons(index,
- lfirst(matching_indices));
+ lfirst(matching_indices));
}
matching_indices = lnext(matching_indices);
@@ -386,8 +387,8 @@ match_index_orclause(RelOptInfo *rel,
*
*/
static List *
-group_clauses_by_indexkey(RelOptInfo *rel,
- RelOptInfo *index,
+group_clauses_by_indexkey(RelOptInfo * rel,
+ RelOptInfo * index,
int *indexkeys,
Oid *classes,
List *restrictinfo_list)
@@ -448,8 +449,8 @@ group_clauses_by_indexkey(RelOptInfo *rel,
*
*/
static List *
-group_clauses_by_ikey_for_joins(RelOptInfo *rel,
- RelOptInfo *index,
+group_clauses_by_ikey_for_joins(RelOptInfo * rel,
+ RelOptInfo * index,
int *indexkeys,
Oid *classes,
List *join_cinfo_list,
@@ -570,11 +571,11 @@ group_clauses_by_ikey_for_joins(RelOptInfo *rel,
*
*/
static RestrictInfo *
-match_clause_to_indexkey(RelOptInfo *rel,
- RelOptInfo *index,
+match_clause_to_indexkey(RelOptInfo * rel,
+ RelOptInfo * index,
int indexkey,
int xclass,
- RestrictInfo *restrictInfo,
+ RestrictInfo * restrictInfo,
bool join)
{
Expr *clause = restrictInfo->clause;
@@ -597,6 +598,7 @@ match_clause_to_indexkey(RelOptInfo *rel,
*/
if (!join)
{
+
/*
* Check for standard s-argable clause
*/
@@ -647,10 +649,10 @@ match_clause_to_indexkey(RelOptInfo *rel,
restrict_op = oprid(newop);
isIndexable = (op_class(restrict_op, xclass, index->relam) &&
- IndexScanableOperand(leftop,
- indexkey,
- rel,
- index));
+ IndexScanableOperand(leftop,
+ indexkey,
+ rel,
+ index));
if (isIndexable)
((Oper *) ((Expr *) clause)->oper)->opno = restrict_op;
@@ -1181,7 +1183,7 @@ clause_pred_clause_test(Expr *predicate, Node *clause)
*
*/
static List *
-indexable_joinclauses(RelOptInfo *rel, RelOptInfo *index,
+indexable_joinclauses(RelOptInfo * rel, RelOptInfo * index,
List *joininfo_list, List *restrictinfo_list)
{
JoinInfo *joininfo = (JoinInfo *) NULL;
@@ -1196,11 +1198,11 @@ indexable_joinclauses(RelOptInfo *rel, RelOptInfo *index,
if (joininfo->jinfo_restrictinfo == NIL)
continue;
clausegroups = group_clauses_by_ikey_for_joins(rel,
- index,
- index->indexkeys,
- index->classlist,
+ index,
+ index->indexkeys,
+ index->classlist,
joininfo->jinfo_restrictinfo,
- restrictinfo_list);
+ restrictinfo_list);
if (clausegroups != NIL)
{
@@ -1253,8 +1255,8 @@ extract_restrict_clauses(List *clausegroup)
*
*/
static List *
-index_innerjoin(Query *root, RelOptInfo *rel, List *clausegroup_list,
- RelOptInfo *index)
+index_innerjoin(Query *root, RelOptInfo * rel, List *clausegroup_list,
+ RelOptInfo * index)
{
List *clausegroup = NIL;
List *cg_list = NIL;
@@ -1289,9 +1291,9 @@ index_innerjoin(Query *root, RelOptInfo *rel, List *clausegroup_list,
pathnode->path.pathtype = T_IndexScan;
pathnode->path.parent = rel;
pathnode->path.pathorder = makeNode(PathOrder);
- pathnode->path.pathorder->ordtype = SORTOP_ORDER;
- pathnode->path.pathorder->ord.sortop = index->ordering;
- pathnode->path.pathkeys = NIL;
+ pathnode->path.pathorder->ordtype = SORTOP_ORDER;
+ pathnode->path.pathorder->ord.sortop = index->ordering;
+ pathnode->path.pathkeys = NIL;
pathnode->indexid = index->relids;
pathnode->indexkeys = index->indexkeys;
@@ -1300,27 +1302,25 @@ index_innerjoin(Query *root, RelOptInfo *rel, List *clausegroup_list,
pathnode->path.joinid = ((RestrictInfo *) lfirst(clausegroup))->restrictinfojoinid;
pathnode->path.path_cost = cost_index((Oid) lfirsti(index->relids),
- (int) temp_pages,
- temp_selec,
- rel->pages,
- rel->tuples,
- index->pages,
- index->tuples,
- true);
+ (int) temp_pages,
+ temp_selec,
+ rel->pages,
+ rel->tuples,
+ index->pages,
+ index->tuples,
+ true);
/*
* copy restrictinfo list into path for expensive function
* processing -- JMH, 7/7/92
*/
pathnode->path.loc_restrictinfo = set_difference(copyObject((Node *) rel->restrictinfo),
- clausegroup);
+ clausegroup);
-#ifdef NOT_USED /* fix xfunc */
+#ifdef NOT_USED /* fix xfunc */
/* add in cost for expensive functions! -- JMH, 7/7/92 */
if (XfuncMode != XFUNC_OFF)
- {
((Path *) pathnode)->path_cost += xfunc_get_path_cost((Path *) pathnode);
- }
#endif
cg_list = lappend(cg_list, pathnode);
}
@@ -1343,10 +1343,10 @@ index_innerjoin(Query *root, RelOptInfo *rel, List *clausegroup_list,
*/
static List *
create_index_path_group(Query *root,
- RelOptInfo *rel,
- RelOptInfo *index,
- List *clausegroup_list,
- bool join)
+ RelOptInfo * rel,
+ RelOptInfo * index,
+ List *clausegroup_list,
+ bool join)
{
List *clausegroup = NIL;
List *ip_list = NIL;
@@ -1366,7 +1366,7 @@ create_index_path_group(Query *root,
restrictinfo = (RestrictInfo *) lfirst(j);
if (!(is_joinable((Node *) restrictinfo->clause) &&
equal_path_merge_ordering(index->ordering,
- restrictinfo->mergejoinorder)))
+ restrictinfo->mergejoinorder)))
temp = false;
}
@@ -1386,7 +1386,7 @@ add_index_paths(List *indexpaths, List *new_indexpaths)
}
static bool
-function_index_operand(Expr *funcOpnd, RelOptInfo *rel, RelOptInfo *index)
+function_index_operand(Expr *funcOpnd, RelOptInfo * rel, RelOptInfo * index)
{
Oid heapRelid = (Oid) lfirsti(rel->relids);
Func *function;
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index 9bb890c6eb1..a6f22c40edc 100644
--- a/src/backend/optimizer/path/joinpath.c
+++ b/src/backend/optimizer/path/joinpath.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.36 1999/05/18 21:36:10 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.37 1999/05/25 16:09:25 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,14 +30,14 @@
* _enable_mergejoin} */
static Path *best_innerjoin(List *join_paths, List *outer_relid);
-static List *sort_inner_and_outer(RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel,
+static List *sort_inner_and_outer(RelOptInfo * joinrel, RelOptInfo * outerrel, RelOptInfo * innerrel,
List *mergeinfo_list);
-static List *match_unsorted_outer(RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel,
+static List *match_unsorted_outer(RelOptInfo * joinrel, RelOptInfo * outerrel, RelOptInfo * innerrel,
List *outerpath_list, Path *cheapest_inner, Path *best_innerjoin,
List *mergeinfo_list);
-static List *match_unsorted_inner(RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel,
+static List *match_unsorted_inner(RelOptInfo * joinrel, RelOptInfo * outerrel, RelOptInfo * innerrel,
List *innerpath_list, List *mergeinfo_list);
-static List *hash_inner_and_outer(RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel,
+static List *hash_inner_and_outer(RelOptInfo * joinrel, RelOptInfo * outerrel, RelOptInfo * innerrel,
List *hashinfo_list);
/*
@@ -119,13 +119,13 @@ update_rels_pathlist_for_joins(Query *root, List *joinrels)
* mergejoins where the outer path is already ordered.
*/
pathlist = add_pathlist(joinrel, pathlist,
- match_unsorted_outer(joinrel,
- outerrel,
- innerrel,
- outerrel->pathlist,
- innerrel->cheapestpath,
- bestinnerjoin,
- mergeinfo_list));
+ match_unsorted_outer(joinrel,
+ outerrel,
+ innerrel,
+ outerrel->pathlist,
+ innerrel->cheapestpath,
+ bestinnerjoin,
+ mergeinfo_list));
/*
* 3. Consider paths where the inner relation need not be
@@ -134,18 +134,18 @@ update_rels_pathlist_for_joins(Query *root, List *joinrels)
* (match_unsorted_outer).
*/
pathlist = add_pathlist(joinrel, pathlist,
- match_unsorted_inner(joinrel, outerrel,
- innerrel,
- innerrel->pathlist,
- mergeinfo_list));
+ match_unsorted_inner(joinrel, outerrel,
+ innerrel,
+ innerrel->pathlist,
+ mergeinfo_list));
/*
* 4. Consider paths where both outer and inner relations must be
* hashed before being joined.
*/
pathlist = add_pathlist(joinrel, pathlist,
- hash_inner_and_outer(joinrel, outerrel,
- innerrel, hashinfo_list));
+ hash_inner_and_outer(joinrel, outerrel,
+ innerrel, hashinfo_list));
joinrel->pathlist = pathlist;
}
@@ -194,9 +194,9 @@ best_innerjoin(List *join_paths, Relids outer_relids)
* Returns a list of mergejoin paths.
*/
static List *
-sort_inner_and_outer(RelOptInfo *joinrel,
- RelOptInfo *outerrel,
- RelOptInfo *innerrel,
+sort_inner_and_outer(RelOptInfo * joinrel,
+ RelOptInfo * outerrel,
+ RelOptInfo * innerrel,
List *mergeinfo_list)
{
List *ms_list = NIL;
@@ -212,28 +212,28 @@ sort_inner_and_outer(RelOptInfo *joinrel,
xmergeinfo = (MergeInfo *) lfirst(i);
outerkeys = make_pathkeys_from_joinkeys(xmergeinfo->jmethod.jmkeys,
- outerrel->targetlist,
- OUTER);
+ outerrel->targetlist,
+ OUTER);
innerkeys = make_pathkeys_from_joinkeys(xmergeinfo->jmethod.jmkeys,
- innerrel->targetlist,
- INNER);
+ innerrel->targetlist,
+ INNER);
merge_pathkeys = new_join_pathkeys(outerkeys, joinrel->targetlist,
- xmergeinfo->jmethod.clauses);
+ xmergeinfo->jmethod.clauses);
temp_node = create_mergejoin_path(joinrel,
- outerrel->size,
- innerrel->size,
- outerrel->width,
- innerrel->width,
- (Path *) outerrel->cheapestpath,
- (Path *) innerrel->cheapestpath,
- merge_pathkeys,
- xmergeinfo->m_ordering,
- xmergeinfo->jmethod.clauses,
- outerkeys,
- innerkeys);
+ outerrel->size,
+ innerrel->size,
+ outerrel->width,
+ innerrel->width,
+ (Path *) outerrel->cheapestpath,
+ (Path *) innerrel->cheapestpath,
+ merge_pathkeys,
+ xmergeinfo->m_ordering,
+ xmergeinfo->jmethod.clauses,
+ outerkeys,
+ innerkeys);
ms_list = lappend(ms_list, temp_node);
}
@@ -268,9 +268,9 @@ sort_inner_and_outer(RelOptInfo *joinrel,
* Returns a list of possible join path nodes.
*/
static List *
-match_unsorted_outer(RelOptInfo *joinrel,
- RelOptInfo *outerrel,
- RelOptInfo *innerrel,
+match_unsorted_outer(RelOptInfo * joinrel,
+ RelOptInfo * outerrel,
+ RelOptInfo * innerrel,
List *outerpath_list,
Path *cheapest_inner,
Path *best_innerjoin,
@@ -298,7 +298,7 @@ match_unsorted_outer(RelOptInfo *joinrel,
if (outerpath_ordering)
xmergeinfo = match_order_mergeinfo(outerpath_ordering,
- mergeinfo_list);
+ mergeinfo_list);
if (xmergeinfo)
clauses = xmergeinfo->jmethod.clauses;
@@ -308,13 +308,13 @@ match_unsorted_outer(RelOptInfo *joinrel,
List *jmkeys = xmergeinfo->jmethod.jmkeys;
order_joinkeys_by_pathkeys(outerpath->pathkeys,
- jmkeys,
- clauses,
- OUTER,
- &matchedJoinKeys,
- &matchedJoinClauses);
- merge_pathkeys = new_join_pathkeys(outerpath->pathkeys,
- joinrel->targetlist, clauses);
+ jmkeys,
+ clauses,
+ OUTER,
+ &matchedJoinKeys,
+ &matchedJoinClauses);
+ merge_pathkeys = new_join_pathkeys(outerpath->pathkeys,
+ joinrel->targetlist, clauses);
}
else
merge_pathkeys = outerpath->pathkeys;
@@ -338,21 +338,21 @@ match_unsorted_outer(RelOptInfo *joinrel,
List *varkeys = NIL;
Path *mergeinnerpath = get_cheapest_path_for_joinkeys(
matchedJoinKeys,
- outerpath_ordering,
- innerrel->pathlist,
- INNER);
+ outerpath_ordering,
+ innerrel->pathlist,
+ INNER);
/* Should we use the mergeinner, or sort the cheapest inner? */
path_is_cheaper_than_sort = (bool) (mergeinnerpath &&
- (mergeinnerpath->path_cost <
- (cheapest_inner->path_cost +
- cost_sort(matchedJoinKeys, innerrel->size,
- innerrel->width))));
+ (mergeinnerpath->path_cost <
+ (cheapest_inner->path_cost +
+ cost_sort(matchedJoinKeys, innerrel->size,
+ innerrel->width))));
if (!path_is_cheaper_than_sort)
{
varkeys = make_pathkeys_from_joinkeys(matchedJoinKeys,
- innerrel->targetlist,
- INNER);
+ innerrel->targetlist,
+ INNER);
}
@@ -368,18 +368,18 @@ match_unsorted_outer(RelOptInfo *joinrel,
mergeinnerpath = cheapest_inner;
temp_node = lcons(create_mergejoin_path(joinrel,
- outerrel->size,
- innerrel->size,
- outerrel->width,
- innerrel->width,
- outerpath,
- mergeinnerpath,
- merge_pathkeys,
- xmergeinfo->m_ordering,
- matchedJoinClauses,
- NIL,
- varkeys),
- paths);
+ outerrel->size,
+ innerrel->size,
+ outerrel->width,
+ innerrel->width,
+ outerpath,
+ mergeinnerpath,
+ merge_pathkeys,
+ xmergeinfo->m_ordering,
+ matchedJoinClauses,
+ NIL,
+ varkeys),
+ paths);
}
else
temp_node = paths;
@@ -389,7 +389,7 @@ match_unsorted_outer(RelOptInfo *joinrel,
}
/*
- * match_unsorted_inner
+ * match_unsorted_inner
* Find the cheapest ordered join path for a given(ordered, unsorted)
* inner join path.
*
@@ -411,9 +411,9 @@ match_unsorted_outer(RelOptInfo *joinrel,
* Returns a list of possible merge paths.
*/
static List *
-match_unsorted_inner(RelOptInfo *joinrel,
- RelOptInfo *outerrel,
- RelOptInfo *innerrel,
+match_unsorted_inner(RelOptInfo * joinrel,
+ RelOptInfo * outerrel,
+ RelOptInfo * innerrel,
List *innerpath_list,
List *mergeinfo_list)
{
@@ -441,11 +441,11 @@ match_unsorted_inner(RelOptInfo *joinrel,
List *jmkeys = xmergeinfo->jmethod.jmkeys;
order_joinkeys_by_pathkeys(innerpath->pathkeys,
- jmkeys,
- clauses,
- INNER,
- &matchedJoinKeys,
- &matchedJoinClauses);
+ jmkeys,
+ clauses,
+ INNER,
+ &matchedJoinKeys,
+ &matchedJoinClauses);
}
/*
@@ -459,29 +459,29 @@ match_unsorted_inner(RelOptInfo *joinrel,
temp1 = outerrel->cheapestpath->path_cost +
cost_sort(matchedJoinKeys, outerrel->size, outerrel->width);
- if (innerpath->outerjoincost <= 0 /* unset? */
+ if (innerpath->outerjoincost <= 0 /* unset? */
|| innerpath->outerjoincost > temp1)
{
List *outerkeys = make_pathkeys_from_joinkeys(matchedJoinKeys,
- outerrel->targetlist,
- OUTER);
+ outerrel->targetlist,
+ OUTER);
List *merge_pathkeys = new_join_pathkeys(outerkeys,
- joinrel->targetlist,
- clauses);
+ joinrel->targetlist,
+ clauses);
mp_list = lappend(mp_list,
create_mergejoin_path(joinrel,
- outerrel->size,
- innerrel->size,
- outerrel->width,
- innerrel->width,
+ outerrel->size,
+ innerrel->size,
+ outerrel->width,
+ innerrel->width,
(Path *) outerrel->cheapestpath,
- innerpath,
- merge_pathkeys,
- xmergeinfo->m_ordering,
- matchedJoinClauses,
- outerkeys,
- NIL));
+ innerpath,
+ merge_pathkeys,
+ xmergeinfo->m_ordering,
+ matchedJoinClauses,
+ outerkeys,
+ NIL));
}
}
}
@@ -503,9 +503,9 @@ match_unsorted_inner(RelOptInfo *joinrel,
* Returns a list of hashjoin paths.
*/
static List *
-hash_inner_and_outer(RelOptInfo *joinrel,
- RelOptInfo *outerrel,
- RelOptInfo *innerrel,
+hash_inner_and_outer(RelOptInfo * joinrel,
+ RelOptInfo * outerrel,
+ RelOptInfo * innerrel,
List *hashinfo_list)
{
List *hjoin_list = NIL;
@@ -520,20 +520,22 @@ hash_inner_and_outer(RelOptInfo *joinrel,
HashPath *temp_node;
outerkeys = make_pathkeys_from_joinkeys(
- ((JoinMethod *) xhashinfo)->jmkeys,
- outerrel->targetlist,
- OUTER);
+ ((JoinMethod *) xhashinfo)->jmkeys,
+ outerrel->targetlist,
+ OUTER);
innerkeys = make_pathkeys_from_joinkeys(
- ((JoinMethod *) xhashinfo)->jmkeys,
- innerrel->targetlist,
- INNER);
- /* We cannot assume that the output of the hashjoin appears in any
+ ((JoinMethod *) xhashinfo)->jmkeys,
+ innerrel->targetlist,
+ INNER);
+
+ /*
+ * We cannot assume that the output of the hashjoin appears in any
* particular order, so it should have NIL pathkeys.
*/
#ifdef NOT_USED
hash_pathkeys = new_join_pathkeys(outerkeys,
- joinrel->targetlist,
- ((JoinMethod *) xhashinfo)->clauses);
+ joinrel->targetlist,
+ ((JoinMethod *) xhashinfo)->clauses);
#else
hash_pathkeys = NIL;
#endif
@@ -547,7 +549,7 @@ hash_inner_and_outer(RelOptInfo *joinrel,
(Path *) innerrel->cheapestpath,
hash_pathkeys,
xhashinfo->hashop,
- ((JoinMethod *) xhashinfo)->clauses,
+ ((JoinMethod *) xhashinfo)->clauses,
outerkeys,
innerkeys);
hjoin_list = lappend(hjoin_list, temp_node);
diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c
index a4e08ca649f..861f3cb2255 100644
--- a/src/backend/optimizer/path/joinrels.c
+++ b/src/backend/optimizer/path/joinrels.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.32 1999/02/22 06:08:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.33 1999/05/25 16:09:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -26,8 +26,8 @@
static List *new_joininfo_list(List *joininfo_list, Relids join_relids);
static bool nonoverlap_sets(List *s1, List *s2);
static bool is_subset(List *s1, List *s2);
-static void set_joinrel_size(RelOptInfo *joinrel, RelOptInfo *outer_rel,
- RelOptInfo *inner_rel, JoinInfo *jinfo);
+static void set_joinrel_size(RelOptInfo * joinrel, RelOptInfo * outer_rel,
+ RelOptInfo * inner_rel, JoinInfo * jinfo);
/*
* make_rels_by_joins
@@ -52,18 +52,19 @@ make_rels_by_joins(Query *root, List *old_rels)
RelOptInfo *old_rel = (RelOptInfo *) lfirst(r);
if (!(joined_rels = make_rels_by_clause_joins(root, old_rel,
- old_rel->joininfo,
- NIL)))
+ old_rel->joininfo,
+ NIL)))
{
+
/*
* Oops, we have a relation that is not joined to any other
* relation. Cartesian product time.
*/
joined_rels = make_rels_by_clauseless_joins(old_rel,
- root->base_rel_list);
+ root->base_rel_list);
joined_rels = nconc(joined_rels,
make_rels_by_clauseless_joins(old_rel,
- old_rels));
+ old_rels));
}
join_list = nconc(join_list, joined_rels);
@@ -88,14 +89,14 @@ make_rels_by_joins(Query *root, List *old_rels)
* Returns a list of new join relations.
*/
List *
-make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel,
- List *joininfo_list, Relids only_relids)
+make_rels_by_clause_joins(Query *root, RelOptInfo * old_rel,
+ List *joininfo_list, Relids only_relids)
{
List *join_list = NIL;
List *i = NIL;
foreach(i, joininfo_list)
- {
+ {
JoinInfo *joininfo = (JoinInfo *) lfirst(i);
RelOptInfo *joined_rel;
Relids unjoined_relids = joininfo->unjoined_relids;
@@ -104,29 +105,29 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel,
{
if (length(unjoined_relids) == 1 &&
(only_relids == NIL ||
- /* geqo only wants certain relids to make new rels */
+ /* geqo only wants certain relids to make new rels */
intMember(lfirsti(unjoined_relids), only_relids)))
{
joined_rel = make_join_rel(old_rel,
- get_base_rel(root,
- lfirsti(unjoined_relids)),
- joininfo);
+ get_base_rel(root,
+ lfirsti(unjoined_relids)),
+ joininfo);
join_list = lappend(join_list, joined_rel);
/* Right-sided plan */
if (length(old_rel->relids) > 1)
{
joined_rel = make_join_rel(
- get_base_rel(root, lfirsti(unjoined_relids)),
- old_rel,
- joininfo);
+ get_base_rel(root, lfirsti(unjoined_relids)),
+ old_rel,
+ joininfo);
join_list = lappend(join_list, joined_rel);
}
}
- if (only_relids == NIL) /* no bushy from geqo */
+ if (only_relids == NIL) /* no bushy from geqo */
{
- List *r;
+ List *r;
foreach(r, root->join_rel_list)
{
@@ -134,11 +135,11 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel,
Assert(length(join_rel->relids) > 1);
if (is_subset(unjoined_relids, join_rel->relids) &&
- nonoverlap_sets(old_rel->relids, join_rel->relids))
+ nonoverlap_sets(old_rel->relids, join_rel->relids))
{
joined_rel = make_join_rel(old_rel,
- join_rel,
- joininfo);
+ join_rel,
+ joininfo);
join_list = lappend(join_list, joined_rel);
}
}
@@ -158,7 +159,7 @@ make_rels_by_clause_joins(Query *root, RelOptInfo *old_rel,
* Returns a list of new join relations.
*/
List *
-make_rels_by_clauseless_joins(RelOptInfo *old_rel, List *inner_rels)
+make_rels_by_clauseless_joins(RelOptInfo * old_rel, List *inner_rels)
{
RelOptInfo *inner_rel;
List *t_list = NIL;
@@ -191,7 +192,7 @@ make_rels_by_clauseless_joins(RelOptInfo *old_rel, List *inner_rels)
* Returns the new join relation node.
*/
RelOptInfo *
-make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo)
+make_join_rel(RelOptInfo * outer_rel, RelOptInfo * inner_rel, JoinInfo * joininfo)
{
RelOptInfo *joinrel = makeNode(RelOptInfo);
List *joinrel_joininfo_list = NIL;
@@ -203,7 +204,7 @@ make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo)
* of the outer and inner join relations and then merging the results
* together.
*/
- new_outer_tlist = new_join_tlist(outer_rel->targetlist, 1);
+ new_outer_tlist = new_join_tlist(outer_rel->targetlist, 1);
new_inner_tlist = new_join_tlist(inner_rel->targetlist,
length(new_outer_tlist) + 1);
@@ -224,8 +225,8 @@ make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo)
joinrel->innerjoin = NIL;
/*
- * This function uses a trick to pass inner/outer rels as
- * different lists, and then flattens it out later. bjm
+ * This function uses a trick to pass inner/outer rels as different
+ * lists, and then flattens it out later. bjm
*/
joinrel->relids = lcons(outer_rel->relids, lcons(inner_rel->relids, NIL));
@@ -236,10 +237,10 @@ make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo)
joinrel->restrictinfo = joininfo->jinfo_restrictinfo;
joinrel_joininfo_list = new_joininfo_list(
- nconc(copyObject(outer_rel->joininfo),
- copyObject(inner_rel->joininfo)),
- nconc(listCopy(outer_rel->relids),
- listCopy(inner_rel->relids)));
+ nconc(copyObject(outer_rel->joininfo),
+ copyObject(inner_rel->joininfo)),
+ nconc(listCopy(outer_rel->relids),
+ listCopy(inner_rel->relids)));
joinrel->joininfo = joinrel_joininfo_list;
@@ -278,12 +279,16 @@ new_join_tlist(List *tlist,
foreach(i, tlist)
{
xtl = lfirst(i);
- /* XXX surely this is wrong? join_list is never changed? tgl 2/99 */
+
+ /*
+ * XXX surely this is wrong? join_list is never changed? tgl
+ * 2/99
+ */
in_final_tlist = (join_list == NIL);
if (in_final_tlist)
{
resdomno += 1;
- t_list = lappend(t_list,create_tl_element(get_expr(xtl), resdomno));
+ t_list = lappend(t_list, create_tl_element(get_expr(xtl), resdomno));
}
}
@@ -335,8 +340,8 @@ new_joininfo_list(List *joininfo_list, Relids join_relids)
if (other_joininfo)
{
other_joininfo->jinfo_restrictinfo = (List *)
- LispUnion(joininfo->jinfo_restrictinfo,
- other_joininfo->jinfo_restrictinfo);
+ LispUnion(joininfo->jinfo_restrictinfo,
+ other_joininfo->jinfo_restrictinfo);
}
else
{
@@ -393,7 +398,7 @@ get_cheapest_complete_rel(List *join_rel_list)
}
if (final)
if (final_rel == NULL ||
- path_is_cheaper(rel->cheapestpath, final_rel->cheapestpath))
+ path_is_cheaper(rel->cheapestpath, final_rel->cheapestpath))
final_rel = rel;
}
@@ -431,7 +436,7 @@ is_subset(List *s1, List *s2)
}
static void
-set_joinrel_size(RelOptInfo *joinrel, RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *jinfo)
+set_joinrel_size(RelOptInfo * joinrel, RelOptInfo * outer_rel, RelOptInfo * inner_rel, JoinInfo * jinfo)
{
int ntuples;
float selec;
diff --git a/src/backend/optimizer/path/mergeutils.c b/src/backend/optimizer/path/mergeutils.c
index a5bc8d96980..8d8255cabb9 100644
--- a/src/backend/optimizer/path/mergeutils.c
+++ b/src/backend/optimizer/path/mergeutils.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.21 1999/04/03 00:18:28 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.22 1999/05/25 16:09:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -37,7 +37,7 @@
*
* 'restrictinfo_list' is the list of restrictinfo nodes
* 'inner_relids' is the list of relids in the inner join relation
- * (used to determine whether a join var is inner or outer)
+ * (used to determine whether a join var is inner or outer)
*
* Returns the new list of mergeinfo nodes.
*
@@ -56,6 +56,7 @@ group_clauses_by_order(List *restrictinfo_list,
if (merge_ordering)
{
+
/*
* Create a new mergeinfo node and add it to 'mergeinfo_list'
* if one does not yet exist for this merge ordering.
@@ -63,8 +64,8 @@ group_clauses_by_order(List *restrictinfo_list,
Expr *clause = restrictinfo->clause;
Var *leftop = get_leftop(clause);
Var *rightop = get_rightop(clause);
- PathOrder *pathorder;
- MergeInfo *xmergeinfo;
+ PathOrder *pathorder;
+ MergeInfo *xmergeinfo;
JoinKey *jmkeys;
pathorder = makeNode(PathOrder);
@@ -91,9 +92,9 @@ group_clauses_by_order(List *restrictinfo_list,
}
xmergeinfo->jmethod.clauses = lcons(clause,
- xmergeinfo->jmethod.clauses);
+ xmergeinfo->jmethod.clauses);
xmergeinfo->jmethod.jmkeys = lcons(jmkeys,
- xmergeinfo->jmethod.jmkeys);
+ xmergeinfo->jmethod.jmkeys);
}
}
return mergeinfo_list;
@@ -108,7 +109,7 @@ group_clauses_by_order(List *restrictinfo_list,
* Returns the node if it exists.
*
*/
-MergeInfo *
+MergeInfo *
match_order_mergeinfo(PathOrder *ordering, List *mergeinfo_list)
{
MergeOrder *xmergeorder;
@@ -116,12 +117,12 @@ match_order_mergeinfo(PathOrder *ordering, List *mergeinfo_list)
foreach(xmergeinfo, mergeinfo_list)
{
- MergeInfo *mergeinfo = (MergeInfo *) lfirst(xmergeinfo);
+ MergeInfo *mergeinfo = (MergeInfo *) lfirst(xmergeinfo);
xmergeorder = mergeinfo->m_ordering;
if ((ordering->ordtype == MERGE_ORDER &&
- equal_merge_ordering(ordering->ord.merge, xmergeorder)) ||
+ equal_merge_ordering(ordering->ord.merge, xmergeorder)) ||
(ordering->ordtype == SORTOP_ORDER &&
equal_path_merge_ordering(ordering->ord.sortop, xmergeorder)))
{
diff --git a/src/backend/optimizer/path/orindxpath.c b/src/backend/optimizer/path/orindxpath.c
index 833d00c82fa..4c257212185 100644
--- a/src/backend/optimizer/path/orindxpath.c
+++ b/src/backend/optimizer/path/orindxpath.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.23 1999/03/08 14:01:55 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.24 1999/05/25 16:09:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -31,10 +31,9 @@
#include "parser/parsetree.h"
-static void
-best_or_subclause_indices(Query *root, RelOptInfo *rel, List *subclauses,
-List *indices, List **indexids, Cost *cost, Cost *selec);
-static void best_or_subclause_index(Query *root, RelOptInfo *rel, Expr *subclause,
+static void best_or_subclause_indices(Query *root, RelOptInfo * rel, List *subclauses,
+ List *indices, List **indexids, Cost *cost, Cost *selec);
+static void best_or_subclause_index(Query *root, RelOptInfo * rel, Expr *subclause,
List *indices, int *indexid, Cost *cost, Cost *selec);
@@ -50,7 +49,7 @@ static void best_or_subclause_index(Query *root, RelOptInfo *rel, Expr *subclaus
*/
List *
create_or_index_paths(Query *root,
- RelOptInfo *rel, List *clauses)
+ RelOptInfo * rel, List *clauses)
{
List *t_list = NIL;
List *clist;
@@ -88,7 +87,7 @@ create_or_index_paths(Query *root,
IndexPath *pathnode = makeNode(IndexPath);
List *indexids = NIL;
Cost cost;
- Cost selec;
+ Cost selec;
best_or_subclause_indices(root,
rel,
@@ -101,14 +100,15 @@ create_or_index_paths(Query *root,
pathnode->path.pathtype = T_IndexScan;
pathnode->path.parent = rel;
pathnode->path.pathorder = makeNode(PathOrder);
- pathnode->path.pathorder->ordtype = SORTOP_ORDER;
- /*
- * This is an IndexScan, but it does index lookups based
- * on the order of the fields specified in the WHERE clause,
- * not in any order, so the sortop is NULL.
+ pathnode->path.pathorder->ordtype = SORTOP_ORDER;
+
+ /*
+ * This is an IndexScan, but it does index lookups based
+ * on the order of the fields specified in the WHERE
+ * clause, not in any order, so the sortop is NULL.
*/
- pathnode->path.pathorder->ord.sortop = NULL;
- pathnode->path.pathkeys = NIL;
+ pathnode->path.pathorder->ord.sortop = NULL;
+ pathnode->path.pathkeys = NIL;
pathnode->indexqual = lcons(clausenode, NIL);
pathnode->indexid = indexids;
@@ -119,14 +119,12 @@ create_or_index_paths(Query *root,
* processing -- JMH, 7/7/92
*/
pathnode->path.loc_restrictinfo = set_difference(copyObject((Node *) rel->restrictinfo),
- lcons(clausenode, NIL));
+ lcons(clausenode, NIL));
-#ifdef NOT_USED /* fix xfunc */
+#ifdef NOT_USED /* fix xfunc */
/* add in cost for expensive functions! -- JMH, 7/7/92 */
if (XfuncMode != XFUNC_OFF)
- {
((Path *) pathnode)->path_cost += xfunc_get_path_cost((Path) pathnode);
- }
#endif
clausenode->selectivity = (Cost) selec;
t_list = lappend(t_list, pathnode);
@@ -158,18 +156,18 @@ create_or_index_paths(Query *root,
*/
static void
best_or_subclause_indices(Query *root,
- RelOptInfo *rel,
+ RelOptInfo * rel,
List *subclauses,
List *indices,
List **indexids, /* return value */
- Cost *cost, /* return value */
- Cost *selec) /* return value */
+ Cost *cost, /* return value */
+ Cost *selec) /* return value */
{
- List *slist;
+ List *slist;
*selec = (Cost) 0.0;
*cost = (Cost) 0.0;
-
+
foreach(slist, subclauses)
{
int best_indexid;
@@ -207,7 +205,7 @@ best_or_subclause_indices(Query *root,
*/
static void
best_or_subclause_index(Query *root,
- RelOptInfo *rel,
+ RelOptInfo * rel,
Expr *subclause,
List *indices,
int *retIndexid, /* return value */
diff --git a/src/backend/optimizer/path/pathkeys.c b/src/backend/optimizer/path/pathkeys.c
index 09a5b8a51f1..eee8a027a83 100644
--- a/src/backend/optimizer/path/pathkeys.c
+++ b/src/backend/optimizer/path/pathkeys.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/pathkeys.c,v 1.9 1999/05/17 00:26:33 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/pathkeys.c,v 1.10 1999/05/25 16:09:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -26,9 +26,9 @@
#include "optimizer/ordering.h"
static int match_pathkey_joinkeys(List *pathkey, List *joinkeys,
- int outer_or_inner);
+ int outer_or_inner);
static List *new_join_pathkey(List *pathkeys, List *join_rel_tlist,
- List *joinclauses);
+ List *joinclauses);
/*--------------------
@@ -41,7 +41,7 @@ static List *new_join_pathkey(List *pathkeys, List *join_rel_tlist,
* of generating the relation and the resulting ordering of the tuples.
* Sequential scan Paths have NIL pathkeys, indicating no known ordering.
* Index scans have Path.pathkeys that represent the chosen index.
- * A single-key index pathkeys would be { {tab1_indexkey1} }. For a
+ * A single-key index pathkeys would be { {tab1_indexkey1} }. For a
* multi-key index pathkeys would be { {tab1_indexkey1}, {tab1_indexkey2} },
* indicating major sort by indexkey1 and minor sort by indexkey2.
*
@@ -70,12 +70,12 @@ static List *new_join_pathkey(List *pathkeys, List *join_rel_tlist,
* executor might have to split the join into multiple batches.
*
* NestJoin does not perform sorting, and allows non-equijoins, so it does
- * not allow useful pathkeys. (But couldn't we use the outer path's order?)
+ * not allow useful pathkeys. (But couldn't we use the outer path's order?)
*
* -- bjm
*--------------------
*/
-
+
/****************************************************************************
* KEY COMPARISONS
****************************************************************************/
@@ -111,11 +111,11 @@ static List *new_join_pathkey(List *pathkeys, List *join_rel_tlist,
*/
bool
order_joinkeys_by_pathkeys(List *pathkeys,
- List *joinkeys,
- List *joinclauses,
- int outer_or_inner,
- List **matchedJoinKeysPtr,
- List **matchedJoinClausesPtr)
+ List *joinkeys,
+ List *joinclauses,
+ int outer_or_inner,
+ List **matchedJoinKeysPtr,
+ List **matchedJoinClausesPtr)
{
List *matched_joinkeys = NIL;
List *matched_joinclauses = NIL;
@@ -123,9 +123,10 @@ order_joinkeys_by_pathkeys(List *pathkeys,
List *i = NIL;
int matched_joinkey_index = -1;
int matched_keys = 0;
+
/*
- * Reorder the joinkeys by picking out one that matches each pathkey,
- * and create a new joinkey/joinclause list in pathkey order
+ * Reorder the joinkeys by picking out one that matches each pathkey,
+ * and create a new joinkey/joinclause list in pathkey order
*/
foreach(i, pathkeys)
{
@@ -138,34 +139,36 @@ order_joinkeys_by_pathkeys(List *pathkeys,
matched_keys++;
if (matchedJoinKeysPtr)
{
- JoinKey *joinkey = nth(matched_joinkey_index, joinkeys);
+ JoinKey *joinkey = nth(matched_joinkey_index, joinkeys);
+
matched_joinkeys = lappend(matched_joinkeys, joinkey);
}
-
+
if (matchedJoinClausesPtr)
{
Expr *joinclause = nth(matched_joinkey_index,
joinclauses);
+
Assert(joinclauses);
matched_joinclauses = lappend(matched_joinclauses, joinclause);
}
}
else
- /* A pathkey could not be matched. */
+ /* A pathkey could not be matched. */
break;
}
/*
- * Did we fail to match all the joinkeys?
- * Extra pathkeys are no problem.
+ * Did we fail to match all the joinkeys? Extra pathkeys are no
+ * problem.
*/
if (matched_keys != length(joinkeys))
{
- if (matchedJoinKeysPtr)
- *matchedJoinKeysPtr = NIL;
- if (matchedJoinClausesPtr)
- *matchedJoinClausesPtr = NIL;
- return false;
+ if (matchedJoinKeysPtr)
+ *matchedJoinKeysPtr = NIL;
+ if (matchedJoinClausesPtr)
+ *matchedJoinClausesPtr = NIL;
+ return false;
}
if (matchedJoinKeysPtr)
@@ -190,7 +193,8 @@ match_pathkey_joinkeys(List *pathkey,
{
Var *key;
int pos;
- List *i, *x;
+ List *i,
+ *x;
JoinKey *jk;
foreach(i, pathkey)
@@ -232,9 +236,9 @@ match_pathkey_joinkeys(List *pathkey,
*/
Path *
get_cheapest_path_for_joinkeys(List *joinkeys,
- PathOrder *ordering,
- List *paths,
- int outer_or_inner)
+ PathOrder *ordering,
+ List *paths,
+ int outer_or_inner)
{
Path *matched_path = NULL;
List *i;
@@ -243,7 +247,7 @@ get_cheapest_path_for_joinkeys(List *joinkeys,
{
Path *path = (Path *) lfirst(i);
int better_sort;
-
+
if (order_joinkeys_by_pathkeys(path->pathkeys, joinkeys, NIL,
outer_or_inner, NULL, NULL) &&
pathorder_match(ordering, path->pathorder, &better_sort) &&
@@ -274,8 +278,8 @@ get_cheapest_path_for_joinkeys(List *joinkeys,
*/
List *
make_pathkeys_from_joinkeys(List *joinkeys,
- List *tlist,
- int outer_or_inner)
+ List *tlist,
+ int outer_or_inner)
{
List *pathkeys = NIL;
List *jk;
@@ -284,7 +288,8 @@ make_pathkeys_from_joinkeys(List *joinkeys,
{
JoinKey *jkey = (JoinKey *) lfirst(jk);
Var *key;
- List *p, *p2;
+ List *p,
+ *p2;
bool found = false;
key = (Var *) extract_join_key(jkey, outer_or_inner);
@@ -292,17 +297,19 @@ make_pathkeys_from_joinkeys(List *joinkeys,
/* check to see if it is in the target list */
if (matching_tlist_var(key, tlist))
{
+
/*
- * Include it in the pathkeys list if we haven't already done so
+ * Include it in the pathkeys list if we haven't already done
+ * so
*/
foreach(p, pathkeys)
{
List *pathkey = lfirst(p);
-
+
foreach(p2, pathkey)
{
Var *pkey = lfirst(p2);
-
+
if (equal(key, pkey))
{
found = true;
@@ -371,7 +378,7 @@ new_join_pathkeys(List *outer_pathkeys,
*
* Note that each returned pathkey is the var node found in
* 'join_rel_tlist' rather than the joinclause var node.
- * (Is this important?) Also, we return a fully copied list
+ * (Is this important?) Also, we return a fully copied list
* that does not share any subnodes with existing data structures.
* (Is that important, either?)
*
@@ -393,7 +400,7 @@ new_join_pathkey(List *pathkey,
Expr *tlist_key;
Assert(key);
-
+
tlist_key = matching_tlist_var(key, join_rel_tlist);
if (tlist_key && !member(tlist_key, new_pathkey))
new_pathkey = lcons(copyObject(tlist_key), new_pathkey);
@@ -404,8 +411,8 @@ new_join_pathkey(List *pathkey,
Expr *tlist_other_var;
tlist_other_var = matching_tlist_var(
- other_join_clause_var(key, joinclause),
- join_rel_tlist);
+ other_join_clause_var(key, joinclause),
+ join_rel_tlist);
if (tlist_other_var && !member(tlist_other_var, new_pathkey))
new_pathkey = lcons(copyObject(tlist_other_var), new_pathkey);
}
diff --git a/src/backend/optimizer/path/prune.c b/src/backend/optimizer/path/prune.c
index 3d60c09f6cc..da52363cc87 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.37 1999/02/18 00:49:21 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.38 1999/05/25 16:09:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,7 +24,7 @@
#include "utils/elog.h"
-static List *merge_rel_with_same_relids(RelOptInfo *rel, Relids unjoined_relids);
+static List *merge_rel_with_same_relids(RelOptInfo * rel, Relids unjoined_relids);
/*
* merge_rels_with_same_relids
@@ -59,7 +59,7 @@ merge_rels_with_same_relids(List *rel_list)
*
*/
static List *
-merge_rel_with_same_relids(RelOptInfo *rel, Relids unjoined_relids)
+merge_rel_with_same_relids(RelOptInfo * rel, Relids unjoined_relids)
{
List *i = NIL;
List *result = NIL;
@@ -69,9 +69,10 @@ merge_rel_with_same_relids(RelOptInfo *rel, Relids unjoined_relids)
RelOptInfo *unjoined_rel = (RelOptInfo *) lfirst(i);
if (same(rel->relids, unjoined_rel->relids))
+
/*
- * This are on the same relations,
- * so get the best of their pathlists.
+ * This are on the same relations, so get the best of their
+ * pathlists.
*/
rel->pathlist = add_pathlist(rel,
rel->pathlist,
@@ -92,7 +93,7 @@ rels_set_cheapest(List *rel_list)
{
List *x = NIL;
RelOptInfo *rel = (RelOptInfo *) NULL;
- JoinPath *cheapest;
+ JoinPath *cheapest;
foreach(x, rel_list)
{
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index d228f9d058d..c72d31ca10a 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.55 1999/05/18 21:34:29 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.56 1999/05/25 16:09:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,18 +42,18 @@
#define NONAME_SORT 1
-#define NONAME_MATERIAL 2
+#define NONAME_MATERIAL 2
static List *switch_outer(List *clauses);
static Oid *generate_merge_input_sortorder(List *pathkeys,
- MergeOrder *mergeorder);
+ MergeOrder *mergeorder);
static Scan *create_scan_node(Path *best_path, List *tlist);
static Join *create_join_node(JoinPath *best_path, List *tlist);
static SeqScan *create_seqscan_node(Path *best_path, List *tlist,
List *scan_clauses);
static IndexScan *create_indexscan_node(IndexPath *best_path, List *tlist,
List *scan_clauses);
-static NestLoop *create_nestloop_node(NestPath *best_path, List *tlist,
+static NestLoop *create_nestloop_node(NestPath * best_path, List *tlist,
List *clauses, Plan *outer_node, List *outer_tlist,
Plan *inner_node, List *inner_tlist);
static MergeJoin *create_mergejoin_node(MergePath *best_path, List *tlist,
@@ -64,7 +64,7 @@ static HashJoin *create_hashjoin_node(HashPath *best_path, List *tlist,
Plan *inner_node, List *inner_tlist);
static Node *fix_indxqual_references(Node *clause, Path *index_path);
static Noname *make_noname(List *tlist, List *pathkeys, Oid *operators,
- Plan *plan_node, int nonametype);
+ Plan *plan_node, int nonametype);
static IndexScan *make_indexscan(List *qptlist, List *qpqual, Index scanrelid,
List *indxid, List *indxqual, List *indxqualorig);
static NestLoop *make_nestloop(List *qptlist, List *qpqual, Plan *lefttree,
@@ -133,7 +133,7 @@ create_plan(Path *best_path)
pages = 1;
plan_node->plan_tupperpage = tuples / pages;
-#ifdef NOT_USED /* fix xfunc */
+#ifdef NOT_USED /* fix xfunc */
/* sort clauses by cost/(1-selectivity) -- JMH 2/26/92 */
if (XfuncMode != XFUNC_OFF)
{
@@ -197,7 +197,7 @@ create_scan_node(Path *best_path, List *tlist)
}
/*
- * create_join_node
+ * create_join_node
* Create a join path for 'best_path' and(recursively) paths for its
* inner and outer paths.
*
@@ -263,7 +263,7 @@ create_join_node(JoinPath *best_path, List *tlist)
/*
* * Expensive function pullups may have pulled local predicates *
- * into this path node. Put them in the qpqual of the plan node. *
+ * into this path node. Put them in the qpqual of the plan node. *
* JMH, 6/15/92
*/
if (get_loc_restrictinfo(best_path) != NIL)
@@ -400,11 +400,11 @@ create_indexscan_node(IndexPath *best_path,
fixed_indxqual = (List *) fix_indxqual_references((Node *) indxqual, (Path *) best_path);
scan_node = make_indexscan(tlist,
- qpqual,
- lfirsti(best_path->path.parent->relids),
- best_path->indexid,
- fixed_indxqual,
- indxqual);
+ qpqual,
+ lfirsti(best_path->path.parent->relids),
+ best_path->indexid,
+ fixed_indxqual,
+ indxqual);
scan_node->scan.plan.cost = best_path->path.path_cost;
@@ -418,7 +418,7 @@ create_indexscan_node(IndexPath *best_path,
*****************************************************************************/
static NestLoop *
-create_nestloop_node(NestPath *best_path,
+create_nestloop_node(NestPath * best_path,
List *tlist,
List *clauses,
Plan *outer_node,
@@ -471,7 +471,7 @@ create_nestloop_node(NestPath *best_path,
clauses = set_difference(clauses, inner_indxqual); /* XXX */
new_inner_qual = index_outerjoin_references(inner_indxqual,
- outer_node->targetlist,
+ outer_node->targetlist,
((Scan *) inner_node)->scanrelid);
((IndexScan *) inner_node)->indxqual = lcons(new_inner_qual, NIL);
}
@@ -479,10 +479,10 @@ create_nestloop_node(NestPath *best_path,
else if (IsA_Join(inner_node))
{
inner_node = (Plan *) make_noname(inner_tlist,
- NIL,
- NULL,
- inner_node,
- NONAME_MATERIAL);
+ NIL,
+ NULL,
+ inner_node,
+ NONAME_MATERIAL);
}
join_node = make_nestloop(tlist,
@@ -535,8 +535,9 @@ create_mergejoin_node(MergePath *best_path,
if (best_path->outersortkeys)
{
Oid *outer_order = generate_merge_input_sortorder(
- best_path->outersortkeys,
- best_path->jpath.path.pathorder->ord.merge);
+ best_path->outersortkeys,
+ best_path->jpath.path.pathorder->ord.merge);
+
outer_node = (Plan *) make_noname(outer_tlist,
best_path->outersortkeys,
outer_order,
@@ -547,8 +548,9 @@ create_mergejoin_node(MergePath *best_path,
if (best_path->innersortkeys)
{
Oid *inner_order = generate_merge_input_sortorder(
- best_path->innersortkeys,
- best_path->jpath.path.pathorder->ord.merge);
+ best_path->innersortkeys,
+ best_path->jpath.path.pathorder->ord.merge);
+
inner_node = (Plan *) make_noname(inner_tlist,
best_path->innersortkeys,
inner_order,
@@ -595,17 +597,17 @@ create_hashjoin_node(HashPath *best_path,
* and set those clauses to contain references to lower attributes.
*/
qpqual = join_references(set_difference(clauses,
- best_path->path_hashclauses),
- outer_tlist,
- inner_tlist);
+ best_path->path_hashclauses),
+ outer_tlist,
+ inner_tlist);
/*
* Now set the references in the hashclauses and rearrange them so
* that the outer variable is always on the left.
*/
hashclauses = switch_outer(join_references(best_path->path_hashclauses,
- outer_tlist,
- inner_tlist));
+ outer_tlist,
+ inner_tlist));
innerhashkey = get_rightop(lfirst(hashclauses));
@@ -671,20 +673,22 @@ fix_indxqual_references(Node *clause, Path *index_path)
is_funcclause((Node *) get_leftop((Expr *) clause)) &&
((Func *) ((Expr *) get_leftop((Expr *) clause))->oper)->funcisindex)
{
- /* This looks pretty seriously wrong to me, but I'm not sure what it's
- * supposed to be doing ... tgl 5/99
+
+ /*
+ * This looks pretty seriously wrong to me, but I'm not sure what
+ * it's supposed to be doing ... tgl 5/99
*/
Var *newvar = makeVar((Index) lfirsti(index_path->parent->relids),
- 1, /* func indices have one key */
- ((Func *) ((Expr *) clause)->oper)->functype,
- -1,
- 0,
- (Index) lfirsti(index_path->parent->relids),
- 0);
+ 1, /* func indices have one key */
+ ((Func *) ((Expr *) clause)->oper)->functype,
+ -1,
+ 0,
+ (Index) lfirsti(index_path->parent->relids),
+ 0);
return ((Node *) make_opclause((Oper *) ((Expr *) clause)->oper,
- newvar,
- get_rightop((Expr *) clause)));
+ newvar,
+ get_rightop((Expr *) clause)));
}
else if (IsA(clause, Expr))
@@ -696,6 +700,7 @@ fix_indxqual_references(Node *clause, Path *index_path)
foreach(i, expr->args)
{
Node *subclause = lfirst(i);
+
new_subclauses = lappend(new_subclauses,
fix_indxqual_references(subclause,
index_path));
@@ -711,6 +716,7 @@ fix_indxqual_references(Node *clause, Path *index_path)
foreach(i, (List *) clause)
{
Node *subclause = lfirst(i);
+
new_subclauses = lappend(new_subclauses,
fix_indxqual_references(subclause,
index_path));
@@ -768,15 +774,17 @@ switch_outer(List *clauses)
foreach(i, clauses)
{
clause = lfirst(i);
- Assert(is_opclause((Node*) clause));
+ Assert(is_opclause((Node *) clause));
op = (Node *) get_rightop(clause);
- Assert(op != (Node*) NULL);
+ Assert(op != (Node *) NULL);
if (IsA(op, ArrayRef))
op = ((ArrayRef *) op)->refexpr;
Assert(IsA(op, Var));
if (var_is_outer((Var *) op))
{
- /* Duplicate just enough of the structure to allow commuting
+
+ /*
+ * Duplicate just enough of the structure to allow commuting
* the clause without changing the original list. Could use
* copyObject, but a complete deep copy is overkill.
*/
@@ -812,13 +820,14 @@ static Oid *
generate_merge_input_sortorder(List *pathkeys, MergeOrder *mergeorder)
{
int listlength = length(pathkeys);
- Oid *result = (Oid*) palloc(sizeof(Oid) * (listlength+1));
+ Oid *result = (Oid *) palloc(sizeof(Oid) * (listlength + 1));
Oid *nextsortop = result;
List *p;
foreach(p, pathkeys)
{
- Var *pkey = (Var*) lfirst((List*) lfirst(p));
+ Var *pkey = (Var *) lfirst((List *) lfirst(p));
+
Assert(IsA(pkey, Var));
if (pkey->vartype == mergeorder->left_type)
*nextsortop++ = mergeorder->left_operator;
@@ -826,7 +835,7 @@ generate_merge_input_sortorder(List *pathkeys, MergeOrder *mergeorder)
*nextsortop++ = mergeorder->right_operator;
else
elog(ERROR,
- "generate_merge_input_sortorder: can't handle data type %d",
+ "generate_merge_input_sortorder: can't handle data type %d",
pkey->vartype);
}
*nextsortop++ = InvalidOid;
@@ -859,12 +868,13 @@ set_noname_tlist_operators(List *tlist, List *pathkeys, Oid *operators)
resdom = tlist_member((Var *) pathkey, tlist);
if (resdom)
{
+
/*
- * Order the resdom pathkey and replace the operator OID for each
- * key with the regproc OID.
+ * Order the resdom pathkey and replace the operator OID for
+ * each key with the regproc OID.
*/
resdom->reskey = keyno;
- resdom->reskeyop = get_opcode(operators[keyno-1]);
+ resdom->reskeyop = get_opcode(operators[keyno - 1]);
}
keyno += 1;
}
@@ -878,7 +888,7 @@ set_noname_tlist_operators(List *tlist, List *pathkeys, Oid *operators)
*/
static void
-copy_costsize (Plan *dest, Plan *src)
+copy_costsize(Plan *dest, Plan *src)
{
if (src)
{
@@ -915,10 +925,10 @@ copy_costsize (Plan *dest, Plan *src)
*/
static Noname *
make_noname(List *tlist,
- List *pathkeys,
- Oid *operators,
- Plan *plan_node,
- int nonametype)
+ List *pathkeys,
+ Oid *operators,
+ Plan *plan_node,
+ int nonametype)
{
List *noname_tlist;
Noname *retval = NULL;
@@ -931,22 +941,22 @@ make_noname(List *tlist,
{
case NONAME_SORT:
retval = (Noname *) make_seqscan(tlist,
- NIL,
- _NONAME_RELATION_ID_,
- (Plan *) make_sort(noname_tlist,
- _NONAME_RELATION_ID_,
- plan_node,
- length(pathkeys)));
+ NIL,
+ _NONAME_RELATION_ID_,
+ (Plan *) make_sort(noname_tlist,
+ _NONAME_RELATION_ID_,
+ plan_node,
+ length(pathkeys)));
break;
case NONAME_MATERIAL:
retval = (Noname *) make_seqscan(tlist,
- NIL,
- _NONAME_RELATION_ID_,
- (Plan *) make_material(noname_tlist,
- _NONAME_RELATION_ID_,
- plan_node,
- length(pathkeys)));
+ NIL,
+ _NONAME_RELATION_ID_,
+ (Plan *) make_material(noname_tlist,
+ _NONAME_RELATION_ID_,
+ plan_node,
+ length(pathkeys)));
break;
default:
@@ -1014,8 +1024,9 @@ make_nestloop(List *qptlist,
NestLoop *node = makeNode(NestLoop);
Plan *plan = &node->join;
- /* this cost estimate is entirely bogus...
- * hopefully it will be overwritten by caller.
+ /*
+ * this cost estimate is entirely bogus... hopefully it will be
+ * overwritten by caller.
*/
plan->cost = (lefttree ? lefttree->cost : 0) +
(righttree ? righttree->cost : 0);
@@ -1039,8 +1050,9 @@ make_hashjoin(List *tlist,
HashJoin *node = makeNode(HashJoin);
Plan *plan = &node->join;
- /* this cost estimate is entirely bogus...
- * hopefully it will be overwritten by caller.
+ /*
+ * this cost estimate is entirely bogus... hopefully it will be
+ * overwritten by caller.
*/
plan->cost = (lefttree ? lefttree->cost : 0) +
(righttree ? righttree->cost : 0);
@@ -1082,8 +1094,9 @@ make_mergejoin(List *tlist,
MergeJoin *node = makeNode(MergeJoin);
Plan *plan = &node->join;
- /* this cost estimate is entirely bogus...
- * hopefully it will be overwritten by caller.
+ /*
+ * this cost estimate is entirely bogus... hopefully it will be
+ * overwritten by caller.
*/
plan->cost = (lefttree ? lefttree->cost : 0) +
(righttree ? righttree->cost : 0);
@@ -1142,7 +1155,7 @@ make_agg(List *tlist, Plan *lefttree)
{
Agg *node = makeNode(Agg);
- copy_costsize(& node->plan, lefttree);
+ copy_costsize(&node->plan, lefttree);
node->plan.state = (EState *) NULL;
node->plan.qual = NULL;
node->plan.targetlist = tlist;
@@ -1162,7 +1175,7 @@ make_group(List *tlist,
{
Group *node = makeNode(Group);
- copy_costsize(& node->plan, (Plan *) lefttree);
+ copy_costsize(&node->plan, (Plan *) lefttree);
node->plan.state = (EState *) NULL;
node->plan.qual = NULL;
node->plan.targetlist = tlist;
diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c
index 0b54bd8c4bc..592f6e02031 100644
--- a/src/backend/optimizer/plan/initsplan.c
+++ b/src/backend/optimizer/plan/initsplan.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.29 1999/02/22 05:26:21 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.30 1999/05/25 16:09:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -40,7 +40,7 @@
extern int Quiet;
static void add_restrict_and_join_to_rel(Query *root, List *clause);
-static void add_join_info_to_rels(Query *root, RestrictInfo *restrictinfo,
+static void add_join_info_to_rels(Query *root, RestrictInfo * restrictinfo,
Relids join_relids);
static void add_vars_to_targetlist(Query *root, List *vars, Relids join_relids);
@@ -183,6 +183,7 @@ add_restrict_and_join_to_rel(Query *root, List *clause)
if (length(relids) == 1)
{
+
/*
* There is only one relation participating in 'clause', so
* 'clause' must be a restriction clause.
@@ -207,11 +208,13 @@ add_restrict_and_join_to_rel(Query *root, List *clause)
}
else
{
+
/*
* 'clause' is a join clause, since there is more than one atom in
* the relid list.
*/
if (is_funcclause((Node *) clause))
+
/*
* XXX If we have a func clause set selectivity to 1/3, really
* need a true selectivity function.
@@ -237,8 +240,8 @@ add_restrict_and_join_to_rel(Query *root, List *clause)
*
*/
static void
-add_join_info_to_rels(Query *root, RestrictInfo *restrictinfo,
- Relids join_relids)
+add_join_info_to_rels(Query *root, RestrictInfo * restrictinfo,
+ Relids join_relids)
{
List *join_relid;
@@ -247,7 +250,7 @@ add_join_info_to_rels(Query *root, RestrictInfo *restrictinfo,
{
JoinInfo *joininfo;
Relids unjoined_relids = NIL;
- List *rel;
+ List *rel;
/* Get the relids not equal to the current relid */
foreach(rel, join_relids)
@@ -259,7 +262,7 @@ add_join_info_to_rels(Query *root, RestrictInfo *restrictinfo,
joininfo = find_joininfo_node(get_base_rel(root, lfirsti(join_relid)),
unjoined_relids);
joininfo->jinfo_restrictinfo = lcons(copyObject((void *) restrictinfo),
- joininfo->jinfo_restrictinfo);
+ joininfo->jinfo_restrictinfo);
}
}
@@ -375,7 +378,7 @@ mergejoinop(Expr *clause)
rightOp;
bool sortable;
- if (!is_opclause((Node*) clause))
+ if (!is_opclause((Node *) clause))
return NULL;
left = get_leftop(clause);
@@ -384,7 +387,7 @@ mergejoinop(Expr *clause)
/* caution: is_opclause accepts more than I do, so check it */
if (!right)
return NULL; /* unary opclauses need not apply */
- if (!IsA(left, Var) || !IsA(right, Var))
+ if (!IsA(left, Var) ||!IsA(right, Var))
return NULL;
opno = ((Oper *) clause->oper)->opno;
@@ -422,7 +425,7 @@ hashjoinop(Expr *clause)
Var *left,
*right;
- if (!is_opclause((Node*) clause))
+ if (!is_opclause((Node *) clause))
return InvalidOid;
left = get_leftop(clause);
@@ -431,7 +434,7 @@ hashjoinop(Expr *clause)
/* caution: is_opclause accepts more than I do, so check it */
if (!right)
return InvalidOid; /* unary opclauses need not apply */
- if (!IsA(left, Var) || !IsA(right, Var))
+ if (!IsA(left, Var) ||!IsA(right, Var))
return InvalidOid;
return op_hashjoinable(((Oper *) clause->oper)->opno,
diff --git a/src/backend/optimizer/plan/planmain.c b/src/backend/optimizer/plan/planmain.c
index 0708e963b4b..dae0443e1e8 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.35 1999/05/03 00:38:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.36 1999/05/25 16:09:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -154,7 +154,7 @@ query_planner(Query *root,
else
return (Plan *) scan;
}
- break;
+ break;
default:
return (Plan *) NULL;
}
@@ -195,9 +195,9 @@ query_planner(Query *root,
* tree. -- Wei
*
* Note: formerly there was a test here to skip the flatten call if we
- * expected union_planner to insert a Group or Agg node above our result.
- * However, now union_planner tells us exactly what it wants returned,
- * and we just do it. Much cleaner.
+ * expected union_planner to insert a Group or Agg node above our
+ * result. However, now union_planner tells us exactly what it wants
+ * returned, and we just do it. Much cleaner.
*/
else
{
@@ -207,6 +207,7 @@ query_planner(Query *root,
}
#ifdef NOT_USED
+
/*
* Destructively modify the query plan's targetlist to add fjoin lists
* to flatten functions that return sets of base types
@@ -251,7 +252,7 @@ subplanner(Query *root,
final_rel = make_one_rel(root, root->base_rel_list);
-#ifdef NOT_USED /* fix xfunc */
+#ifdef NOT_USED /* fix xfunc */
/*
* Perform Predicate Migration on each path, to optimize and correctly
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 86977028f7b..65327a12631 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.53 1999/05/17 17:03:15 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.54 1999/05/25 16:09:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,10 +56,10 @@
#include "parser/parse_oper.h"
static List *make_subplanTargetList(Query *parse, List *tlist,
- AttrNumber **groupColIdx);
+ AttrNumber **groupColIdx);
static Plan *make_groupplan(List *group_tlist, bool tuplePerGroup,
- List *groupClause, AttrNumber *grpColIdx,
- Plan *subplan);
+ List *groupClause, AttrNumber *grpColIdx,
+ Plan *subplan);
static bool need_sortplan(List *sortcls, Plan *plan);
static Plan *make_sortplan(List *tlist, List *sortcls, Plan *plannode);
@@ -113,12 +113,12 @@ union_planner(Query *parse)
if (parse->unionClause)
{
- result_plan = (Plan *) plan_union_queries(parse);
- /* XXX do we need to do this? bjm 12/19/97 */
- tlist = preprocess_targetlist(tlist,
- parse->commandType,
- parse->resultRelation,
- parse->rtable);
+ result_plan = (Plan *) plan_union_queries(parse);
+ /* XXX do we need to do this? bjm 12/19/97 */
+ tlist = preprocess_targetlist(tlist,
+ parse->commandType,
+ parse->resultRelation,
+ parse->rtable);
}
else if ((rt_index = first_inherit_rt_entry(rangetable)) != -1)
{
@@ -127,78 +127,80 @@ union_planner(Query *parse)
result_plan = (Plan *) plan_inherit_queries(parse, rt_index);
/* XXX do we need to do this? bjm 12/19/97 */
tlist = preprocess_targetlist(tlist,
- parse->commandType,
- parse->resultRelation,
- parse->rtable);
+ parse->commandType,
+ parse->resultRelation,
+ parse->rtable);
}
else
{
- List **vpm = NULL;
- List *sub_tlist;
+ List **vpm = NULL;
+ List *sub_tlist;
- /* Preprocess targetlist in case we are inside an INSERT/UPDATE. */
- tlist = preprocess_targetlist(tlist,
- parse->commandType,
- parse->resultRelation,
- parse->rtable);
+ /* Preprocess targetlist in case we are inside an INSERT/UPDATE. */
+ tlist = preprocess_targetlist(tlist,
+ parse->commandType,
+ parse->resultRelation,
+ parse->rtable);
- /* Add row-mark targets for UPDATE
- * (should this be done in preprocess_targetlist?)
- */
- if (parse->rowMark != NULL)
- {
- List *l;
+ /*
+ * Add row-mark targets for UPDATE (should this be done in
+ * preprocess_targetlist?)
+ */
+ if (parse->rowMark != NULL)
+ {
+ List *l;
+
+ foreach(l, parse->rowMark)
+ {
+ RowMark *rowmark = (RowMark *) lfirst(l);
+ TargetEntry *ctid;
+ Resdom *resdom;
+ Var *var;
+ char *resname;
+
+ if (!(rowmark->info & ROW_MARK_FOR_UPDATE))
+ continue;
+
+ resname = (char *) palloc(32);
+ sprintf(resname, "ctid%u", rowmark->rti);
+ resdom = makeResdom(length(tlist) + 1,
+ TIDOID,
+ -1,
+ resname,
+ 0,
+ 0,
+ true);
+
+ var = makeVar(rowmark->rti, -1, TIDOID,
+ -1, 0, rowmark->rti, -1);
+
+ ctid = makeTargetEntry(resdom, (Node *) var);
+ tlist = lappend(tlist, ctid);
+ }
+ }
+
+ /*
+ * Generate appropriate target list for subplan; may be different
+ * from tlist if grouping or aggregation is needed.
+ */
+ sub_tlist = make_subplanTargetList(parse, tlist, &groupColIdx);
- foreach (l, parse->rowMark)
+ /* Generate the (sub) plan */
+ if (parse->rtable != NULL)
{
- RowMark *rowmark = (RowMark*) lfirst(l);
- TargetEntry *ctid;
- Resdom *resdom;
- Var *var;
- char *resname;
-
- if (!(rowmark->info & ROW_MARK_FOR_UPDATE))
- continue;
-
- resname = (char*) palloc(32);
- sprintf(resname, "ctid%u", rowmark->rti);
- resdom = makeResdom(length(tlist) + 1,
- TIDOID,
- -1,
- resname,
- 0,
- 0,
- true);
-
- var = makeVar(rowmark->rti, -1, TIDOID,
- -1, 0, rowmark->rti, -1);
-
- ctid = makeTargetEntry(resdom, (Node *) var);
- tlist = lappend(tlist, ctid);
+ vpm = (List **) palloc(length(parse->rtable) * sizeof(List *));
+ memset(vpm, 0, length(parse->rtable) * sizeof(List *));
}
- }
-
- /* Generate appropriate target list for subplan; may be different
- * from tlist if grouping or aggregation is needed.
- */
- sub_tlist = make_subplanTargetList(parse, tlist, &groupColIdx);
-
- /* Generate the (sub) plan */
- if (parse->rtable != NULL)
- {
- vpm = (List **) palloc(length(parse->rtable) * sizeof(List *));
- memset(vpm, 0, length(parse->rtable) * sizeof(List *));
- }
- PlannerVarParam = lcons(vpm, PlannerVarParam);
- result_plan = query_planner(parse,
- parse->commandType,
- sub_tlist,
- (List *) parse->qual);
- PlannerVarParam = lnext(PlannerVarParam);
- if (vpm != NULL)
- pfree(vpm);
+ PlannerVarParam = lcons(vpm, PlannerVarParam);
+ result_plan = query_planner(parse,
+ parse->commandType,
+ sub_tlist,
+ (List *) parse->qual);
+ PlannerVarParam = lnext(PlannerVarParam);
+ if (vpm != NULL)
+ pfree(vpm);
}
-
+
/*
* If we have a GROUP BY clause, insert a group node (with the
* appropriate sort node.)
@@ -216,7 +218,8 @@ union_planner(Query *parse)
*/
tuplePerGroup = parse->hasAggs;
- /* If there are aggregates then the Group node should just return
+ /*
+ * If there are aggregates then the Group node should just return
* the same (simplified) tlist as the subplan, which we indicate
* to make_groupplan by passing NIL. If there are no aggregates
* then the Group node had better compute the final tlist.
@@ -235,7 +238,7 @@ union_planner(Query *parse)
*/
if (parse->havingQual)
{
- List **vpm = NULL;
+ List **vpm = NULL;
if (parse->rtable != NULL)
{
@@ -249,15 +252,20 @@ union_planner(Query *parse)
if (parse->hasSubLinks)
{
- /* There is a subselect in the havingQual, so we have to process it
- * using the same function as for a subselect in 'where'
+
+ /*
+ * There is a subselect in the havingQual, so we have to
+ * process it using the same function as for a subselect in
+ * 'where'
*/
parse->havingQual =
(Node *) SS_process_sublinks(parse->havingQual);
- /* Check for ungrouped variables passed to subplans.
- * (Probably this should be done by the parser, but right now
- * the parser is not smart enough to tell which level the vars
- * belong to?)
+
+ /*
+ * Check for ungrouped variables passed to subplans. (Probably
+ * this should be done by the parser, but right now the parser
+ * is not smart enough to tell which level the vars belong
+ * to?)
*/
check_having_for_ungrouped_vars(parse->havingQual,
parse->groupClause,
@@ -269,7 +277,7 @@ union_planner(Query *parse)
PlannerVarParam = lnext(PlannerVarParam);
if (vpm != NULL)
- pfree(vpm);
+ pfree(vpm);
}
/*
@@ -283,22 +291,22 @@ union_planner(Query *parse)
result_plan->qual = (List *) parse->havingQual;
/*
- * Update vars to refer to subplan result tuples,
- * find Aggrefs, make sure there is an Aggref in every HAVING clause.
+ * Update vars to refer to subplan result tuples, find Aggrefs,
+ * make sure there is an Aggref in every HAVING clause.
*/
- if (! set_agg_tlist_references((Agg *) result_plan))
+ if (!set_agg_tlist_references((Agg *) result_plan))
elog(ERROR, "SELECT/HAVING requires aggregates to be valid");
/*
* Check that we actually found some aggregates, else executor
* will die unpleasantly. (The rewrite module currently has bugs
- * that allow hasAggs to be incorrectly set 'true' sometimes.
- * It's not easy to recover here, since we've already made decisions
+ * that allow hasAggs to be incorrectly set 'true' sometimes. It's
+ * not easy to recover here, since we've already made decisions
* assuming there will be an Agg node.)
*/
if (((Agg *) result_plan)->aggs == NIL)
elog(ERROR, "union_planner: query is marked hasAggs, but I don't see any");
- }
+ }
/*
* For now, before we hand back the plan, check to see if there is a
@@ -363,7 +371,7 @@ union_planner(Query *parse)
* SELECT a+1, ... GROUP BY a+1
* Note, however, that other varnodes in the parent's targetlist (and
* havingQual, if any) will still need to be updated to refer to outputs
- * of the subplan. This routine is quite large enough already, so we do
+ * of the subplan. This routine is quite large enough already, so we do
* that later.
*---------------
*/
@@ -384,13 +392,15 @@ make_subplanTargetList(Query *parse,
*groupColIdx = NULL;
- /* If we're not grouping or aggregating, nothing to do here;
+ /*
+ * If we're not grouping or aggregating, nothing to do here;
* query_planner should receive the unmodified target list.
*/
if (!parse->hasAggs && !parse->groupClause && !parse->havingQual)
return tlist;
- /* If grouping, make a working copy of groupClause list (which we use
+ /*
+ * If grouping, make a working copy of groupClause list (which we use
* just to verify that we found all the groupClause items in tlist).
* Also allocate space to remember where the group columns are in the
* subplan tlist.
@@ -403,14 +413,14 @@ make_subplanTargetList(Query *parse,
*groupColIdx = grpColIdx;
}
- sub_tlist = new_unsorted_tlist(tlist); /* make a modifiable copy */
+ sub_tlist = new_unsorted_tlist(tlist); /* make a modifiable copy */
/*
* Step 1: build grpColIdx by finding targetlist items that match
* GroupBy entries. If there are aggregates, remove non-GroupBy items
* from sub_tlist, and reset its resnos accordingly. When we leave an
- * expression in the subplan tlist, modify the parent tlist to copy the
- * value from the subplan output rather than re-evaluating it.
+ * expression in the subplan tlist, modify the parent tlist to copy
+ * the value from the subplan output rather than re-evaluating it.
*/
prnt_tlist = tlist; /* scans parent tlist in sync with sl */
foreach(sl, sub_tlist)
@@ -434,23 +444,28 @@ make_subplanTargetList(Query *parse,
resdom->reskey = keyno;
resdom->reskeyop = get_opcode(grpcl->grpOpoid);
grpColIdx[keyno - 1] = next_resno;
- /* Remove groupclause from our list of unmatched groupclauses.
- * NB: this depends on having used a shallow listCopy() above.
+
+ /*
+ * Remove groupclause from our list of unmatched
+ * groupclauses. NB: this depends on having used a shallow
+ * listCopy() above.
*/
- glc = lremove((void*) grpcl, glc);
+ glc = lremove((void *) grpcl, glc);
break;
}
}
- if (! foundGroupClause)
+ if (!foundGroupClause)
{
+
/*
* Non-GroupBy entry: remove it from subplan if there are
- * aggregates in query - it will be evaluated by Aggregate plan.
- * But do not remove simple-Var entries; we'd just have to add
- * them back anyway, and we risk confusing INSERT/UPDATE.
+ * aggregates in query - it will be evaluated by Aggregate
+ * plan. But do not remove simple-Var entries; we'd just have
+ * to add them back anyway, and we risk confusing
+ * INSERT/UPDATE.
*/
- if (parse->hasAggs && ! IsA(te->expr, Var))
+ if (parse->hasAggs && !IsA(te->expr, Var))
keepInSubPlan = false;
}
@@ -458,15 +473,16 @@ make_subplanTargetList(Query *parse,
{
/* Assign new sequential resnos to subplan tlist items */
resdom->resno = next_resno++;
- if (! IsA(parentte->expr, Var))
+ if (!IsA(parentte->expr, Var))
{
- /* Since the item is being computed in the subplan,
- * we can just make a Var node to reference it in the
- * outer plan, rather than recomputing it there.
- * Note we use varnoold = -1 as a flag to let
- * replace_vars_with_subplan_refs know it needn't change
- * this Var node.
- * If it's only a Var anyway, we leave it alone for now;
+
+ /*
+ * Since the item is being computed in the subplan, we can
+ * just make a Var node to reference it in the outer plan,
+ * rather than recomputing it there. Note we use varnoold
+ * = -1 as a flag to let replace_vars_with_subplan_refs
+ * know it needn't change this Var node. If it's only a
+ * Var anyway, we leave it alone for now;
* replace_vars_with_subplan_refs will fix it later.
*/
parentte->expr = (Node *) makeVar(1, resdom->resno,
@@ -477,9 +493,11 @@ make_subplanTargetList(Query *parse,
}
else
{
- /* Remove this tlist item from the subplan, but remember the
- * vars it needs. The outer tlist item probably needs changes,
- * but that will happen later.
+
+ /*
+ * Remove this tlist item from the subplan, but remember the
+ * vars it needs. The outer tlist item probably needs
+ * changes, but that will happen later.
*/
sub_tlist = lremove(te, sub_tlist);
extravars = nconc(extravars, pull_var_clause(te->expr));
@@ -493,8 +511,8 @@ make_subplanTargetList(Query *parse,
elog(ERROR, "make_subplanTargetList: GROUP BY attribute not found in target list");
/*
- * Add subplan targets for any variables needed by removed tlist entries
- * that aren't otherwise mentioned in the subplan target list.
+ * Add subplan targets for any variables needed by removed tlist
+ * entries that aren't otherwise mentioned in the subplan target list.
* We'll also need targets for any variables seen only in HAVING.
*/
extravars = nconc(extravars, pull_var_clause(parse->havingQual));
@@ -505,9 +523,11 @@ make_subplanTargetList(Query *parse,
if (tlist_member(v, sub_tlist) == NULL)
{
- /* Make sure sub_tlist element is a fresh object not shared with
- * any other structure; not sure if anything will break if it is
- * shared, but better to be safe...
+
+ /*
+ * Make sure sub_tlist element is a fresh object not shared
+ * with any other structure; not sure if anything will break
+ * if it is shared, but better to be safe...
*/
sub_tlist = lappend(sub_tlist,
create_tl_element((Var *) copyObject(v),
@@ -535,9 +555,9 @@ make_groupplan(List *group_tlist,
/*
* Make the targetlist for the Sort node; it always just references
* each of the corresponding target items of the subplan. We need to
- * ensure that simple Vars in the subplan's target list are recognizable
- * by replace_vars_with_subplan_refs when it's applied to the Sort/Group
- * target list, so copy up their varnoold/varoattno.
+ * ensure that simple Vars in the subplan's target list are
+ * recognizable by replace_vars_with_subplan_refs when it's applied to
+ * the Sort/Group target list, so copy up their varnoold/varoattno.
*/
sort_tlist = NIL;
foreach(sl, subplan->targetlist)
@@ -548,7 +568,8 @@ make_groupplan(List *group_tlist,
if (IsA(te->expr, Var))
{
- Var *subvar = (Var *) te->expr;
+ Var *subvar = (Var *) te->expr;
+
newvar = makeVar(1, resdom->resno,
resdom->restype, resdom->restypmod,
0, subvar->varnoold, subvar->varoattno);
@@ -561,8 +582,8 @@ make_groupplan(List *group_tlist,
}
sort_tlist = lappend(sort_tlist,
- makeTargetEntry((Resdom *) copyObject(resdom),
- (Node *) newvar));
+ makeTargetEntry((Resdom *) copyObject(resdom),
+ (Node *) newvar));
}
/*
@@ -575,20 +596,19 @@ make_groupplan(List *group_tlist,
sortplan->plan.cost = subplan->cost; /* XXX assume no cost */
/*
- * If the caller gave us a target list, use it after fixing the variables.
- * If not, we need the same sort of "repeater" tlist as for the Sort node.
+ * If the caller gave us a target list, use it after fixing the
+ * variables. If not, we need the same sort of "repeater" tlist as for
+ * the Sort node.
*/
if (group_tlist)
{
- group_tlist = copyObject(group_tlist); /* necessary?? */
+ group_tlist = copyObject(group_tlist); /* necessary?? */
replace_tlist_with_subplan_refs(group_tlist,
(Index) 0,
subplan->targetlist);
}
else
- {
group_tlist = copyObject(sort_tlist);
- }
/*
* Make the Group node
@@ -686,7 +706,7 @@ pg_checkretval(Oid rettype, List *queryTreeList)
int i;
/* find the final query */
- parse = (Query *) nth(length(queryTreeList)-1, queryTreeList);
+ parse = (Query *) nth(length(queryTreeList) - 1, queryTreeList);
/*
* test 1: if the last query is a utility invocation, then there had
@@ -787,7 +807,7 @@ pg_checkretval(Oid rettype, List *queryTreeList)
tlist = lnext(tlist);
tletype = exprType(thenode);
-#ifdef NOT_USED /* fix me */
+#ifdef NOT_USED /* fix me */
/* this is tedious */
if (IsA(thenode, Var))
tletype = (Oid) ((Var *) thenode)->vartype;
@@ -830,11 +850,12 @@ pg_checkretval(Oid rettype, List *queryTreeList)
static TargetEntry *
get_matching_tle(Plan *plan, Resdom *resdom)
{
- List *i;
- TargetEntry *tle;
+ List *i;
+ TargetEntry *tle;
- foreach (i, plan->targetlist) {
- tle = (TargetEntry *)lfirst(i);
+ foreach(i, plan->targetlist)
+ {
+ tle = (TargetEntry *) lfirst(i);
if (tle->resdom->resno == resdom->resno)
return tle;
}
@@ -853,50 +874,45 @@ static bool
need_sortplan(List *sortcls, Plan *plan)
{
Relation indexRel;
- IndexScan *indexScan;
- Oid indexId;
- List *i;
+ IndexScan *indexScan;
+ Oid indexId;
+ List *i;
HeapTuple htup;
- Form_pg_index index_tup;
- int key_no = 0;
+ Form_pg_index index_tup;
+ int key_no = 0;
/* ----------
* Must be an IndexScan
* ----------
*/
- if (nodeTag(plan) != T_IndexScan) {
+ if (nodeTag(plan) != T_IndexScan)
return TRUE;
- }
- indexScan = (IndexScan *)plan;
+ indexScan = (IndexScan *) plan;
/* ----------
* Should not have left- or righttree
* ----------
*/
- if (plan->lefttree != NULL) {
+ if (plan->lefttree != NULL)
return TRUE;
- }
- if (plan->righttree != NULL) {
+ if (plan->righttree != NULL)
return TRUE;
- }
/* ----------
* Must be a single index scan
* ----------
*/
- if (length(indexScan->indxid) != 1) {
+ if (length(indexScan->indxid) != 1)
return TRUE;
- }
/* ----------
* Indices can only have up to 8 attributes. So an ORDER BY using
* more that 8 attributes could never be satisfied by an index.
* ----------
*/
- if (length(sortcls) > 8) {
+ if (length(sortcls) > 8)
return TRUE;
- }
/* ----------
* The choosen Index must be a btree
@@ -905,7 +921,8 @@ need_sortplan(List *sortcls, Plan *plan)
indexId = lfirsti(indexScan->indxid);
indexRel = index_open(indexId);
- if (strcmp(nameout(&(indexRel->rd_am->amname)), "btree") != 0) {
+ if (strcmp(nameout(&(indexRel->rd_am->amname)), "btree") != 0)
+ {
heap_close(indexRel);
return TRUE;
}
@@ -916,34 +933,36 @@ need_sortplan(List *sortcls, Plan *plan)
* ----------
*/
htup = SearchSysCacheTuple(INDEXRELID,
- ObjectIdGetDatum(indexId), 0, 0, 0);
- if (!HeapTupleIsValid(htup)) {
+ ObjectIdGetDatum(indexId), 0, 0, 0);
+ if (!HeapTupleIsValid(htup))
elog(ERROR, "cache lookup for index %u failed", indexId);
- }
index_tup = (Form_pg_index) GETSTRUCT(htup);
/* ----------
* Check if all the sort clauses match the attributes in the index
* ----------
*/
- foreach (i, sortcls) {
- SortClause *sortcl;
- Resdom *resdom;
- TargetEntry *tle;
- Var *var;
+ foreach(i, sortcls)
+ {
+ SortClause *sortcl;
+ Resdom *resdom;
+ TargetEntry *tle;
+ Var *var;
sortcl = (SortClause *) lfirst(i);
resdom = sortcl->resdom;
tle = get_matching_tle(plan, resdom);
- if (tle == NULL) {
+ if (tle == NULL)
+ {
/* ----------
* Could this happen?
* ----------
*/
return TRUE;
}
- if (nodeTag(tle->expr) != T_Var) {
+ if (nodeTag(tle->expr) != T_Var)
+ {
/* ----------
* The target list expression isn't a var, so it
* cannot be the indexed attribute
@@ -951,9 +970,10 @@ need_sortplan(List *sortcls, Plan *plan)
*/
return TRUE;
}
- var = (Var *)(tle->expr);
+ var = (Var *) (tle->expr);
- if (var->varno != indexScan->scan.scanrelid) {
+ if (var->varno != indexScan->scan.scanrelid)
+ {
/* ----------
* This Var isn't from the scan relation. So it isn't
* that of the index
@@ -962,7 +982,8 @@ need_sortplan(List *sortcls, Plan *plan)
return TRUE;
}
- if (var->varattno != index_tup->indkey[key_no]) {
+ if (var->varattno != index_tup->indkey[key_no])
+ {
/* ----------
* It isn't the indexed attribute.
* ----------
@@ -970,7 +991,8 @@ need_sortplan(List *sortcls, Plan *plan)
return TRUE;
}
- if (oprid(oper("<", resdom->restype, resdom->restype, FALSE)) != sortcl->opoid) {
+ if (oprid(oper("<", resdom->restype, resdom->restype, FALSE)) != sortcl->opoid)
+ {
/* ----------
* Sort order isn't in ascending order.
* ----------
@@ -987,4 +1009,3 @@ need_sortplan(List *sortcls, Plan *plan)
*/
return FALSE;
}
-
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index ee3250080ce..31d1205a45c 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.46 1999/05/12 15:01:39 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.47 1999/05/25 16:09:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,13 +35,13 @@
static void set_join_tlist_references(Join *join);
static void set_nonamescan_tlist_references(SeqScan *nonamescan);
-static void set_noname_tlist_references(Noname *noname);
+static void set_noname_tlist_references(Noname * noname);
static Node *replace_clause_joinvar_refs(Node *clause,
- List *outer_tlist,
- List *inner_tlist);
+ List *outer_tlist,
+ List *inner_tlist);
static Var *replace_joinvar_refs(Var *var,
- List *outer_tlist,
- List *inner_tlist);
+ List *outer_tlist,
+ List *inner_tlist);
static List *tlist_noname_references(Oid nonameid, List *tlist);
static bool OperandIsInner(Node *opnd, int inner_relid);
static List *pull_agg_clause(Node *clause);
@@ -114,11 +114,12 @@ set_join_tlist_references(Join *join)
foreach(entry, qptlist)
{
TargetEntry *xtl = (TargetEntry *) lfirst(entry);
- Node *joinvar = replace_clause_joinvar_refs(xtl->expr,
- outer_tlist,
- inner_tlist);
+ Node *joinvar = replace_clause_joinvar_refs(xtl->expr,
+ outer_tlist,
+ inner_tlist);
+
new_join_targetlist = lappend(new_join_targetlist,
- makeTargetEntry(xtl->resdom, joinvar));
+ makeTargetEntry(xtl->resdom, joinvar));
}
((Plan *) join)->targetlist = new_join_targetlist;
@@ -144,7 +145,7 @@ set_nonamescan_tlist_references(SeqScan *nonamescan)
Noname *noname = (Noname *) ((Plan *) nonamescan)->lefttree;
((Plan *) nonamescan)->targetlist = tlist_noname_references(noname->nonameid,
- ((Plan *) nonamescan)->targetlist);
+ ((Plan *) nonamescan)->targetlist);
set_noname_tlist_references(noname);
}
@@ -160,7 +161,7 @@ set_nonamescan_tlist_references(SeqScan *nonamescan)
*
*/
static void
-set_noname_tlist_references(Noname *noname)
+set_noname_tlist_references(Noname * noname)
{
Plan *source = ((Plan *) noname)->lefttree;
@@ -168,7 +169,7 @@ set_noname_tlist_references(Noname *noname)
{
set_tlist_references(source);
((Plan *) noname)->targetlist = copy_vars(((Plan *) noname)->targetlist,
- (source)->targetlist);
+ (source)->targetlist);
}
else
elog(ERROR, "calling set_noname_tlist_references with empty lefttree");
@@ -235,9 +236,9 @@ index_outerjoin_references(List *inner_indxqual,
if (OperandIsInner((Node *) get_rightop(clause), inner_relid))
{
Var *joinvar = (Var *)
- replace_clause_joinvar_refs((Node *) get_leftop(clause),
- outer_tlist,
- NIL);
+ replace_clause_joinvar_refs((Node *) get_leftop(clause),
+ outer_tlist,
+ NIL);
temp = make_opclause(replace_opid((Oper *) ((Expr *) clause)->oper),
joinvar,
@@ -248,9 +249,9 @@ index_outerjoin_references(List *inner_indxqual,
{
/* inner scan on left */
Var *joinvar = (Var *)
- replace_clause_joinvar_refs((Node *) get_rightop(clause),
- outer_tlist,
- NIL);
+ replace_clause_joinvar_refs((Node *) get_rightop(clause),
+ outer_tlist,
+ NIL);
temp = make_opclause(replace_opid((Oper *) ((Expr *) clause)->oper),
get_leftop(clause),
@@ -290,8 +291,9 @@ replace_clause_joinvar_refs(Node *clause,
return NULL;
if (IsA(clause, Var))
{
- Var *temp = replace_joinvar_refs((Var *) clause,
- outer_tlist, inner_tlist);
+ Var *temp = replace_joinvar_refs((Var *) clause,
+ outer_tlist, inner_tlist);
+
if (temp != NULL)
return (Node *) temp;
else
@@ -344,32 +346,32 @@ replace_clause_joinvar_refs(Node *clause,
else if (is_funcclause(clause))
{
return (Node *) make_funcclause(
- (Func *) ((Expr *) clause)->oper,
- (List *) replace_clause_joinvar_refs(
- (Node *) ((Expr *) clause)->args,
- outer_tlist,
- inner_tlist));
+ (Func *) ((Expr *) clause)->oper,
+ (List *) replace_clause_joinvar_refs(
+ (Node *) ((Expr *) clause)->args,
+ outer_tlist,
+ inner_tlist));
}
else if (not_clause(clause))
{
return (Node *) make_notclause((Expr *)
- replace_clause_joinvar_refs(
- (Node *) get_notclausearg((Expr *) clause),
- outer_tlist,
- inner_tlist));
+ replace_clause_joinvar_refs(
+ (Node *) get_notclausearg((Expr *) clause),
+ outer_tlist,
+ inner_tlist));
}
else if (is_opclause(clause))
{
return (Node *) make_opclause(
- replace_opid((Oper *) ((Expr *) clause)->oper),
- (Var *) replace_clause_joinvar_refs(
- (Node *) get_leftop((Expr *) clause),
- outer_tlist,
- inner_tlist),
- (Var *) replace_clause_joinvar_refs(
- (Node *) get_rightop((Expr *) clause),
- outer_tlist,
- inner_tlist));
+ replace_opid((Oper *) ((Expr *) clause)->oper),
+ (Var *) replace_clause_joinvar_refs(
+ (Node *) get_leftop((Expr *) clause),
+ outer_tlist,
+ inner_tlist),
+ (Var *) replace_clause_joinvar_refs(
+ (Node *) get_rightop((Expr *) clause),
+ outer_tlist,
+ inner_tlist));
}
else if (IsA(clause, List))
{
@@ -379,25 +381,26 @@ replace_clause_joinvar_refs(Node *clause,
foreach(subclause, (List *) clause)
{
t_list = lappend(t_list,
- replace_clause_joinvar_refs(lfirst(subclause),
- outer_tlist,
- inner_tlist));
+ replace_clause_joinvar_refs(lfirst(subclause),
+ outer_tlist,
+ inner_tlist));
}
return (Node *) t_list;
}
else if (is_subplan(clause))
{
/* This is a tad wasteful of space, but it works... */
- Expr *newclause = (Expr *) copyObject(clause);
+ Expr *newclause = (Expr *) copyObject(clause);
+
newclause->args = (List *)
replace_clause_joinvar_refs((Node *) newclause->args,
outer_tlist,
inner_tlist);
((SubPlan *) newclause->oper)->sublink->oper = (List *)
replace_clause_joinvar_refs(
- (Node *) ((SubPlan *) newclause->oper)->sublink->oper,
- outer_tlist,
- inner_tlist);
+ (Node *) ((SubPlan *) newclause->oper)->sublink->oper,
+ outer_tlist,
+ inner_tlist);
return (Node *) newclause;
}
else if (IsA(clause, CaseExpr))
@@ -406,7 +409,8 @@ replace_clause_joinvar_refs(Node *clause,
CaseExpr *newnode = makeNode(CaseExpr);
newnode->casetype = oldnode->casetype;
- newnode->arg = oldnode->arg; /* XXX should always be null anyway ... */
+ newnode->arg = oldnode->arg; /* XXX should always be null
+ * anyway ... */
newnode->args = (List *)
replace_clause_joinvar_refs((Node *) oldnode->args,
outer_tlist,
@@ -494,7 +498,7 @@ replace_joinvar_refs(Var *var, List *outer_tlist, List *inner_tlist)
*/
static List *
tlist_noname_references(Oid nonameid,
- List *tlist)
+ List *tlist)
{
List *t_list = NIL;
TargetEntry *noname = (TargetEntry *) NULL;
@@ -512,13 +516,13 @@ tlist_noname_references(Oid nonameid,
oattno = 0;
noname = makeTargetEntry(xtl->resdom,
- (Node *) makeVar(nonameid,
- xtl->resdom->resno,
- xtl->resdom->restype,
- xtl->resdom->restypmod,
- 0,
- nonameid,
- oattno));
+ (Node *) makeVar(nonameid,
+ xtl->resdom->resno,
+ xtl->resdom->restype,
+ xtl->resdom->restypmod,
+ 0,
+ nonameid,
+ oattno));
t_list = lappend(t_list, noname);
}
@@ -573,11 +577,12 @@ replace_tlist_with_subplan_refs(List *tlist,
Index subvarno,
List *subplanTargetList)
{
- List *t;
+ List *t;
foreach(t, tlist)
{
TargetEntry *entry = (TargetEntry *) lfirst(t);
+
replace_vars_with_subplan_refs((Node *) get_expr(entry),
subvarno, subplanTargetList);
}
@@ -609,19 +614,20 @@ replace_vars_with_subplan_refs(Node *clause,
return;
if (IsA(clause, Var))
{
+
/*
* Ha! A Var node!
*
* It could be that this varnode has been created by make_groupplan
- * and is already set up to reference the subplan target list.
- * We recognize that case by varno = 1, varnoold = -1,
- * varattno = varoattno, and varlevelsup = 0. (Probably ought to
- * have an explicit flag, but this should do for now.)
+ * and is already set up to reference the subplan target list. We
+ * recognize that case by varno = 1, varnoold = -1, varattno =
+ * varoattno, and varlevelsup = 0. (Probably ought to have an
+ * explicit flag, but this should do for now.)
*/
- Var *var = (Var *) clause;
+ Var *var = (Var *) clause;
TargetEntry *subplanVar;
- if (var->varno == (Index) 1 &&
+ if (var->varno == (Index) 1 &&
var->varnoold == ((Index) -1) &&
var->varattno == var->varoattno &&
var->varlevelsup == 0)
@@ -629,7 +635,7 @@ replace_vars_with_subplan_refs(Node *clause,
/* Otherwise it had better be in the subplan list. */
subplanVar = match_varid(var, subplanTargetList);
- if (! subplanVar)
+ if (!subplanVar)
elog(ERROR, "replace_vars_with_subplan_refs: variable not in target list");
/*
@@ -656,10 +662,11 @@ replace_vars_with_subplan_refs(Node *clause,
}
else if (IsA(clause, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(t, ((Expr *) clause)->args)
replace_vars_with_subplan_refs(lfirst(t),
@@ -671,6 +678,7 @@ replace_vars_with_subplan_refs(Node *clause,
else if (IsA(clause, ArrayRef))
{
ArrayRef *aref = (ArrayRef *) clause;
+
foreach(t, aref->refupperindexpr)
replace_vars_with_subplan_refs(lfirst(t),
subvarno, subplanTargetList);
@@ -687,6 +695,7 @@ replace_vars_with_subplan_refs(Node *clause,
foreach(t, ((CaseExpr *) clause)->args)
{
CaseWhen *when = (CaseWhen *) lfirst(t);
+
replace_vars_with_subplan_refs(when->expr,
subvarno, subplanTargetList);
replace_vars_with_subplan_refs(when->result,
@@ -767,15 +776,16 @@ set_agg_tlist_references(Agg *aggNode)
all_quals_ok = true;
foreach(ql, aggNode->plan.qual)
{
- Node *qual = lfirst(ql);
- List *qualaggs;
+ Node *qual = lfirst(ql);
+ List *qualaggs;
replace_vars_with_subplan_refs(qual,
(Index) 0,
subplanTargetList);
qualaggs = pull_agg_clause(qual);
if (qualaggs == NIL)
- all_quals_ok = false; /* this qual clause has no agg functions! */
+ all_quals_ok = false; /* this qual clause has no agg
+ * functions! */
else
aggNode->aggs = nconc(qualaggs, aggNode->aggs);
}
@@ -800,7 +810,7 @@ pull_agg_clause(Node *clause)
return pull_agg_clause(((Iter *) clause)->iterexpr);
else if (is_subplan(clause))
{
- SubLink *sublink = ((SubPlan *) ((Expr *) clause)->oper)->sublink;
+ SubLink *sublink = ((SubPlan *) ((Expr *) clause)->oper)->sublink;
/*
* Only the lefthand side of the sublink should be checked for
@@ -814,10 +824,11 @@ pull_agg_clause(Node *clause)
}
else if (IsA(clause, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(t, ((Expr *) clause)->args)
agg_list = nconc(pull_agg_clause(lfirst(t)), agg_list);
@@ -830,6 +841,7 @@ pull_agg_clause(Node *clause)
else if (IsA(clause, ArrayRef))
{
ArrayRef *aref = (ArrayRef *) clause;
+
foreach(t, aref->refupperindexpr)
agg_list = nconc(pull_agg_clause(lfirst(t)), agg_list);
foreach(t, aref->reflowerindexpr)
@@ -842,6 +854,7 @@ pull_agg_clause(Node *clause)
foreach(t, ((CaseExpr *) clause)->args)
{
CaseWhen *when = (CaseWhen *) lfirst(t);
+
agg_list = nconc(agg_list, pull_agg_clause(when->expr));
agg_list = nconc(agg_list, pull_agg_clause(when->result));
}
@@ -951,7 +964,7 @@ del_agg_clause(Node *clause)
* GROUP BY clauses and checks for subplans in the havingQual that are being
* passed ungrouped variables as parameters. In other contexts, ungrouped
* vars in the havingQual will be detected by the parser (see parse_agg.c,
- * exprIsAggOrGroupCol()). But that routine currently does not check subplans,
+ * exprIsAggOrGroupCol()). But that routine currently does not check subplans,
* because the necessary info is not computed until the planner runs.
* This ought to be cleaned up someday.
*
@@ -962,7 +975,7 @@ del_agg_clause(Node *clause)
void
check_having_for_ungrouped_vars(Node *clause, List *groupClause,
- List *targetList)
+ List *targetList)
{
List *t;
@@ -971,8 +984,10 @@ check_having_for_ungrouped_vars(Node *clause, List *groupClause,
if (IsA(clause, Var))
{
- /* Ignore vars elsewhere in the having clause, since the
- * parser already checked 'em.
+
+ /*
+ * Ignore vars elsewhere in the having clause, since the parser
+ * already checked 'em.
*/
}
else if (single_node(clause))
@@ -986,20 +1001,21 @@ check_having_for_ungrouped_vars(Node *clause, List *groupClause,
}
else if (is_subplan(clause))
{
+
/*
- * The args list of the subplan node represents attributes from outside
- * passed into the sublink.
+ * The args list of the subplan node represents attributes from
+ * outside passed into the sublink.
*/
foreach(t, ((Expr *) clause)->args)
{
- bool contained_in_group_clause = false;
+ bool contained_in_group_clause = false;
List *gl;
foreach(gl, groupClause)
{
if (var_equal(lfirst(t),
- get_groupclause_expr((GroupClause *)
- lfirst(gl), targetList)))
+ get_groupclause_expr((GroupClause *)
+ lfirst(gl), targetList)))
{
contained_in_group_clause = true;
break;
@@ -1012,23 +1028,25 @@ check_having_for_ungrouped_vars(Node *clause, List *groupClause,
}
else if (IsA(clause, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(t, ((Expr *) clause)->args)
check_having_for_ungrouped_vars(lfirst(t), groupClause,
- targetList);
+ targetList);
}
else if (IsA(clause, List))
{
+
/*
* Recursively scan AND subclauses (see NOTE above).
*/
foreach(t, ((List *) clause))
check_having_for_ungrouped_vars(lfirst(t), groupClause,
- targetList);
+ targetList);
}
else if (IsA(clause, Aggref))
{
@@ -1045,24 +1063,25 @@ check_having_for_ungrouped_vars(Node *clause, List *groupClause,
*/
foreach(t, aref->refupperindexpr)
check_having_for_ungrouped_vars(lfirst(t), groupClause,
- targetList);
+ targetList);
foreach(t, aref->reflowerindexpr)
check_having_for_ungrouped_vars(lfirst(t), groupClause,
- targetList);
+ targetList);
check_having_for_ungrouped_vars(aref->refexpr, groupClause,
- targetList);
+ targetList);
check_having_for_ungrouped_vars(aref->refassgnexpr, groupClause,
- targetList);
+ targetList);
}
else if (case_clause(clause))
{
foreach(t, ((CaseExpr *) clause)->args)
{
CaseWhen *when = (CaseWhen *) lfirst(t);
+
check_having_for_ungrouped_vars(when->expr, groupClause,
- targetList);
+ targetList);
check_having_for_ungrouped_vars(when->result, groupClause,
- targetList);
+ targetList);
}
check_having_for_ungrouped_vars(((CaseExpr *) clause)->defresult,
groupClause, targetList);
diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c
index a4b67ba6e0e..82eb2efceb9 100644
--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -338,9 +338,7 @@ SS_replace_correlation_vars(Node *expr)
}
}
else if (IsA(expr, Iter))
- {
((Iter *) expr)->iterexpr = SS_replace_correlation_vars(((Iter *) expr)->iterexpr);
- }
else if (single_node(expr))
return expr;
else if (or_clause(expr) || and_clause(expr) || is_opclause(expr) ||
@@ -398,9 +396,7 @@ SS_process_sublinks(Node *expr)
((Expr *) expr)->args = (List *)
SS_process_sublinks((Node *) ((Expr *) expr)->args);
else if (IsA(expr, SubLink))/* got it! */
- {
expr = _make_subplan((SubLink *) expr);
- }
return expr;
}
@@ -529,13 +525,13 @@ SS_pull_subplan(Node *expr)
return SS_pull_subplan(((Aggref *) expr)->target);
else if (IsA(expr, ArrayRef))
{
- result = SS_pull_subplan((Node *)((ArrayRef *) expr)->refupperindexpr);
+ result = SS_pull_subplan((Node *) ((ArrayRef *) expr)->refupperindexpr);
result = nconc(result,
- SS_pull_subplan((Node*) ((ArrayRef *) expr)->reflowerindexpr));
+ SS_pull_subplan((Node *) ((ArrayRef *) expr)->reflowerindexpr));
result = nconc(result,
SS_pull_subplan(((ArrayRef *) expr)->refexpr));
result = nconc(result,
- SS_pull_subplan(((ArrayRef *) expr)->refassgnexpr));
+ SS_pull_subplan(((ArrayRef *) expr)->refassgnexpr));
}
else if (IsA(expr, TargetEntry))
return SS_pull_subplan(((TargetEntry *) expr)->expr);
diff --git a/src/backend/optimizer/prep/prepkeyset.c b/src/backend/optimizer/prep/prepkeyset.c
index 979796ffe24..914779b4f69 100644
--- a/src/backend/optimizer/prep/prepkeyset.c
+++ b/src/backend/optimizer/prep/prepkeyset.c
@@ -15,89 +15,90 @@
/*
* Node_Copy
- * a macro to simplify calling of copyObject on the specified field
+ * a macro to simplify calling of copyObject on the specified field
*/
#define Node_Copy(from, newnode, field) newnode->field = copyObject(from->field)
-bool _use_keyset_query_optimizer = FALSE;
+bool _use_keyset_query_optimizer = FALSE;
-static int inspectOpNode(Expr *expr);
-static int inspectAndNode(Expr *expr);
-static int inspectOrNode(Expr *expr);
-static int TotalExpr;
+static int inspectOpNode(Expr *expr);
+static int inspectAndNode(Expr *expr);
+static int inspectOrNode(Expr *expr);
+static int TotalExpr;
/**********************************************************************
- * This routine transforms query trees with the following form:
- * SELECT a,b, ... FROM one_table WHERE
- * (v1 = const1 AND v2 = const2 [ vn = constn ]) OR
- * (v1 = const3 AND v2 = const4 [ vn = constn ]) OR
- * (v1 = const5 AND v2 = const6 [ vn = constn ]) OR
- * ...
- * [(v1 = constn AND v2 = constn [ vn = constn ])]
+ * This routine transforms query trees with the following form:
+ * SELECT a,b, ... FROM one_table WHERE
+ * (v1 = const1 AND v2 = const2 [ vn = constn ]) OR
+ * (v1 = const3 AND v2 = const4 [ vn = constn ]) OR
+ * (v1 = const5 AND v2 = const6 [ vn = constn ]) OR
+ * ...
+ * [(v1 = constn AND v2 = constn [ vn = constn ])]
*
- * into
+ * into
*
- * SELECT a,b, ... FROM one_table WHERE
- * (v1 = const1 AND v2 = const2 [ vn = constn ]) UNION
- * SELECT a,b, ... FROM one_table WHERE
- * (v1 = const3 AND v2 = const4 [ vn = constn ]) UNION
- * SELECT a,b, ... FROM one_table WHERE
- * (v1 = const5 AND v2 = const6 [ vn = constn ]) UNION
- * ...
- * SELECT a,b, ... FROM one_table WHERE
- * [(v1 = constn AND v2 = constn [ vn = constn ])]
+ * SELECT a,b, ... FROM one_table WHERE
+ * (v1 = const1 AND v2 = const2 [ vn = constn ]) UNION
+ * SELECT a,b, ... FROM one_table WHERE
+ * (v1 = const3 AND v2 = const4 [ vn = constn ]) UNION
+ * SELECT a,b, ... FROM one_table WHERE
+ * (v1 = const5 AND v2 = const6 [ vn = constn ]) UNION
+ * ...
+ * SELECT a,b, ... FROM one_table WHERE
+ * [(v1 = constn AND v2 = constn [ vn = constn ])]
*
*
- * To qualify for transformation the query must not be a sub select,
- * a HAVING, or a GROUP BY. It must be a single table and have KSQO
- * set to 'on'.
+ * To qualify for transformation the query must not be a sub select,
+ * a HAVING, or a GROUP BY. It must be a single table and have KSQO
+ * set to 'on'.
*
- * The primary use of this transformation is to avoid the exponrntial
- * memory consumption of cnfify() and to make use of index access
- * methods.
+ * The primary use of this transformation is to avoid the exponrntial
+ * memory consumption of cnfify() and to make use of index access
+ * methods.
*
- * daveh@insightdist.com 1998-08-31
+ * daveh@insightdist.com 1998-08-31
*
- * May want to also prune out duplicate terms.
+ * May want to also prune out duplicate terms.
**********************************************************************/
void
transformKeySetQuery(Query *origNode)
{
- /* Qualify as a key set query candidate */
- if (_use_keyset_query_optimizer == FALSE ||
- origNode->groupClause ||
- origNode->havingQual ||
- origNode->hasAggs ||
- origNode->utilityStmt ||
- origNode->unionClause ||
- origNode->unionall ||
- origNode->hasSubLinks ||
- origNode->commandType != CMD_SELECT)
+ /* Qualify as a key set query candidate */
+ if (_use_keyset_query_optimizer == FALSE ||
+ origNode->groupClause ||
+ origNode->havingQual ||
+ origNode->hasAggs ||
+ origNode->utilityStmt ||
+ origNode->unionClause ||
+ origNode->unionall ||
+ origNode->hasSubLinks ||
+ origNode->commandType != CMD_SELECT)
return;
- /* Qualify single table query */
+ /* Qualify single table query */
if (length(origNode->rtable) != 1)
- return;
-
- /* Sorry about the global, not worth passing around */
- /* 9 expressions seems like a good number. More than 9 */
- /* and it starts to slow down quite a bit */
- TotalExpr = 0;
- /*************************/
- /* Qualify where clause */
- /*************************/
- if ( ! inspectOrNode((Expr*)origNode->qual) || TotalExpr < 9)
return;
- /* Copy essential elements into a union node */
- while (((Expr*)origNode->qual)->opType == OR_EXPR) {
+ /* Sorry about the global, not worth passing around */
+ /* 9 expressions seems like a good number. More than 9 */
+ /* and it starts to slow down quite a bit */
+ TotalExpr = 0;
+ /*************************/
+ /* Qualify where clause */
+ /*************************/
+ if (!inspectOrNode((Expr *) origNode->qual) || TotalExpr < 9)
+ return;
+
+ /* Copy essential elements into a union node */
+ while (((Expr *) origNode->qual)->opType == OR_EXPR)
+ {
Query *unionNode = makeNode(Query);
- /* Pull up Expr = */
- unionNode->qual = lsecond(((Expr*)origNode->qual)->args);
+ /* Pull up Expr = */
+ unionNode->qual = lsecond(((Expr *) origNode->qual)->args);
- /* Pull up balance of tree */
- origNode->qual = lfirst(((Expr*)origNode->qual)->args);
+ /* Pull up balance of tree */
+ origNode->qual = lfirst(((Expr *) origNode->qual)->args);
unionNode->commandType = origNode->commandType;
unionNode->resultRelation = origNode->resultRelation;
@@ -121,37 +122,38 @@ transformKeySetQuery(Query *origNode)
static int
/**********************************************************************
- * Checks for 1 or more OR terms w/ 1 or more AND terms.
- * AND terms must be equal in size.
- * Returns the number of each AND term.
+ * Checks for 1 or more OR terms w/ 1 or more AND terms.
+ * AND terms must be equal in size.
+ * Returns the number of each AND term.
**********************************************************************/
inspectOrNode(Expr *expr)
{
- int rc;
- Expr *firstExpr, *secondExpr;
+ int rc;
+ Expr *firstExpr,
+ *secondExpr;
- if ( ! (expr && nodeTag(expr) == T_Expr && expr->opType == OR_EXPR))
+ if (!(expr && nodeTag(expr) == T_Expr && expr->opType == OR_EXPR))
return 0;
firstExpr = lfirst(expr->args);
secondExpr = lsecond(expr->args);
- if (nodeTag(firstExpr) != T_Expr || nodeTag(secondExpr) != T_Expr)
+ if (nodeTag(firstExpr) != T_Expr || nodeTag(secondExpr) != T_Expr)
return 0;
if (firstExpr->opType == OR_EXPR && secondExpr->opType == AND_EXPR)
{
- if ((rc = inspectOrNode(firstExpr)) == 0)
+ if ((rc = inspectOrNode(firstExpr)) == 0)
return 0;
- return (rc == inspectAndNode(secondExpr)) ? rc : 0;
+ return (rc == inspectAndNode(secondExpr)) ? rc : 0;
}
else if (firstExpr->opType == AND_EXPR && secondExpr->opType == AND_EXPR)
{
- if ((rc = inspectAndNode(firstExpr)) == 0)
+ if ((rc = inspectAndNode(firstExpr)) == 0)
return 0;
-
- return (rc == inspectAndNode(secondExpr)) ? rc : 0;
-
+
+ return (rc == inspectAndNode(secondExpr)) ? rc : 0;
+
}
return 0;
@@ -160,34 +162,33 @@ inspectOrNode(Expr *expr)
static int
/**********************************************************************
- * Check for one or more AND terms. Each sub-term must be a T_Const
- * T_Var expression.
- * Returns the number of AND terms.
+ * Check for one or more AND terms. Each sub-term must be a T_Const
+ * T_Var expression.
+ * Returns the number of AND terms.
**********************************************************************/
inspectAndNode(Expr *expr)
{
- int rc;
- Expr *firstExpr, *secondExpr;
+ int rc;
+ Expr *firstExpr,
+ *secondExpr;
- if ( ! (expr && nodeTag(expr) == T_Expr && expr->opType == AND_EXPR))
+ if (!(expr && nodeTag(expr) == T_Expr && expr->opType == AND_EXPR))
return 0;
firstExpr = lfirst(expr->args);
secondExpr = lsecond(expr->args);
- if (nodeTag(firstExpr) != T_Expr || nodeTag(secondExpr) != T_Expr)
+ if (nodeTag(firstExpr) != T_Expr || nodeTag(secondExpr) != T_Expr)
return 0;
if (firstExpr->opType == AND_EXPR &&
- secondExpr->opType == OP_EXPR && inspectOpNode(secondExpr))
+ secondExpr->opType == OP_EXPR && inspectOpNode(secondExpr))
{
- rc = inspectAndNode(firstExpr);
- return ((rc) ? (rc + 1) : 0); /* Add up the AND nodes */
+ rc = inspectAndNode(firstExpr);
+ return ((rc) ? (rc + 1) : 0); /* Add up the AND nodes */
}
- else if (firstExpr->opType == OP_EXPR && inspectOpNode(firstExpr) &&
- secondExpr->opType == OP_EXPR && inspectOpNode(secondExpr))
- {
+ else if (firstExpr->opType == OP_EXPR && inspectOpNode(firstExpr) &&
+ secondExpr->opType == OP_EXPR && inspectOpNode(secondExpr))
return 1;
- }
return 0;
}
@@ -195,12 +196,13 @@ inspectAndNode(Expr *expr)
static int
/******************************************************************
- * Return TRUE if T_Var = T_Const, else FALSE
- * Actually it does not test for =. Need to do this!
+ * Return TRUE if T_Var = T_Const, else FALSE
+ * Actually it does not test for =. Need to do this!
******************************************************************/
inspectOpNode(Expr *expr)
{
- Expr *firstExpr, *secondExpr;
+ Expr *firstExpr,
+ *secondExpr;
if (nodeTag(expr) != T_Expr || expr->opType != OP_EXPR)
return FALSE;
@@ -209,5 +211,5 @@ inspectOpNode(Expr *expr)
firstExpr = lfirst(expr->args);
secondExpr = lsecond(expr->args);
- return (firstExpr && secondExpr && nodeTag(firstExpr) == T_Var && nodeTag(secondExpr) == T_Const);
+ return (firstExpr && secondExpr && nodeTag(firstExpr) == T_Var && nodeTag(secondExpr) == T_Const);
}
diff --git a/src/backend/optimizer/prep/prepqual.c b/src/backend/optimizer/prep/prepqual.c
index cea2939a150..aed73727044 100644
--- a/src/backend/optimizer/prep/prepqual.c
+++ b/src/backend/optimizer/prep/prepqual.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepqual.c,v 1.14 1999/02/15 01:06:59 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepqual.c,v 1.15 1999/05/25 16:09:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -106,8 +106,9 @@ find_nots(Expr *qual)
if (is_opclause((Node *) qual))
{
- Expr *left = (Expr *) get_leftop(qual);
- Expr *right = (Expr *) get_rightop(qual);
+ Expr *left = (Expr *) get_leftop(qual);
+ Expr *right = (Expr *) get_rightop(qual);
+
if (right)
return make_clause(qual->opType, qual->oper,
lcons(find_nots(left),
@@ -162,8 +163,9 @@ normalize(Expr *qual)
if (is_opclause((Node *) qual))
{
- Expr *left = (Expr *) get_leftop(qual);
- Expr *right = (Expr *) get_rightop(qual);
+ Expr *left = (Expr *) get_leftop(qual);
+ Expr *right = (Expr *) get_rightop(qual);
+
if (right)
return make_clause(qual->opType, qual->oper,
lcons(normalize(left),
@@ -229,8 +231,9 @@ qual_cleanup(Expr *qual)
if (is_opclause((Node *) qual))
{
- Expr *left = (Expr *) get_leftop(qual);
- Expr *right = (Expr *) get_rightop(qual);
+ Expr *left = (Expr *) get_leftop(qual);
+ Expr *right = (Expr *) get_rightop(qual);
+
if (right)
return (List *) make_clause(qual->opType, qual->oper,
lcons(qual_cleanup(left),
@@ -295,8 +298,9 @@ pull_args(Expr *qual)
if (is_opclause((Node *) qual))
{
- Expr *left = (Expr *) get_leftop(qual);
- Expr *right = (Expr *) get_rightop(qual);
+ Expr *left = (Expr *) get_leftop(qual);
+ Expr *right = (Expr *) get_rightop(qual);
+
if (right)
return make_clause(qual->opType, qual->oper,
lcons(pull_args(left),
@@ -485,7 +489,7 @@ or_normalize(List *orlist)
{
return (or_normalize(lcons(distribute_args(lfirst(new_orlist),
((Expr *) distributable)->args),
- lnext(new_orlist))));
+ lnext(new_orlist))));
}
else
return orlist;
@@ -537,8 +541,9 @@ remove_ands(Expr *qual)
return NIL;
if (is_opclause((Node *) qual))
{
- Expr *left = (Expr *) get_leftop(qual);
- Expr *right = (Expr *) get_rightop(qual);
+ Expr *left = (Expr *) get_leftop(qual);
+ Expr *right = (Expr *) get_rightop(qual);
+
if (right)
return (List *) make_clause(qual->opType, qual->oper,
lcons(remove_ands(left),
diff --git a/src/backend/optimizer/prep/preptlist.c b/src/backend/optimizer/prep/preptlist.c
index 92ab4db94d6..0256fd483b0 100644
--- a/src/backend/optimizer/prep/preptlist.c
+++ b/src/backend/optimizer/prep/preptlist.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.20 1999/05/17 17:03:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.21 1999/05/25 16:09:46 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -211,8 +211,8 @@ replace_matching_resname(List *new_tlist, List *old_tlist)
* locks.
*
* So, copy all these entries to the end of the target list and set their
- * 'resjunk' value to true to show that these are special attributes and
- * have to be treated specially by the executor!
+ * 'resjunk' value to true to show that these are special attributes
+ * and have to be treated specially by the executor!
*/
foreach(temp, old_tlist)
{
@@ -231,28 +231,27 @@ replace_matching_resname(List *new_tlist, List *old_tlist)
}
/*
- * Also it is possible that the parser or rewriter added
- * some junk attributes to hold GROUP BY expressions which
- * are not part of the result attributes.
- * We can simply identify them by looking at the resgroupref
- * in the TLE's resdom, which is a unique number telling which
- * TLE belongs to which GroupClause.
+ * Also it is possible that the parser or rewriter added some junk
+ * attributes to hold GROUP BY expressions which are not part of
+ * the result attributes. We can simply identify them by looking
+ * at the resgroupref in the TLE's resdom, which is a unique
+ * number telling which TLE belongs to which GroupClause.
*/
if (old_tle->resdom->resgroupref > 0)
{
- bool already_there = FALSE;
- TargetEntry *new_tle;
- Resdom *newresno;
+ bool already_there = FALSE;
+ TargetEntry *new_tle;
+ Resdom *newresno;
/*
* Check if the tle is already in the new list
*/
foreach(i, t_list)
{
- new_tle = (TargetEntry *)lfirst(i);
+ new_tle = (TargetEntry *) lfirst(i);
- if (new_tle->resdom->resgroupref ==
- old_tle->resdom->resgroupref)
+ if (new_tle->resdom->resgroupref ==
+ old_tle->resdom->resgroupref)
{
already_there = TRUE;
break;
@@ -349,8 +348,8 @@ new_relation_targetlist(Oid relid, Index rt_index, NodeTag node_type)
TargetEntry *temp_list = NULL;
temp_var = makeVar(rt_index, attno, atttype,
- get_atttypmod(relid, attno),
- 0, rt_index, attno);
+ get_atttypmod(relid, attno),
+ 0, rt_index, attno);
temp_list = makeTargetEntry(makeResdom(attno,
atttype,
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index 1bbfa9ef06a..6bd493a4883 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.30 1999/02/18 00:49:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.31 1999/05/25 16:09:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -223,8 +223,8 @@ plan_inherit_queries(Query *parse, Index rt_index)
List *union_relids = NIL;
union_relids = find_all_inheritors(lconsi(rt_entry->relid,
- NIL),
- NIL);
+ NIL),
+ NIL);
/*
* Remove the flag for this relation, since we're about to handle it
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index 0dbd65cd5d4..8d02a66e76b 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.33 1999/05/10 00:45:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.34 1999/05/25 16:09:50 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -84,7 +84,7 @@ bool
is_opclause(Node *clause)
{
return (clause != NULL &&
- nodeTag(clause) == T_Expr && ((Expr *) clause)->opType == OP_EXPR);
+ nodeTag(clause) == T_Expr && ((Expr *) clause)->opType == OP_EXPR);
}
/*
@@ -163,7 +163,7 @@ bool
is_funcclause(Node *clause)
{
return (clause != NULL &&
- nodeTag(clause) == T_Expr && ((Expr *) clause)->opType == FUNC_EXPR);
+ nodeTag(clause) == T_Expr && ((Expr *) clause)->opType == FUNC_EXPR);
}
/*
@@ -320,7 +320,7 @@ bool
case_clause(Node *clause)
{
return (clause != NULL &&
- nodeTag(clause) == T_CaseExpr);
+ nodeTag(clause) == T_CaseExpr);
}
/*****************************************************************************
@@ -369,7 +369,7 @@ pull_constant_clauses(List *quals, List **constantQual)
*
*/
void
-clause_get_relids_vars(Node *clause, Relids *relids, List **vars)
+clause_get_relids_vars(Node *clause, Relids * relids, List **vars)
{
List *clvars = pull_var_clause(clause);
List *var_list = NIL;
@@ -515,9 +515,9 @@ qual_clause_p(Node *clause)
return false; /* unary opclauses need not apply */
/* How about Param-s ? - vadim 02/03/98 */
- if (IsA(leftop, Var) && IsA(rightop, Const))
+ if (IsA(leftop, Var) &&IsA(rightop, Const))
return true;
- if (IsA(rightop, Var) && IsA(leftop, Const))
+ if (IsA(rightop, Var) &&IsA(leftop, Const))
return true;
return false;
}
@@ -646,14 +646,14 @@ get_relattval(Node *clause,
if (!right)
goto default_results;
- if (IsA(left, Var) && IsA(right, Const))
+ if (IsA(left, Var) &&IsA(right, Const))
{
*relid = left->varno;
*attno = left->varattno;
*constval = ((Const *) right)->constvalue;
*flag = (_SELEC_CONSTANT_RIGHT_ | _SELEC_IS_CONSTANT_);
}
- else if (IsA(left, Var) && IsA(right, Param))
+ else if (IsA(left, Var) &&IsA(right, Param))
{
*relid = left->varno;
*attno = left->varattno;
@@ -669,7 +669,7 @@ get_relattval(Node *clause,
*constval = ((Const *) right)->constvalue;
*flag = (_SELEC_CONSTANT_RIGHT_ | _SELEC_IS_CONSTANT_);
}
- else if (IsA(right, Var) && IsA(left, Const))
+ else if (IsA(right, Var) &&IsA(left, Const))
{
*relid = right->varno;
*attno = right->varattno;
@@ -723,16 +723,16 @@ get_rels_atts(Node *clause,
{
if (is_opclause(clause))
{
- Var *left = get_leftop((Expr *) clause);
- Var *right = get_rightop((Expr *) clause);
+ Var *left = get_leftop((Expr *) clause);
+ Var *right = get_rightop((Expr *) clause);
if (left && right)
{
- bool var_left = IsA(left, Var);
- bool var_right = IsA(right, Var);
- bool varexpr_left = (bool) ((IsA(left, Func) || IsA(left, Oper)) &&
- contain_var_clause((Node *) left));
- bool varexpr_right = (bool) ((IsA(right, Func) || IsA(right, Oper)) &&
+ bool var_left = IsA(left, Var);
+ bool var_right = IsA(right, Var);
+ bool varexpr_left = (bool) ((IsA(left, Func) ||IsA(left, Oper)) &&
+ contain_var_clause((Node *) left));
+ bool varexpr_right = (bool) ((IsA(right, Func) ||IsA(right, Oper)) &&
contain_var_clause((Node *) right));
if (var_left && var_right)
diff --git a/src/backend/optimizer/util/indexnode.c b/src/backend/optimizer/util/indexnode.c
index 64fcbbf8517..7d4cf825db7 100644
--- a/src/backend/optimizer/util/indexnode.c
+++ b/src/backend/optimizer/util/indexnode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/indexnode.c,v 1.14 1999/02/13 23:16:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/indexnode.c,v 1.15 1999/05/25 16:09:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,7 +33,7 @@ static List *find_secondary_index(Query *root, Oid relid);
*
*/
List *
-find_relation_indices(Query *root, RelOptInfo *rel)
+find_relation_indices(Query *root, RelOptInfo * rel)
{
if (rel->indexed)
return find_secondary_index(root, lfirsti(rel->relids));
diff --git a/src/backend/optimizer/util/joininfo.c b/src/backend/optimizer/util/joininfo.c
index f3797aa3b96..e9d919c436e 100644
--- a/src/backend/optimizer/util/joininfo.c
+++ b/src/backend/optimizer/util/joininfo.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/joininfo.c,v 1.19 1999/02/22 05:26:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/joininfo.c,v 1.20 1999/05/25 16:09:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -38,11 +38,11 @@
JoinInfo *
joininfo_member(List *join_relids, List *joininfo_list)
{
- List *i;
+ List *i;
foreach(i, joininfo_list)
{
- JoinInfo *joininfo = (JoinInfo *)lfirst(i);
+ JoinInfo *joininfo = (JoinInfo *) lfirst(i);
if (same(join_relids, joininfo->unjoined_relids))
return joininfo;
@@ -62,7 +62,7 @@ joininfo_member(List *join_relids, List *joininfo_list)
*
*/
JoinInfo *
-find_joininfo_node(RelOptInfo *this_rel, Relids join_relids)
+find_joininfo_node(RelOptInfo * this_rel, Relids join_relids)
{
JoinInfo *joininfo = joininfo_member(join_relids,
this_rel->joininfo);
diff --git a/src/backend/optimizer/util/keys.c b/src/backend/optimizer/util/keys.c
index c921c24c0d1..84528e7d064 100644
--- a/src/backend/optimizer/util/keys.c
+++ b/src/backend/optimizer/util/keys.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/keys.c,v 1.19 1999/02/20 18:01:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/keys.c,v 1.20 1999/05/25 16:09:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,7 +54,7 @@ static bool equal_indexkey_var(int index_key, Var *var);
*
*/
bool
-match_indexkey_operand(int indexkey, Var *operand, RelOptInfo *rel)
+match_indexkey_operand(int indexkey, Var *operand, RelOptInfo * rel)
{
if (IsA(operand, Var) &&
(lfirsti(rel->relids) == operand->varno) &&
@@ -112,7 +112,7 @@ extract_join_key(JoinKey *jk, int outer_or_inner)
*
* See the top of optimizer/path/pathkeys.c for a description of pathkeys.
* Each pathkey is ordered by its join order, so they not pre-ordered to
- * match. We must search them ourselves.
+ * match. We must search them ourselves.
*
* This gets called a lot, so it is optimized.
*/
@@ -128,31 +128,33 @@ pathkeys_match(List *keys1, List *keys2, int *better_key)
key1 != NIL && key2 != NIL;
key1 = lnext(key1), key2 = lnext(key2))
{
- List *i;
+ List *i;
if (key1_subsetof_key2)
foreach(i, lfirst(key1))
+ {
+ Var *subkey = lfirst(i);
+
+ if (!member(subkey, lfirst(key2)))
{
- Var *subkey = lfirst(i);
- if (!member(subkey, lfirst(key2)))
- {
- key1_subsetof_key2 = false;
- break;
- }
+ key1_subsetof_key2 = false;
+ break;
}
+ }
if (key2_subsetof_key1)
foreach(i, lfirst(key2))
+ {
+ Var *subkey = lfirst(i);
+
+ if (!member(subkey, lfirst(key1)))
{
- Var *subkey = lfirst(i);
- if (!member(subkey, lfirst(key1)))
- {
- key2_subsetof_key1 = false;
- break;
- }
+ key2_subsetof_key1 = false;
+ break;
}
+ }
if (!key1_subsetof_key2 && !key2_subsetof_key1)
- break; /* no need to continue comparisons. */
+ break; /* no need to continue comparisons. */
}
if (!key1_subsetof_key2 && !key2_subsetof_key1)
diff --git a/src/backend/optimizer/util/ordering.c b/src/backend/optimizer/util/ordering.c
index eef0fbb3141..46948609f1d 100644
--- a/src/backend/optimizer/util/ordering.c
+++ b/src/backend/optimizer/util/ordering.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/ordering.c,v 1.15 1999/02/13 23:16:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/ordering.c,v 1.16 1999/05/25 16:09:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,7 +19,7 @@
#include "optimizer/ordering.h"
static bool sortops_order_match(Oid *ordering1, Oid *ordering2,
- int *better_sort);
+ int *better_sort);
/*
* equal_path_ordering
@@ -31,12 +31,12 @@ pathorder_match(PathOrder *path_ordering1,
PathOrder *path_ordering2,
int *better_sort)
{
-
+
*better_sort = 0;
if (path_ordering1 == path_ordering2)
return true;
-
+
if (!path_ordering2)
{
*better_sort = 1;
@@ -51,15 +51,13 @@ pathorder_match(PathOrder *path_ordering1,
if (path_ordering1->ordtype == MERGE_ORDER &&
path_ordering2->ordtype == MERGE_ORDER)
- {
return equal(path_ordering1->ord.merge, path_ordering2->ord.merge);
- }
else if (path_ordering1->ordtype == SORTOP_ORDER &&
path_ordering2->ordtype == SORTOP_ORDER)
{
return sortops_order_match(path_ordering1->ord.sortop,
- path_ordering2->ord.sortop,
- better_sort);
+ path_ordering2->ord.sortop,
+ better_sort);
}
else if (path_ordering1->ordtype == MERGE_ORDER &&
path_ordering2->ordtype == SORTOP_ORDER)
@@ -112,7 +110,7 @@ equal_path_merge_ordering(Oid *path_ordering,
*/
bool
equal_merge_ordering(MergeOrder *merge_ordering1,
- MergeOrder *merge_ordering2)
+ MergeOrder *merge_ordering2)
{
return equal(merge_ordering1, merge_ordering2);
}
@@ -133,7 +131,7 @@ sortops_order_match(Oid *ordering1, Oid *ordering2, int *better_sort)
int i = 0;
*better_sort = 0;
-
+
if (ordering1 == ordering2)
return true;
@@ -142,13 +140,13 @@ sortops_order_match(Oid *ordering1, Oid *ordering2, int *better_sort)
*better_sort = 1;
return true;
}
-
+
if (!ordering1)
{
*better_sort = 2;
return true;
}
-
+
while (ordering1[i] != 0 && ordering2[i] != 0)
{
if (ordering1[i] != ordering2[i])
@@ -167,6 +165,6 @@ sortops_order_match(Oid *ordering1, Oid *ordering2, int *better_sort)
*better_sort = 2;
return true;
}
-
+
return ordering1[i] == 0 && ordering2[i] == 0;
}
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index 4e3d2fe353f..7e9b8e30903 100644
--- a/src/backend/optimizer/util/pathnode.c
+++ b/src/backend/optimizer/util/pathnode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.40 1999/02/21 03:48:54 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.41 1999/05/25 16:09:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,7 +62,7 @@ path_is_cheaper(Path *path1, Path *path2)
*
*/
Path *
-set_cheapest(RelOptInfo *parent_rel, List *pathlist)
+set_cheapest(RelOptInfo * parent_rel, List *pathlist)
{
List *p;
Path *cheapest_so_far;
@@ -99,14 +99,14 @@ set_cheapest(RelOptInfo *parent_rel, List *pathlist)
*
*/
List *
-add_pathlist(RelOptInfo *parent_rel, List *unique_paths, List *new_paths)
+add_pathlist(RelOptInfo * parent_rel, List *unique_paths, List *new_paths)
{
List *p1;
foreach(p1, new_paths)
{
Path *new_path = (Path *) lfirst(p1);
- Path *old_path;
+ Path *old_path;
bool is_new;
/* Is this new path already in unique_paths? */
@@ -174,7 +174,7 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
#ifdef OPTDUP_DEBUG
if (!pathkeys_match(new_path->pathkeys, path->pathkeys, &better_key) ||
- better_key != 0)
+ better_key != 0)
{
printf("betterkey = %d\n", better_key);
printf("newpath\n");
@@ -182,13 +182,15 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
printf("oldpath\n");
pprint(path->pathkeys);
if (path->pathkeys && new_path->pathkeys &&
- length(lfirst(path->pathkeys)) >= 2/* &&
- length(lfirst(path->pathkeys)) <
- length(lfirst(new_path->pathkeys))*/)
- sleep(0); /* set breakpoint here */
+ length(lfirst(path->pathkeys)) >= 2 /* &&
+ * length(lfirst(path->pa
+ * thkeys)) <
+ * length(lfirst(new_path
+ ->pathkeys)) */ )
+ sleep(0); /* set breakpoint here */
}
if (!pathorder_match(new_path->pathorder, path->pathorder,
- &better_sort) ||
+ &better_sort) ||
better_sort != 0)
{
printf("neword\n");
@@ -199,25 +201,26 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
#endif
if (pathkeys_match(new_path->pathkeys, path->pathkeys,
- &better_key) &&
+ &better_key) &&
pathorder_match(new_path->pathorder, path->pathorder,
- &better_sort))
+ &better_sort))
{
+
/*
* Replace pathkeys that match exactly, {{1,2}}, {{1,2}}
- * Replace pathkeys {{1,2}} with {{1,2,3}}} if the latter is not
- * more expensive and replace unordered path with ordered
- * path if it is not more expensive. Favor sorted keys
- * over unsorted keys in the same way.
+ * Replace pathkeys {{1,2}} with {{1,2,3}}} if the latter is
+ * not more expensive and replace unordered path with ordered
+ * path if it is not more expensive. Favor sorted keys over
+ * unsorted keys in the same way.
*/
- /* same keys, and new is cheaper, use it */
- if ((better_key == 0 && better_sort == 0 &&
+ /* same keys, and new is cheaper, use it */
+ if ((better_key == 0 && better_sort == 0 &&
new_path->path_cost < path->path_cost) ||
- /* new is better, and cheaper, use it */
+ /* new is better, and cheaper, use it */
(((better_key == 1 && better_sort != 2) ||
(better_key != 2 && better_sort == 1)) &&
- new_path->path_cost <= path->path_cost))
+ new_path->path_cost <= path->path_cost))
{
#ifdef OPTDUP_DEBUG
printf("replace with new %p old %p better key %d better sort %d\n", &new_path, &path, better_key, better_sort);
@@ -230,14 +233,14 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
return path;
}
- /* same keys, new is more expensive, stop */
+ /* same keys, new is more expensive, stop */
if ((better_key == 0 && better_sort == 0 &&
new_path->path_cost >= path->path_cost) ||
- /* old is better, and less expensive, stop */
+ /* old is better, and less expensive, stop */
(((better_key == 2 && better_sort != 1) ||
(better_key != 1 && better_sort == 2)) &&
- new_path->path_cost >= path->path_cost))
+ new_path->path_cost >= path->path_cost))
{
#ifdef OPTDUP_DEBUG
printf("skip new %p old %p better key %d better sort %d\n", &new_path, &path, better_key, better_sort);
@@ -253,11 +256,11 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
}
#ifdef OPTDUP_DEBUG
- printf("add new %p old %p better key %d better sort %d\n", &new_path, &path, better_key, better_sort);
- printf("new\n");
- pprint(new_path);
+ printf("add new %p old %p better key %d better sort %d\n", &new_path, &path, better_key, better_sort);
+ printf("new\n");
+ pprint(new_path);
#endif
-
+
*is_new = true;
return NULL;
}
@@ -275,7 +278,7 @@ better_path(Path *new_path, List *unique_paths, bool *is_new)
*
*/
Path *
-create_seqscan_path(RelOptInfo *rel)
+create_seqscan_path(RelOptInfo * rel)
{
int relid = 0;
@@ -290,7 +293,7 @@ create_seqscan_path(RelOptInfo *rel)
pathnode->pathkeys = NIL;
/*
- * copy restrictinfo list into path for expensive function processing
+ * copy restrictinfo list into path for expensive function processing
* JMH, 7/7/92
*/
pathnode->loc_restrictinfo = (List *) copyObject((Node *) rel->restrictinfo);
@@ -303,9 +306,7 @@ create_seqscan_path(RelOptInfo *rel)
/* add in expensive functions cost! -- JMH, 7/7/92 */
#ifdef NOT_USED
if (XfuncMode != XFUNC_OFF)
- {
pathnode->path_cost += xfunc_get_path_cost(pathnode);
- }
#endif
return pathnode;
}
@@ -325,8 +326,8 @@ create_seqscan_path(RelOptInfo *rel)
*/
IndexPath *
create_index_path(Query *root,
- RelOptInfo *rel,
- RelOptInfo *index,
+ RelOptInfo * rel,
+ RelOptInfo * index,
List *restriction_clauses,
bool is_join_scan)
{
@@ -343,11 +344,11 @@ create_index_path(Query *root,
pathnode->indexqual = NIL;
/*
- * copy restrictinfo list into path for expensive function processing
+ * copy restrictinfo list into path for expensive function processing
* JMH, 7/7/92
*/
pathnode->path.loc_restrictinfo = set_difference((List *) copyObject((Node *) rel->restrictinfo),
- (List *) restriction_clauses);
+ (List *) restriction_clauses);
/*
* The index must have an ordering for the path to have (ordering)
@@ -356,7 +357,7 @@ create_index_path(Query *root,
if (pathnode->path.pathorder->ord.sortop)
{
pathnode->path.pathkeys = collect_index_pathkeys(index->indexkeys,
- rel->targetlist);
+ rel->targetlist);
/*
* Check that the keys haven't 'disappeared', since they may no
@@ -381,19 +382,19 @@ create_index_path(Query *root,
/* is the statement above really true? what about IndexScan as the
inner of a join? */
pathnode->path.path_cost = cost_index(lfirsti(index->relids),
- index->pages,
- 1.0,
- rel->pages,
- rel->tuples,
- index->pages,
- index->tuples,
- false);
+ index->pages,
+ 1.0,
+ rel->pages,
+ rel->tuples,
+ index->pages,
+ index->tuples,
+ false);
#ifdef NOT_USED
/* add in expensive functions cost! -- JMH, 7/7/92 */
if (XfuncMode != XFUNC_OFF)
{
pathnode->path_cost = (pathnode->path_cost +
- xfunc_get_path_cost((Path *) pathnode));
+ xfunc_get_path_cost((Path *) pathnode));
}
#endif
}
@@ -427,24 +428,22 @@ create_index_path(Query *root,
&npages,
&selec);
/* each clause gets an equal selectivity */
- clausesel = pow(selec, 1.0 / (double) length(restriction_clauses));
+ clausesel = pow(selec, 1.0 / (double) length(restriction_clauses));
pathnode->indexqual = restriction_clauses;
pathnode->path.path_cost = cost_index(lfirsti(index->relids),
- (int) npages,
- selec,
- rel->pages,
- rel->tuples,
- index->pages,
- index->tuples,
- false);
+ (int) npages,
+ selec,
+ rel->pages,
+ rel->tuples,
+ index->pages,
+ index->tuples,
+ false);
#ifdef NOT_USED
/* add in expensive functions cost! -- JMH, 7/7/92 */
if (XfuncMode != XFUNC_OFF)
- {
pathnode->path_cost += xfunc_get_path_cost((Path *) pathnode);
- }
#endif
/*
@@ -474,8 +473,8 @@ create_index_path(Query *root,
*
*/
NestPath *
-create_nestloop_path(RelOptInfo *joinrel,
- RelOptInfo *outer_rel,
+create_nestloop_path(RelOptInfo * joinrel,
+ RelOptInfo * outer_rel,
Path *outer_path,
Path *inner_path,
List *pathkeys)
@@ -492,7 +491,7 @@ create_nestloop_path(RelOptInfo *joinrel,
pathnode->path.outerjoincost = (Cost) 0.0;
pathnode->path.loc_restrictinfo = NIL;
pathnode->path.pathorder = makeNode(PathOrder);
-
+
if (pathkeys)
{
pathnode->path.pathorder->ordtype = outer_path->pathorder->ordtype;
@@ -508,12 +507,12 @@ create_nestloop_path(RelOptInfo *joinrel,
}
pathnode->path.path_cost = cost_nestloop(outer_path->path_cost,
- inner_path->path_cost,
- outer_rel->size,
- inner_path->parent->size,
- page_size(outer_rel->size,
- outer_rel->width),
- IsA(inner_path, IndexPath));
+ inner_path->path_cost,
+ outer_rel->size,
+ inner_path->parent->size,
+ page_size(outer_rel->size,
+ outer_rel->width),
+ IsA(inner_path, IndexPath));
/* add in expensive function costs -- JMH 7/7/92 */
#ifdef NOT_USED
if (XfuncMode != XFUNC_OFF)
@@ -542,7 +541,7 @@ create_nestloop_path(RelOptInfo *joinrel,
*
*/
MergePath *
-create_mergejoin_path(RelOptInfo *joinrel,
+create_mergejoin_path(RelOptInfo * joinrel,
int outersize,
int innersize,
int outerwidth,
@@ -571,19 +570,17 @@ create_mergejoin_path(RelOptInfo *joinrel,
pathnode->outersortkeys = outersortkeys;
pathnode->innersortkeys = innersortkeys;
pathnode->jpath.path.path_cost = cost_mergejoin(outer_path->path_cost,
- inner_path->path_cost,
- outersortkeys,
- innersortkeys,
- outersize,
- innersize,
- outerwidth,
- innerwidth);
+ inner_path->path_cost,
+ outersortkeys,
+ innersortkeys,
+ outersize,
+ innersize,
+ outerwidth,
+ innerwidth);
/* add in expensive function costs -- JMH 7/7/92 */
#ifdef NOT_USED
if (XfuncMode != XFUNC_OFF)
- {
pathnode->path_cost += xfunc_get_path_cost((Path *) pathnode);
- }
#endif
return pathnode;
}
@@ -607,7 +604,7 @@ create_mergejoin_path(RelOptInfo *joinrel,
*
*/
HashPath *
-create_hashjoin_path(RelOptInfo *joinrel,
+create_hashjoin_path(RelOptInfo * joinrel,
int outersize,
int innersize,
int outerwidth,
@@ -639,17 +636,15 @@ create_hashjoin_path(RelOptInfo *joinrel,
pathnode->outerhashkeys = outerkeys;
pathnode->innerhashkeys = innerkeys;
pathnode->jpath.path.path_cost = cost_hashjoin(outer_path->path_cost,
- inner_path->path_cost,
- outerkeys,
- innerkeys,
- outersize, innersize,
- outerwidth, innerwidth);
+ inner_path->path_cost,
+ outerkeys,
+ innerkeys,
+ outersize, innersize,
+ outerwidth, innerwidth);
/* add in expensive function costs -- JMH 7/7/92 */
#ifdef NOT_USED
if (XfuncMode != XFUNC_OFF)
- {
pathnode->path_cost += xfunc_get_path_cost((Path *) pathnode);
- }
#endif
return pathnode;
}
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index a1f6026b0ed..a333b5af099 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.29 1999/05/10 00:45:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.30 1999/05/25 16:09:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -461,6 +461,7 @@ VersionGetParents(Oid verrelid)
heap_close(relation);
return list;
}
+
#endif
@@ -545,6 +546,7 @@ IndexSelectivity(Oid indexrelid,
select = 1.0;
for (n = 0; n < nIndexKeys; ++n)
{
+
/*
* Find the AM class for this key.
*
@@ -579,7 +581,7 @@ IndexSelectivity(Oid indexrelid,
amopTuple = SearchSysCacheTuple(AMOPOPID,
ObjectIdGetDatum(indclass),
- ObjectIdGetDatum(operatorObjectIds[n]),
+ ObjectIdGetDatum(operatorObjectIds[n]),
ObjectIdGetDatum(relam),
0);
if (!HeapTupleIsValid(amopTuple))
diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index 3b7594d87f1..5346a1c72a5 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/relnode.c,v 1.15 1999/02/18 00:49:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/relnode.c,v 1.16 1999/05/25 16:10:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,7 +30,7 @@
RelOptInfo *
get_base_rel(Query *root, int relid)
{
- Relids relids;
+ Relids relids;
RelOptInfo *rel;
relids = lconsi(relid, NIL);
@@ -63,6 +63,7 @@ get_base_rel(Query *root, int relid)
*/
if (relid < 0)
{
+
/*
* If the relation is a materialized relation, assume
* constants for sizes.
@@ -75,6 +76,7 @@ get_base_rel(Query *root, int relid)
bool hasindex;
int pages,
tuples;
+
/*
* Otherwise, retrieve relation characteristics from the
* system catalogs.
diff --git a/src/backend/optimizer/util/restrictinfo.c b/src/backend/optimizer/util/restrictinfo.c
index 374533a4222..5c59e0fdf88 100644
--- a/src/backend/optimizer/util/restrictinfo.c
+++ b/src/backend/optimizer/util/restrictinfo.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.2 1999/02/13 23:16:49 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.3 1999/05/25 16:10:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,7 +27,7 @@
*
*/
bool
-valid_or_clause(RestrictInfo *restrictinfo)
+valid_or_clause(RestrictInfo * restrictinfo)
{
if (restrictinfo != NULL &&
!single_node((Node *) restrictinfo->clause) &&
@@ -117,7 +117,7 @@ get_relattvals(List *restrictinfo_list,
}
/*
- * get_joinvars
+ * get_joinvars
* Given a list of join restrictinfo nodes to be used with the index
* of an inner join relation, return three lists consisting of:
* the attributes corresponding to the inner join relation
@@ -184,7 +184,7 @@ get_opnos(List *restrictinfo_list)
{
temp = (RestrictInfo *) lfirst(i);
result = lappendi(result,
- (((Oper *) temp->clause->oper)->opno));
+ (((Oper *) temp->clause->oper)->opno));
}
return result;
}
diff --git a/src/backend/optimizer/util/tlist.c b/src/backend/optimizer/util/tlist.c
index e0620c26a3e..497bb78b3b4 100644
--- a/src/backend/optimizer/util/tlist.c
+++ b/src/backend/optimizer/util/tlist.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.31 1999/05/17 17:03:23 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.32 1999/05/25 16:10:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -93,7 +93,7 @@ matching_tlist_var(Var *var, List *targetlist)
* CREATES: new var_node iff no matching var_node exists in targetlist
*/
void
-add_var_to_tlist(RelOptInfo *rel, Var *var)
+add_var_to_tlist(RelOptInfo * rel, Var *var)
{
Expr *oldvar;
@@ -114,8 +114,8 @@ add_var_to_tlist(RelOptInfo *rel, Var *var)
var->varoattno);
rel->targetlist = lappend(tlist,
- create_tl_element(newvar,
- length(tlist) + 1));
+ create_tl_element(newvar,
+ length(tlist) + 1));
}
}
@@ -203,6 +203,7 @@ tlist_member(Var *var, List *tlist)
foreach(i, tlist)
{
TargetEntry *tle = (TargetEntry *) lfirst(i);
+
if (var_equal(var, get_expr(tle)))
return tle->resdom;
}
@@ -222,6 +223,7 @@ tlist_resdom(List *tlist, Resdom *resnode)
{
TargetEntry *tle = (TargetEntry *) lfirst(i);
Resdom *resdom = tle->resdom;
+
/* Since resnos are supposed to be unique */
if (resnode->resno == resdom->resno)
return resdom;
@@ -362,7 +364,7 @@ flatten_tlist(List *tlist)
TargetEntry *temp_entry = (TargetEntry *) lfirst(temp);
tlist_vars = nconc(tlist_vars,
- pull_var_clause((Node *) get_expr(temp_entry)));
+ pull_var_clause((Node *) get_expr(temp_entry)));
}
foreach(temp, tlist_vars)
@@ -411,8 +413,8 @@ flatten_tlist_vars(List *full_tlist, List *flat_tlist)
TargetEntry *tle = lfirst(x);
result = lappend(result, makeTargetEntry(tle->resdom,
- flatten_tlistentry((Node *) get_expr(tle),
- flat_tlist)));
+ flatten_tlistentry((Node *) get_expr(tle),
+ flat_tlist)));
}
return result;
@@ -456,10 +458,11 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
}
else if (IsA(tlistentry, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(temp, ((Expr *) tlistentry)->args)
lfirst(temp) = flatten_tlistentry(lfirst(temp), flat_tlist);
@@ -467,8 +470,10 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
}
else if (IsA(tlistentry, Aggref))
{
- /* XXX shouldn't this be recursing into the agg's target?
- * Seems to work though, so will leave it alone ... tgl 5/99
+
+ /*
+ * XXX shouldn't this be recursing into the agg's target? Seems to
+ * work though, so will leave it alone ... tgl 5/99
*/
return tlistentry;
}
@@ -481,7 +486,7 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
foreach(temp, aref->reflowerindexpr)
lfirst(temp) = flatten_tlistentry(lfirst(temp), flat_tlist);
aref->refexpr = flatten_tlistentry(aref->refexpr, flat_tlist);
- aref->refassgnexpr = flatten_tlistentry(aref->refassgnexpr,flat_tlist);
+ aref->refassgnexpr = flatten_tlistentry(aref->refassgnexpr, flat_tlist);
return tlistentry;
}
@@ -491,7 +496,8 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
foreach(temp, cexpr->args)
{
- CaseWhen *cwhen = (CaseWhen *) lfirst(temp);
+ CaseWhen *cwhen = (CaseWhen *) lfirst(temp);
+
cwhen->expr = flatten_tlistentry(cwhen->expr, flat_tlist);
cwhen->result = flatten_tlistentry(cwhen->result, flat_tlist);
}
@@ -521,18 +527,18 @@ get_expr(TargetEntry *tle)
Var *
get_groupclause_expr(GroupClause *groupClause, List *targetList)
{
- List *l;
- TargetEntry *tle;
+ List *l;
+ TargetEntry *tle;
foreach(l, targetList)
{
- tle = (TargetEntry *)lfirst(l);
+ tle = (TargetEntry *) lfirst(l);
if (tle->resdom->resgroupref == groupClause->tleGroupref)
return get_expr(tle);
}
- elog(ERROR,
- "get_groupclause_expr: GROUP BY expression not found in targetlist");
+ elog(ERROR,
+ "get_groupclause_expr: GROUP BY expression not found in targetlist");
return NULL;
}
diff --git a/src/backend/optimizer/util/var.c b/src/backend/optimizer/util/var.c
index b906f8e4c48..fd57067cdd2 100644
--- a/src/backend/optimizer/util/var.c
+++ b/src/backend/optimizer/util/var.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.18 1999/05/03 00:38:44 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.19 1999/05/25 16:10:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -102,10 +102,11 @@ contain_var_clause(Node *clause)
}
else if (IsA(clause, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(temp, ((Expr *) clause)->args)
{
@@ -139,6 +140,7 @@ contain_var_clause(Node *clause)
foreach(temp, ((CaseExpr *) clause)->args)
{
CaseWhen *when = (CaseWhen *) lfirst(temp);
+
if (contain_var_clause(when->expr))
return TRUE;
if (contain_var_clause(when->result))
@@ -188,10 +190,11 @@ pull_var_clause(Node *clause)
}
else if (IsA(clause, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(temp, ((Expr *) clause)->args)
retval = nconc(retval, pull_var_clause(lfirst(temp)));
@@ -214,6 +217,7 @@ pull_var_clause(Node *clause)
foreach(temp, ((CaseExpr *) clause)->args)
{
CaseWhen *when = (CaseWhen *) lfirst(temp);
+
retval = nconc(retval, pull_var_clause(when->expr));
retval = nconc(retval, pull_var_clause(when->result));
}
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 14c8150ff05..243165efc68 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: analyze.c,v 1.107 1999/05/23 21:41:14 tgl Exp $
+ * $Id: analyze.c,v 1.108 1999/05/25 16:10:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,8 +45,8 @@ static Query *transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt);
static Query *transformCursorStmt(ParseState *pstate, SelectStmt *stmt);
static Query *transformCreateStmt(ParseState *pstate, CreateStmt *stmt);
-static void transformForUpdate(Query *qry, List *forUpdate);
-void CheckSelectForUpdate(Query *qry);
+static void transformForUpdate(Query *qry, List *forUpdate);
+void CheckSelectForUpdate(Query *qry);
List *extras_before = NIL;
List *extras_after = NIL;
@@ -62,9 +62,9 @@ List *extras_after = NIL;
List *
parse_analyze(List *pl, ParseState *parentParseState)
{
- List *result = NIL;
+ List *result = NIL;
ParseState *pstate;
- Query *parsetree;
+ Query *parsetree;
while (pl != NIL)
{
@@ -76,7 +76,7 @@ parse_analyze(List *pl, ParseState *parentParseState)
while (extras_before != NIL)
{
result = lappend(result,
- transformStmt(pstate, lfirst(extras_before)));
+ transformStmt(pstate, lfirst(extras_before)));
if (pstate->p_target_relation != NULL)
heap_close(pstate->p_target_relation);
extras_before = lnext(extras_before);
@@ -192,8 +192,8 @@ transformStmt(ParseState *pstate, Node *parseTree)
if (!((SelectStmt *) parseTree)->portalname)
{
result = transformSelectStmt(pstate, (SelectStmt *) parseTree);
- result->limitOffset = ((SelectStmt *)parseTree)->limitOffset;
- result->limitCount = ((SelectStmt *)parseTree)->limitCount;
+ result->limitOffset = ((SelectStmt *) parseTree)->limitOffset;
+ result->limitCount = ((SelectStmt *) parseTree)->limitCount;
}
else
result = transformCursorStmt(pstate, (SelectStmt *) parseTree);
@@ -276,8 +276,8 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
int ndef = pstate->p_target_relation->rd_att->constr->num_defval;
/*
- * if stmt->cols == NIL then makeTargetNames returns list of all attrs.
- * May have to shorten icolumns list...
+ * if stmt->cols == NIL then makeTargetNames returns list of all
+ * attrs. May have to shorten icolumns list...
*/
if (stmt->cols == NIL)
{
@@ -286,16 +286,18 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
foreach(extrl, icolumns)
{
+
/*
- * decrements first, so if we started with zero items
- * it will now be negative
+ * decrements first, so if we started with zero items it
+ * will now be negative
*/
if (--i <= 0)
break;
}
+
/*
- * this an index into the targetList,
- * so make sure we had one to start...
+ * this an index into the targetList, so make sure we had one
+ * to start...
*/
if (i >= 0)
{
@@ -303,9 +305,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
lnext(extrl) = NIL;
}
else
- {
icolumns = NIL;
- }
}
while (ndef-- > 0)
@@ -378,15 +378,18 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
/*
* The INSERT INTO ... SELECT ... could have a UNION in child, so
- * unionClause may be false
-, */
- qry->unionall = stmt->unionall;
+ * unionClause may be false ,
+ */
+ qry->unionall = stmt->unionall;
+
+ /***S*I***/
- /***S*I***/
- /* Just hand through the unionClause and intersectClause.
- * We will handle it in the function Except_Intersect_Rewrite() */
- qry->unionClause = stmt->unionClause;
- qry->intersectClause = stmt->intersectClause;
+ /*
+ * Just hand through the unionClause and intersectClause. We will
+ * handle it in the function Except_Intersect_Rewrite()
+ */
+ qry->unionClause = stmt->unionClause;
+ qry->intersectClause = stmt->intersectClause;
/*
* If there is a havingQual but there are no aggregates, then there is
@@ -508,9 +511,12 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
Constraint *constraint;
List *keys;
Ident *key;
- List *blist = NIL; /* "before list" of things to do before creating the table */
- List *ilist = NIL; /* "index list" of things to do after creating the table */
- IndexStmt *index, *pkey = NULL;
+ List *blist = NIL; /* "before list" of things to do before
+ * creating the table */
+ List *ilist = NIL; /* "index list" of things to do after
+ * creating the table */
+ IndexStmt *index,
+ *pkey = NULL;
IndexElem *iparam;
q = makeNode(Query);
@@ -532,15 +538,15 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
if (column->is_sequence)
{
- char *sname;
- char *cstring;
+ char *sname;
+ char *cstring;
CreateSeqStmt *sequence;
sname = makeTableName(stmt->relname, column->colname, "seq", NULL);
if (sname == NULL)
elog(ERROR, "CREATE TABLE/SERIAL implicit sequence name must be less than %d characters"
"\n\tSum of lengths of '%s' and '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, column->colname, (NAMEDATALEN-5));
+ NAMEDATALEN, stmt->relname, column->colname, (NAMEDATALEN - 5));
constraint = makeNode(Constraint);
constraint->contype = CONSTR_DEFAULT;
@@ -560,7 +566,7 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
if (constraint->name == NULL)
elog(ERROR, "CREATE TABLE/SERIAL implicit index name must be less than %d characters"
"\n\tSum of lengths of '%s' and '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, column->colname, (NAMEDATALEN-5));
+ NAMEDATALEN, stmt->relname, column->colname, (NAMEDATALEN - 5));
column->constraints = lappend(column->constraints, constraint);
sequence = makeNode(CreateSeqStmt);
@@ -582,8 +588,11 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
switch (constraint->contype)
{
case CONSTR_NULL:
- /* We should mark this explicitly,
- * so we can tell if NULL and NOT NULL are both specified
+
+ /*
+ * We should mark this explicitly, so we
+ * can tell if NULL and NOT NULL are both
+ * specified
*/
if (column->is_not_null)
elog(ERROR, "CREATE TABLE/(NOT) NULL conflicting declaration"
@@ -611,7 +620,7 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
if (constraint->name == NULL)
elog(ERROR, "CREATE TABLE/PRIMARY KEY implicit index name must be less than %d characters"
"\n\tLength of '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, (NAMEDATALEN-6));
+ NAMEDATALEN, stmt->relname, (NAMEDATALEN - 6));
if (constraint->keys == NIL)
constraint->keys = lappend(constraint->keys, column);
dlist = lappend(dlist, constraint);
@@ -623,7 +632,7 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
if (constraint->name == NULL)
elog(ERROR, "CREATE TABLE/UNIQUE implicit index name must be less than %d characters"
"\n\tLength of '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, (NAMEDATALEN-5));
+ NAMEDATALEN, stmt->relname, (NAMEDATALEN - 5));
if (constraint->keys == NIL)
constraint->keys = lappend(constraint->keys, column);
dlist = lappend(dlist, constraint);
@@ -636,7 +645,7 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
if (constraint->name == NULL)
elog(ERROR, "CREATE TABLE/CHECK implicit constraint name must be less than %d characters"
"\n\tSum of lengths of '%s' and '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, column->colname, (NAMEDATALEN-1));
+ NAMEDATALEN, stmt->relname, column->colname, (NAMEDATALEN - 1));
break;
default:
@@ -657,8 +666,8 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
constraint->name = makeTableName(stmt->relname, "pkey", NULL);
if (constraint->name == NULL)
elog(ERROR, "CREATE TABLE/PRIMARY KEY implicit index name must be less than %d characters"
- "\n\tLength of '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, (NAMEDATALEN-5));
+ "\n\tLength of '%s' must be less than %d",
+ NAMEDATALEN, stmt->relname, (NAMEDATALEN - 5));
dlist = lappend(dlist, constraint);
break;
@@ -704,12 +713,12 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
constraint = lfirst(dlist);
Assert(nodeTag(constraint) == T_Constraint);
Assert((constraint->contype == CONSTR_PRIMARY)
- || (constraint->contype == CONSTR_UNIQUE));
+ || (constraint->contype == CONSTR_UNIQUE));
index = makeNode(IndexStmt);
index->unique = TRUE;
- index->primary = (constraint->contype == CONSTR_PRIMARY ? TRUE:FALSE);
+ index->primary = (constraint->contype == CONSTR_PRIMARY ? TRUE : FALSE);
if (index->primary)
{
if (pkey != NULL)
@@ -719,21 +728,17 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
}
if (constraint->name != NULL)
- {
index->idxname = constraint->name;
- }
else if (constraint->contype == CONSTR_PRIMARY)
{
index->idxname = makeTableName(stmt->relname, "pkey", NULL);
if (index->idxname == NULL)
elog(ERROR, "CREATE TABLE/PRIMARY KEY implicit index name must be less than %d characters"
"\n\tLength of '%s' must be less than %d",
- NAMEDATALEN, stmt->relname, (NAMEDATALEN-5));
+ NAMEDATALEN, stmt->relname, (NAMEDATALEN - 5));
}
else
- {
index->idxname = NULL;
- }
index->relname = stmt->relname;
index->accessMethod = "btree";
@@ -793,16 +798,20 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
ilist = NIL;
while (dlist != NIL)
{
- int keep = TRUE;
+ int keep = TRUE;
index = lfirst(dlist);
- /* has a single column argument, so might be a conflicting index... */
+ /*
+ * has a single column argument, so might be a conflicting
+ * index...
+ */
if ((index != pkey)
- && (length(index->indexParams) == 1))
+ && (length(index->indexParams) == 1))
{
- char *pname = ((IndexElem *) lfirst(index->indexParams))->name;
- char *iname = ((IndexElem *) lfirst(index->indexParams))->name;
+ char *pname = ((IndexElem *) lfirst(index->indexParams))->name;
+ char *iname = ((IndexElem *) lfirst(index->indexParams))->name;
+
/* same names? then don't keep... */
keep = (strcmp(iname, pname) != 0);
}
@@ -818,7 +827,7 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
{
index = lfirst(dlist);
elog(NOTICE, "CREATE TABLE/%s will create implicit index '%s' for table '%s'",
- (index->primary? "PRIMARY KEY": "UNIQUE"),
+ (index->primary ? "PRIMARY KEY" : "UNIQUE"),
index->idxname, stmt->relname);
dlist = lnext(dlist);
}
@@ -828,7 +837,7 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
extras_after = ilist;
return q;
-} /* transformCreateStmt() */
+} /* transformCreateStmt() */
/*
* transformIndexStmt -
@@ -1006,11 +1015,14 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
*/
qry->unionall = stmt->unionall;
- /***S*I***/
- /* Just hand through the unionClause and intersectClause.
- * We will handle it in the function Except_Intersect_Rewrite() */
- qry->unionClause = stmt->unionClause;
- qry->intersectClause = stmt->intersectClause;
+ /***S*I***/
+
+ /*
+ * Just hand through the unionClause and intersectClause. We will
+ * handle it in the function Except_Intersect_Rewrite()
+ */
+ qry->unionClause = stmt->unionClause;
+ qry->intersectClause = stmt->intersectClause;
/*
* If there is a havingQual but there are no aggregates, then there is
@@ -1092,91 +1104,92 @@ transformCursorStmt(ParseState *pstate, SelectStmt *stmt)
* The built up list is handed back in **select_list.
* If one of the SelectStmt Nodes has the 'unionall' flag
* set to true *unionall_present hands back 'true' */
-void
+void
create_select_list(Node *ptr, List **select_list, bool *unionall_present)
{
- if(IsA(ptr, SelectStmt)) {
- *select_list = lappend(*select_list, ptr);
- if(((SelectStmt *)ptr)->unionall == TRUE) *unionall_present = TRUE;
- return;
- }
-
- /* Recursively call for all arguments. A NOT expr has no lexpr! */
- if (((A_Expr *)ptr)->lexpr != NULL)
- create_select_list(((A_Expr *)ptr)->lexpr, select_list, unionall_present);
- create_select_list(((A_Expr *)ptr)->rexpr, select_list, unionall_present);
+ if (IsA(ptr, SelectStmt))
+ {
+ *select_list = lappend(*select_list, ptr);
+ if (((SelectStmt *) ptr)->unionall == TRUE)
+ *unionall_present = TRUE;
+ return;
+ }
+
+ /* Recursively call for all arguments. A NOT expr has no lexpr! */
+ if (((A_Expr *) ptr)->lexpr != NULL)
+ create_select_list(((A_Expr *) ptr)->lexpr, select_list, unionall_present);
+ create_select_list(((A_Expr *) ptr)->rexpr, select_list, unionall_present);
}
/* Changes the A_Expr Nodes to Expr Nodes and exchanges ANDs and ORs.
- * The reason for the exchange is easy: We implement INTERSECTs and EXCEPTs
+ * The reason for the exchange is easy: We implement INTERSECTs and EXCEPTs
* by rewriting these queries to semantically equivalent queries that use
- * IN and NOT IN subselects. To be able to use all three operations
- * (UNIONs INTERSECTs and EXCEPTs) in one complex query we have to
+ * IN and NOT IN subselects. To be able to use all three operations
+ * (UNIONs INTERSECTs and EXCEPTs) in one complex query we have to
* translate the queries into Disjunctive Normal Form (DNF). Unfortunately
* there is no function 'dnfify' but there is a function 'cnfify'
* which produces DNF when we exchange ANDs and ORs before calling
* 'cnfify' and exchange them back in the result.
*
* If an EXCEPT or INTERSECT is present *intersect_present
- * hands back 'true' */
-Node *A_Expr_to_Expr(Node *ptr, bool *intersect_present)
+ * hands back 'true' */
+Node *
+A_Expr_to_Expr(Node *ptr, bool *intersect_present)
{
- Node *result = NULL;
-
- switch(nodeTag(ptr))
- {
- case T_A_Expr:
- {
- A_Expr *a = (A_Expr *)ptr;
-
- switch (a->oper)
- {
- case AND:
- {
- Expr *expr = makeNode(Expr);
- Node *lexpr = A_Expr_to_Expr(((A_Expr *)ptr)->lexpr, intersect_present);
- Node *rexpr = A_Expr_to_Expr(((A_Expr *)ptr)->rexpr, intersect_present);
-
- *intersect_present = TRUE;
-
- expr->typeOid = BOOLOID;
- expr->opType = OR_EXPR;
- expr->args = makeList(lexpr, rexpr, -1);
- result = (Node *) expr;
- break;
- }
- case OR:
- {
- Expr *expr = makeNode(Expr);
- Node *lexpr = A_Expr_to_Expr(((A_Expr *)ptr)->lexpr, intersect_present);
- Node *rexpr = A_Expr_to_Expr(((A_Expr *)ptr)->rexpr, intersect_present);
-
- expr->typeOid = BOOLOID;
- expr->opType = AND_EXPR;
- expr->args = makeList(lexpr, rexpr, -1);
- result = (Node *) expr;
- break;
- }
- case NOT:
- {
- Expr *expr = makeNode(Expr);
- Node *rexpr = A_Expr_to_Expr(((A_Expr *)ptr)->rexpr, intersect_present);
-
- expr->typeOid = BOOLOID;
- expr->opType = NOT_EXPR;
- expr->args = makeList(rexpr, -1);
- result = (Node *) expr;
- break;
- }
- }
- break;
- }
- default:
- {
- result = ptr;
- }
- }
- return result;
+ Node *result = NULL;
+
+ switch (nodeTag(ptr))
+ {
+ case T_A_Expr:
+ {
+ A_Expr *a = (A_Expr *) ptr;
+
+ switch (a->oper)
+ {
+ case AND:
+ {
+ Expr *expr = makeNode(Expr);
+ Node *lexpr = A_Expr_to_Expr(((A_Expr *) ptr)->lexpr, intersect_present);
+ Node *rexpr = A_Expr_to_Expr(((A_Expr *) ptr)->rexpr, intersect_present);
+
+ *intersect_present = TRUE;
+
+ expr->typeOid = BOOLOID;
+ expr->opType = OR_EXPR;
+ expr->args = makeList(lexpr, rexpr, -1);
+ result = (Node *) expr;
+ break;
+ }
+ case OR:
+ {
+ Expr *expr = makeNode(Expr);
+ Node *lexpr = A_Expr_to_Expr(((A_Expr *) ptr)->lexpr, intersect_present);
+ Node *rexpr = A_Expr_to_Expr(((A_Expr *) ptr)->rexpr, intersect_present);
+
+ expr->typeOid = BOOLOID;
+ expr->opType = AND_EXPR;
+ expr->args = makeList(lexpr, rexpr, -1);
+ result = (Node *) expr;
+ break;
+ }
+ case NOT:
+ {
+ Expr *expr = makeNode(Expr);
+ Node *rexpr = A_Expr_to_Expr(((A_Expr *) ptr)->rexpr, intersect_present);
+
+ expr->typeOid = BOOLOID;
+ expr->opType = NOT_EXPR;
+ expr->args = makeList(rexpr, -1);
+ result = (Node *) expr;
+ break;
+ }
+ }
+ break;
+ }
+ default:
+ result = ptr;
+ }
+ return result;
}
void
@@ -1196,7 +1209,7 @@ static void
transformForUpdate(Query *qry, List *forUpdate)
{
List *rowMark = NULL;
- RowMark *newrm;
+ RowMark *newrm;
List *l;
Index i;
@@ -1205,37 +1218,37 @@ transformForUpdate(Query *qry, List *forUpdate)
if (lfirst(forUpdate) == NULL) /* all tables */
{
i = 1;
- foreach (l, qry->rtable)
+ foreach(l, qry->rtable)
{
newrm = makeNode(RowMark);
newrm->rti = i++;
- newrm->info = ROW_MARK_FOR_UPDATE|ROW_ACL_FOR_UPDATE;
+ newrm->info = ROW_MARK_FOR_UPDATE | ROW_ACL_FOR_UPDATE;
rowMark = lappend(rowMark, newrm);
}
qry->rowMark = nconc(qry->rowMark, rowMark);
return;
}
- foreach (l, forUpdate)
+ foreach(l, forUpdate)
{
- List *l2;
- List *l3;
+ List *l2;
+ List *l3;
i = 1;
- foreach (l2, qry->rtable)
+ foreach(l2, qry->rtable)
{
- if (strcmp(((RangeTblEntry*)lfirst(l2))->refname, lfirst(l)) == 0)
+ if (strcmp(((RangeTblEntry *) lfirst(l2))->refname, lfirst(l)) == 0)
{
- foreach (l3, rowMark)
+ foreach(l3, rowMark)
{
- if (((RowMark*)lfirst(l3))->rti == i) /* duplicate */
+ if (((RowMark *) lfirst(l3))->rti == i) /* duplicate */
break;
}
if (l3 == NULL)
{
newrm = makeNode(RowMark);
newrm->rti = i;
- newrm->info = ROW_MARK_FOR_UPDATE|ROW_ACL_FOR_UPDATE;
+ newrm->info = ROW_MARK_FOR_UPDATE | ROW_ACL_FOR_UPDATE;
rowMark = lappend(rowMark, newrm);
}
break;
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index 19dd98dfbe8..559337cc2f9 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.20 1999/05/23 21:41:14 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.21 1999/05/25 16:10:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,8 +33,8 @@
static bool contain_agg_clause(Node *clause);
static bool exprIsAggOrGroupCol(Node *expr, List *groupClause, List *tlist);
-static bool tleIsAggOrGroupCol(TargetEntry *tle, List *groupClause,
- List *tlist);
+static bool tleIsAggOrGroupCol(TargetEntry *tle, List *groupClause,
+ List *tlist);
/*
* contain_agg_clause
@@ -106,7 +106,7 @@ exprIsAggOrGroupCol(Node *expr, List *groupClause, List *tlist)
List *gl;
if (expr == NULL || IsA(expr, Const) ||
- IsA(expr, Param) || IsA(expr, Aggref) ||
+ IsA(expr, Param) ||IsA(expr, Aggref) ||
IsA(expr, SubLink)) /* can't handle currently !!! */
return TRUE;
@@ -190,11 +190,11 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
Assert(pstate->p_hasAggs || qry->groupClause);
/*
- * Aggregates must never appear in WHERE clauses.
- * (Note this check should appear first to deliver an appropriate
- * error message; otherwise we are likely to generate the generic
- * "illegal use of aggregates in target list" message, which is
- * outright misleading if the problem is in WHERE.)
+ * Aggregates must never appear in WHERE clauses. (Note this check
+ * should appear first to deliver an appropriate error message;
+ * otherwise we are likely to generate the generic "illegal use of
+ * aggregates in target list" message, which is outright misleading if
+ * the problem is in WHERE.)
*/
if (contain_agg_clause(qry->qual))
elog(ERROR, "Aggregates not allowed in WHERE clause");
@@ -219,7 +219,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
if (!exprIsAggOrGroupCol(qry->havingQual, qry->groupClause, qry->targetList))
elog(ERROR,
- "Illegal use of aggregates or non-group column in HAVING clause");
+ "Illegal use of aggregates or non-group column in HAVING clause");
}
@@ -313,7 +313,7 @@ ParseAgg(ParseState *pstate, char *aggname, Oid basetype,
basetype = aggform->aggbasetype;
vartype = exprType(lfirst(target));
if ((basetype != vartype)
- && (! IS_BINARY_COMPATIBLE(basetype, vartype)))
+ && (!IS_BINARY_COMPATIBLE(basetype, vartype)))
{
Type tp1,
tp2;
@@ -321,8 +321,8 @@ ParseAgg(ParseState *pstate, char *aggname, Oid basetype,
tp1 = typeidType(basetype);
tp2 = typeidType(vartype);
elog(ERROR, "Aggregate type mismatch"
- "\n\t%s() works on %s, not on %s",
- aggname, typeTypeName(tp1), typeTypeName(tp2));
+ "\n\t%s() works on %s, not on %s",
+ aggname, typeTypeName(tp1), typeTypeName(tp2));
}
}
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index f7b6f2219d1..618554e5613 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.35 1999/05/22 02:55:57 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.36 1999/05/25 16:10:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,13 +41,14 @@ static TargetEntry *
static void parseFromClause(ParseState *pstate, List *frmList, Node **qual);
-Attr *makeAttr(char *relname, char *attname);
+Attr *makeAttr(char *relname, char *attname);
#ifdef ENABLE_OUTER_JOINS
-Node *transformUsingClause(ParseState *pstate, List *onList, char *lname, char *rname);
+Node *transformUsingClause(ParseState *pstate, List *onList, char *lname, char *rname);
+
#endif
-char *transformTableEntry(ParseState *pstate, RangeVar *r);
+char *transformTableEntry(ParseState *pstate, RangeVar *r);
/*
@@ -67,16 +68,14 @@ makeRangeTable(ParseState *pstate, char *relname, List *frmList, Node **qual)
return;
if ((refnameRangeTablePosn(pstate, relname, &sublevels_up) == 0)
- || (sublevels_up != 0))
+ || (sublevels_up != 0))
rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE);
else
rte = refnameRangeTableEntry(pstate, relname);
/* This could only happen for multi-action rules */
if (pstate->p_target_relation != NULL)
- {
heap_close(pstate->p_target_relation);
- }
pstate->p_target_rangetblentry = rte;
pstate->p_target_relation = heap_open(rte->relid);
@@ -102,7 +101,8 @@ transformWhereClause(ParseState *pstate, Node *a_expr, Node *o_expr)
if ((a_expr != NULL) && (o_expr != NULL))
{
- A_Expr *a = makeNode(A_Expr);
+ A_Expr *a = makeNode(A_Expr);
+
a->oper = AND;
a->opname = NULL;
a->lexpr = o_expr;
@@ -110,12 +110,12 @@ transformWhereClause(ParseState *pstate, Node *a_expr, Node *o_expr)
expr = a;
}
else if (o_expr != NULL)
- expr = (A_Expr *)o_expr;
+ expr = (A_Expr *) o_expr;
else
- expr = (A_Expr *)a_expr;
+ expr = (A_Expr *) a_expr;
pstate->p_in_where_clause = true;
- qual = transformExpr(pstate, (Node *)expr, EXPR_COLUMN_FIRST);
+ qual = transformExpr(pstate, (Node *) expr, EXPR_COLUMN_FIRST);
pstate->p_in_where_clause = false;
if (exprType(qual) != BOOLOID)
@@ -130,6 +130,7 @@ Attr *
makeAttr(char *relname, char *attname)
{
Attr *a = makeNode(Attr);
+
a->relname = relname;
a->paramNo = NULL;
a->attrs = lcons(makeString(attname), NIL);
@@ -149,30 +150,34 @@ transformUsingClause(ParseState *pstate, List *onList, char *lname, char *rname)
List *on;
Node *qual;
- foreach (on, onList)
+ foreach(on, onList)
{
qual = lfirst(on);
- /* Ident node means it is just a column name from a real USING clause... */
+ /*
+ * Ident node means it is just a column name from a real USING
+ * clause...
+ */
if (IsA(qual, Ident))
{
- Ident *i = (Ident *)qual;
+ Ident *i = (Ident *) qual;
Attr *lattr = makeAttr(lname, i->name);
Attr *rattr = makeAttr(rname, i->name);
- A_Expr *e = makeNode(A_Expr);
+ A_Expr *e = makeNode(A_Expr);
e->oper = OP;
e->opname = "=";
- e->lexpr = (Node *)lattr;
- e->rexpr = (Node *)rattr;
+ e->lexpr = (Node *) lattr;
+ e->rexpr = (Node *) rattr;
if (expr != NULL)
{
- A_Expr *a = makeNode(A_Expr);
+ A_Expr *a = makeNode(A_Expr);
+
a->oper = AND;
a->opname = NULL;
- a->lexpr = (Node *)expr;
- a->rexpr = (Node *)e;
+ a->lexpr = (Node *) expr;
+ a->rexpr = (Node *) e;
expr = a;
}
else
@@ -184,21 +189,21 @@ transformUsingClause(ParseState *pstate, List *onList, char *lname, char *rname)
{
if (expr != NULL)
{
- A_Expr *a = makeNode(A_Expr);
+ A_Expr *a = makeNode(A_Expr);
+
a->oper = AND;
a->opname = NULL;
- a->lexpr = (Node *)expr;
- a->rexpr = (Node *)qual;
+ a->lexpr = (Node *) expr;
+ a->rexpr = (Node *) qual;
expr = a;
}
else
- {
- expr = (A_Expr *)qual;
- }
+ expr = (A_Expr *) qual;
}
}
- return ((Node *)transformExpr(pstate, (Node *)expr, EXPR_COLUMN_FIRST));
+ return ((Node *) transformExpr(pstate, (Node *) expr, EXPR_COLUMN_FIRST));
}
+
#endif
char *
@@ -213,15 +218,14 @@ transformTableEntry(ParseState *pstate, RangeVar *r)
refname = relname;
/*
- * marks this entry to indicate it comes from the FROM clause. In
- * SQL, the target list can only refer to range variables
- * specified in the from clause but we follow the more powerful
- * POSTQUEL semantics and automatically generate the range
- * variable if not specified. However there are times we need to
- * know whether the entries are legitimate.
+ * marks this entry to indicate it comes from the FROM clause. In SQL,
+ * the target list can only refer to range variables specified in the
+ * from clause but we follow the more powerful POSTQUEL semantics and
+ * automatically generate the range variable if not specified. However
+ * there are times we need to know whether the entries are legitimate.
*
- * eg. select * from foo f where f.x = 1; will generate wrong answer
- * if we expand * to foo.x.
+ * eg. select * from foo f where f.x = 1; will generate wrong answer if
+ * we expand * to foo.x.
*/
rte = addRangeTableEntry(pstate, relname, refname, baserel->inh, TRUE);
@@ -253,7 +257,8 @@ parseFromClause(ParseState *pstate, List *frmList, Node **qual)
foreach(fl, frmList)
{
- Node *n = lfirst(fl);
+ Node *n = lfirst(fl);
+
/*
* marks this entry to indicate it comes from the FROM clause. In
* SQL, the target list can only refer to range variables
@@ -266,34 +271,36 @@ parseFromClause(ParseState *pstate, List *frmList, Node **qual)
* if we expand * to foo.x.
*/
if (IsA(n, RangeVar))
- {
- transformTableEntry(pstate, (RangeVar *)n);
- }
+ transformTableEntry(pstate, (RangeVar *) n);
else if (IsA(n, JoinExpr))
{
- JoinExpr *j = (JoinExpr *)n;
+ JoinExpr *j = (JoinExpr *) n;
+
#ifdef ENABLE_OUTER_JOINS
- char *lname = transformTableEntry(pstate, (RangeVar *)j->larg);
+ char *lname = transformTableEntry(pstate, (RangeVar *) j->larg);
+
#endif
char *rname;
- if (IsA((Node *)j->rarg, RangeVar))
- rname = transformTableEntry(pstate, (RangeVar *)j->rarg);
+ if (IsA((Node *) j->rarg, RangeVar))
+ rname = transformTableEntry(pstate, (RangeVar *) j->rarg);
else
elog(ERROR, "Nested JOINs are not yet supported");
#ifdef ENABLE_OUTER_JOINS
if (j->jointype == INNER_P)
{
- /* This is an inner join, so rip apart the join node
- * and transform into a traditional FROM list.
- * NATURAL JOIN and USING clauses both change the shape
- * of the result. Need to generate a list of result columns
- * to use for target list expansion and validation.
- * Not doing this yet though!
+
+ /*
+ * This is an inner join, so rip apart the join node and
+ * transform into a traditional FROM list. NATURAL JOIN
+ * and USING clauses both change the shape of the result.
+ * Need to generate a list of result columns to use for
+ * target list expansion and validation. Not doing this
+ * yet though!
*/
if (IsA(j->quals, List))
- j->quals = lcons(transformUsingClause(pstate, (List *)j->quals, lname, rname), NIL);
+ j->quals = lcons(transformUsingClause(pstate, (List *) j->quals, lname, rname), NIL);
Assert(qual != NULL);
@@ -302,19 +309,19 @@ parseFromClause(ParseState *pstate, List *frmList, Node **qual)
else
elog(ERROR, "Multiple JOIN/ON clauses not handled (internal error)");
- /* if we are transforming this node back into a FROM list,
+ /*
+ * if we are transforming this node back into a FROM list,
* then we will need to replace the node with two nodes.
* Will need access to the previous list item to change
- * the link pointer to reference these new nodes.
- * Try accumulating and returning a new list.
- * - thomas 1999-01-08
- * Not doing this yet though!
+ * the link pointer to reference these new nodes. Try
+ * accumulating and returning a new list. - thomas
+ * 1999-01-08 Not doing this yet though!
*/
}
else if ((j->jointype == LEFT)
- || (j->jointype == RIGHT)
- || (j->jointype == FULL))
+ || (j->jointype == RIGHT)
+ || (j->jointype == FULL))
elog(ERROR, "OUTER JOIN is not implemented");
else
elog(ERROR, "Unrecognized JOIN clause; tag is %d (internal error)",
@@ -545,7 +552,7 @@ transformGroupClause(ParseState *pstate, List *grouplist, List *targetlist)
resdom->restype, false));
if (glist == NIL)
{
- int groupref = length(glist) + 1;
+ int groupref = length(glist) + 1;
restarget->resdom->resgroupref = groupref;
grpcl->tleGroupref = groupref;
@@ -561,12 +568,12 @@ transformGroupClause(ParseState *pstate, List *grouplist, List *targetlist)
GroupClause *gcl = (GroupClause *) lfirst(i);
if (equal(get_groupclause_expr(gcl, targetlist),
- restarget->expr))
+ restarget->expr))
break;
}
if (i == NIL) /* not in grouplist already */
{
- int groupref = length(glist) + 1;
+ int groupref = length(glist) + 1;
restarget->resdom->resgroupref = groupref;
grpcl->tleGroupref = groupref;
@@ -749,21 +756,22 @@ transformUnionClause(List *unionClause, List *targetlist)
/* recursion */
qlist = parse_analyze(unionClause, NULL);
- foreach (qlist_item, qlist)
+ foreach(qlist_item, qlist)
{
Query *query = (Query *) lfirst(qlist_item);
List *prev_target = targetlist;
List *next_target;
- int prev_len = 0, next_len = 0;
+ int prev_len = 0,
+ next_len = 0;
foreach(prev_target, targetlist)
if (!((TargetEntry *) lfirst(prev_target))->resdom->resjunk)
- prev_len++;
+ prev_len++;
foreach(next_target, query->targetList)
if (!((TargetEntry *) lfirst(next_target))->resdom->resjunk)
- next_len++;
-
+ next_len++;
+
if (prev_len != next_len)
elog(ERROR, "Each UNION clause must have the same number of columns");
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index a481ecfa0a0..17b06faf4b5 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.15 1999/05/22 04:12:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.16 1999/05/25 16:10:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,7 +28,7 @@
Oid DemoteType(Oid inType);
Oid PromoteTypeToNext(Oid inType);
-static Oid PreferredType(CATEGORY category, Oid type);
+static Oid PreferredType(CATEGORY category, Oid type);
/* coerce_type()
@@ -36,7 +36,7 @@ static Oid PreferredType(CATEGORY category, Oid type);
*/
Node *
coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, Oid targetTypeId,
- int32 atttypmod)
+ int32 atttypmod)
{
Node *result = NULL;
Oid infunc;
@@ -60,6 +60,7 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, Oid targetTypeId,
*/
else if (inputTypeId != UNKNOWNOID)
{
+
/*
* We already know there is a function which will do this, so
* let's use it
@@ -77,22 +78,22 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, Oid targetTypeId,
{
Const *con = (Const *) node;
- val = (Datum) textout((struct varlena *)con->constvalue);
+ val = (Datum) textout((struct varlena *) con->constvalue);
infunc = typeidInfunc(targetTypeId);
con = makeNode(Const);
con->consttype = targetTypeId;
con->constlen = typeLen(typeidType(targetTypeId));
/*
- * Use "-1" for varchar() type.
- * For char(), we need to pad out the type with the proper
- * number of spaces. This was a major problem for
- * DEFAULT string constants to char() types.
+ * Use "-1" for varchar() type. For char(), we need to pad
+ * out the type with the proper number of spaces. This
+ * was a major problem for DEFAULT string constants to
+ * char() types.
*/
con->constvalue = (Datum) fmgr(infunc,
val,
- typeidTypElem(targetTypeId),
- (targetTypeId != BPCHAROID) ? -1 : atttypmod);
+ typeidTypElem(targetTypeId),
+ (targetTypeId != BPCHAROID) ? -1 : atttypmod);
con->constisnull = false;
con->constbyval = typeByVal(typeidType(targetTypeId));
con->constisset = false;
@@ -150,6 +151,7 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids)
/* don't know what to do for the input type? then quit... */
else if (input_typeids[i] == InvalidOid)
return false;
+
/*
* if not unknown input type, try for explicit conversion
* using functions...
@@ -298,7 +300,7 @@ PreferredType(CATEGORY category, Oid type)
case (NETWORK_TYPE):
result = INETOID;
break;
-
+
case (GEOMETRIC_TYPE):
case (USER_TYPE):
result = type;
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 8245beed110..8ea98d28097 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.47 1999/05/22 04:12:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.48 1999/05/25 16:10:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -152,7 +152,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
*/
idx = lnext(idx);
}
- result = (Node *) make_array_ref((Node *)param, pno->indirection);
+ result = (Node *) make_array_ref((Node *) param, pno->indirection);
}
else
result = (Node *) param;
@@ -251,7 +251,8 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
{
/*
- * look for a column name or a relation name (the default behavior)
+ * look for a column name or a relation name (the default
+ * behavior)
*/
result = transformIdent(pstate, expr, precedence);
break;
@@ -343,28 +344,31 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
if (c->arg != NULL)
{
/* shorthand form was specified, so expand... */
- A_Expr *a = makeNode(A_Expr);
+ A_Expr *a = makeNode(A_Expr);
+
a->oper = OP;
a->opname = "=";
a->lexpr = c->arg;
a->rexpr = w->expr;
- w->expr = (Node *)a;
+ w->expr = (Node *) a;
}
lfirst(args) = transformExpr(pstate, (Node *) w, precedence);
}
- /* It's not shorthand anymore, so drop the implicit argument.
- * This is necessary to keep the executor from seeing an
- * untransformed expression...
+ /*
+ * It's not shorthand anymore, so drop the implicit
+ * argument. This is necessary to keep the executor from
+ * seeing an untransformed expression...
*/
c->arg = NULL;
/* transform the default clause */
if (c->defresult == NULL)
{
- A_Const *n = makeNode(A_Const);
+ A_Const *n = makeNode(A_Const);
+
n->val.type = T_Null;
- c->defresult = (Node *)n;
+ c->defresult = (Node *) n;
}
c->defresult = transformExpr(pstate, (Node *) c->defresult, precedence);
@@ -380,7 +384,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
wtype = exprType(w->result);
/* move on to next one if no new information... */
if (wtype && (wtype != UNKNOWNOID)
- && (wtype != ptype))
+ && (wtype != ptype))
{
/* so far, only nulls so take anything... */
if (!ptype)
@@ -388,15 +392,23 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
ptype = wtype;
pcategory = TypeCategory(ptype);
}
- /* both types in different categories? then not much hope... */
+
+ /*
+ * both types in different categories? then not
+ * much hope...
+ */
else if ((TypeCategory(wtype) != pcategory)
- || ((TypeCategory(wtype) == USER_TYPE)
- && (TypeCategory(c->casetype) == USER_TYPE)))
+ || ((TypeCategory(wtype) == USER_TYPE)
+ && (TypeCategory(c->casetype) == USER_TYPE)))
{
- elog(ERROR,"CASE/WHEN types '%s' and '%s' not matched",
+ elog(ERROR, "CASE/WHEN types '%s' and '%s' not matched",
typeidTypeName(c->casetype), typeidTypeName(wtype));
}
- /* new one is preferred and can convert? then take it... */
+
+ /*
+ * new one is preferred and can convert? then take
+ * it...
+ */
else if (IsPreferredType(pcategory, wtype)
&& can_coerce_type(1, &ptype, &wtype))
{
@@ -409,21 +421,24 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
/* Convert default result clause, if necessary */
if (c->casetype != ptype)
{
- if (! c->casetype)
+ if (!c->casetype)
{
- /* default clause is NULL,
- * so assign preferred type from WHEN clauses... */
+
+ /*
+ * default clause is NULL, so assign preferred
+ * type from WHEN clauses...
+ */
c->casetype = ptype;
}
else if (can_coerce_type(1, &c->casetype, &ptype))
{
c->defresult = coerce_type(pstate, c->defresult,
- c->casetype, ptype, -1);
+ c->casetype, ptype, -1);
c->casetype = ptype;
}
else
{
- elog(ERROR,"CASE/ELSE unable to convert to type %s",
+ elog(ERROR, "CASE/ELSE unable to convert to type %s",
typeidTypeName(ptype));
}
}
@@ -431,11 +446,15 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
/* Convert when clauses, if not null and if necessary */
foreach(args, c->args)
{
- Oid wtype;
+ Oid wtype;
w = lfirst(args);
wtype = exprType(w->result);
- /* only bother with conversion if not NULL and different type... */
+
+ /*
+ * only bother with conversion if not NULL and
+ * different type...
+ */
if (wtype && (wtype != ptype))
{
if (can_coerce_type(1, &wtype, &ptype))
@@ -445,7 +464,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
}
else
{
- elog(ERROR,"CASE/WHEN unable to convert to type %s",
+ elog(ERROR, "CASE/WHEN unable to convert to type %s",
typeidTypeName(ptype));
}
}
@@ -461,14 +480,18 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
w->expr = transformExpr(pstate, (Node *) w->expr, precedence);
if (exprType(w->expr) != BOOLOID)
- elog(ERROR,"WHEN clause must have a boolean result");
+ elog(ERROR, "WHEN clause must have a boolean result");
- /* result is NULL for NULLIF() construct - thomas 1998-11-11 */
+ /*
+ * result is NULL for NULLIF() construct - thomas
+ * 1998-11-11
+ */
if (w->result == NULL)
{
- A_Const *n = makeNode(A_Const);
+ A_Const *n = makeNode(A_Const);
+
n->val.type = T_Null;
- w->result = (Node *)n;
+ w->result = (Node *) n;
}
w->result = transformExpr(pstate, (Node *) w->result, precedence);
result = expr;
@@ -530,7 +553,7 @@ transformIdent(ParseState *pstate, Node *expr, int precedence)
att->relname = rte->refname;
att->attrs = lcons(makeString(ident->name), NIL);
column_result = (Node *) ParseNestedFuncOrColumn(pstate, att,
- &pstate->p_last_resno, precedence);
+ &pstate->p_last_resno, precedence);
}
/* try to find the ident as a relation */
@@ -602,11 +625,13 @@ exprType(Node *expr)
break;
case T_SubLink:
{
- SubLink *sublink = (SubLink *) expr;
+ SubLink *sublink = (SubLink *) expr;
+
if (sublink->subLinkType == EXPR_SUBLINK)
{
/* return the result type of the combining operator */
- Expr *op_expr = (Expr *) lfirst(sublink->oper);
+ Expr *op_expr = (Expr *) lfirst(sublink->oper);
+
type = op_expr->typeOid;
}
else
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 6a4258048b9..8fa8fb8b365 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.45 1999/05/22 04:12:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.46 1999/05/25 16:10:17 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -77,9 +77,9 @@ static int match_argtypes(int nargs,
static List *setup_tlist(char *attname, Oid relid);
static List *setup_base_tlist(Oid typeid);
static Oid *func_select_candidate(int nargs, Oid *input_typeids,
- CandidateList candidates);
-static int agg_get_candidates(char *aggname, Oid typeId, CandidateList *candidates);
-static Oid agg_select_candidate(Oid typeid, CandidateList candidates);
+ CandidateList candidates);
+static int agg_get_candidates(char *aggname, Oid typeId, CandidateList *candidates);
+static Oid agg_select_candidate(Oid typeid, CandidateList candidates);
#define ISCOMPLEX(type) (typeidTypeRelid(type) ? true : false)
@@ -91,7 +91,7 @@ typedef struct _SuperQE
} SuperQE;
/*
- ** ParseNestedFuncOrColumn
+ ** ParseNestedFuncOrColumn
** Given a nested dot expression (i.e. (relation func ... attr), build up
** a tree with of Iter and Func nodes.
*/
@@ -139,12 +139,12 @@ agg_get_candidates(char *aggname,
Oid typeId,
CandidateList *candidates)
{
- CandidateList current_candidate;
- Relation pg_aggregate_desc;
- HeapScanDesc pg_aggregate_scan;
- HeapTuple tup;
- Form_pg_aggregate agg;
- int ncandidates = 0;
+ CandidateList current_candidate;
+ Relation pg_aggregate_desc;
+ HeapScanDesc pg_aggregate_scan;
+ HeapTuple tup;
+ Form_pg_aggregate agg;
+ int ncandidates = 0;
static ScanKeyData aggKey[1] = {
{0, Anum_pg_aggregate_aggname, F_NAMEEQ}};
@@ -157,7 +157,7 @@ agg_get_candidates(char *aggname,
pg_aggregate_desc = heap_openr(AggregateRelationName);
pg_aggregate_scan = heap_beginscan(pg_aggregate_desc,
0,
- SnapshotSelf, /* ??? */
+ SnapshotSelf, /* ??? */
1,
aggKey);
@@ -185,12 +185,12 @@ agg_get_candidates(char *aggname,
static Oid
agg_select_candidate(Oid typeid, CandidateList candidates)
{
- CandidateList current_candidate;
- CandidateList last_candidate;
- Oid current_typeid;
- int ncandidates;
- CATEGORY category,
- current_category;
+ CandidateList current_candidate;
+ CandidateList last_candidate;
+ Oid current_typeid;
+ int ncandidates;
+ CATEGORY category,
+ current_category;
/*
* Look for candidates which allow coersion and have a preferred type.
@@ -227,13 +227,11 @@ agg_select_candidate(Oid typeid, CandidateList candidates)
}
/* otherwise, don't bother keeping this one around... */
else if (last_candidate != NULL)
- {
last_candidate->next = NULL;
- }
}
return ((ncandidates == 1) ? candidates->args[0] : 0);
-} /* agg_select_candidate() */
+} /* agg_select_candidate() */
/*
@@ -352,13 +350,14 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
}
else
{
+
/*
* Parsing aggregates.
*/
- Type tp;
- Oid basetype;
- int ncandidates;
- CandidateList candidates;
+ Type tp;
+ Oid basetype;
+ int ncandidates;
+ CandidateList candidates;
/*
* the aggregate COUNT is a special case, ignore its base
@@ -378,14 +377,13 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
fargs, precedence);
/*
- * No exact match yet, so see if there is another entry
- * in the aggregate table which is compatible.
- * - thomas 1998-12-05
+ * No exact match yet, so see if there is another entry in the
+ * aggregate table which is compatible. - thomas 1998-12-05
*/
ncandidates = agg_get_candidates(funcname, basetype, &candidates);
if (ncandidates > 0)
{
- Oid type;
+ Oid type;
type = agg_select_candidate(basetype, candidates);
if (OidIsValid(type))
@@ -399,7 +397,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
}
else
{
- elog(ERROR,"Unable to select an aggregate function %s(%s)",
+ elog(ERROR, "Unable to select an aggregate function %s(%s)",
funcname, typeidTypeName(basetype));
}
}
@@ -407,18 +405,16 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
/*
* See if this is a single argument function with the function
* name also a type name and the input argument and type name
- * binary compatible...
- * This means that you are trying for a type conversion which does not
- * need to take place, so we'll just pass through the argument itself.
- * (make this clearer with some extra brackets - thomas 1998-12-05)
+ * binary compatible... This means that you are trying for a
+ * type conversion which does not need to take place, so we'll
+ * just pass through the argument itself. (make this clearer
+ * with some extra brackets - thomas 1998-12-05)
*/
if ((HeapTupleIsValid(tp = SearchSysCacheTuple(TYPNAME,
- PointerGetDatum(funcname),
+ PointerGetDatum(funcname),
0, 0, 0)))
&& IS_BINARY_COMPATIBLE(typeTypeId(tp), basetype))
- {
return ((Node *) lfirst(fargs));
- }
}
}
@@ -440,6 +436,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
if (nodeTag(pair) == T_Ident && ((Ident *) pair)->isRel)
{
+
/*
* a relation
*/
@@ -551,9 +548,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
if (attisset)
{
if (!strcmp(funcname, "*"))
- {
funcnode->func_tlist = expandAll(pstate, relname, refname, curr_resno);
- }
else
{
funcnode->func_tlist = setup_tlist(funcname, argrelid);
@@ -581,13 +576,13 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
seqrel = textout((text *) DatumGetPointer(seq->constvalue));
/* Do we have nextval('"Aa"')? */
if (strlen(seqrel) >= 2 &&
- seqrel[0] == '\"' && seqrel[strlen(seqrel)-1] == '\"')
+ seqrel[0] == '\"' && seqrel[strlen(seqrel) - 1] == '\"')
{
/* strip off quotes, keep case */
- seqrel = pstrdup(seqrel+1);
- seqrel[strlen(seqrel)-1] = '\0';
+ seqrel = pstrdup(seqrel + 1);
+ seqrel[strlen(seqrel) - 1] = '\0';
pfree(DatumGetPointer(seq->constvalue));
- seq->constvalue = (Datum)textin(seqrel);
+ seq->constvalue = (Datum) textin(seqrel);
}
else
{
@@ -669,7 +664,7 @@ func_get_candidates(char *funcname, int nargs)
Relation heapRelation;
Relation idesc;
ScanKeyData skey;
- HeapTupleData tuple;
+ HeapTupleData tuple;
IndexScanDesc sd;
RetrieveIndexResult indexRes;
Form_pg_proc pgProcP;
@@ -837,9 +832,7 @@ func_select_candidate(int nargs,
ncandidates++;
}
else
- {
last_candidate->next = NULL;
- }
}
if (ncandidates == 1)
@@ -870,9 +863,7 @@ func_select_candidate(int nargs,
}
else if ((current_category != slot_category)
&& IS_BUILTIN_TYPE(current_type))
- {
return NULL;
- }
else if (current_type != slot_type)
{
if (IsPreferredType(slot_category, current_type))
@@ -881,16 +872,12 @@ func_select_candidate(int nargs,
candidates = current_candidate;
}
else if (IsPreferredType(slot_category, slot_type))
- {
- candidates->next = current_candidate->next;
- }
+ candidates->next = current_candidate->next;
}
}
if (slot_type != InvalidOid)
- {
input_typeids[i] = slot_type;
- }
}
else
{
@@ -979,7 +966,7 @@ func_get_detail(char *funcname,
ftup = SearchSysCacheTuple(PRONAME,
PointerGetDatum(funcname),
Int32GetDatum(nargs),
- PointerGetDatum(*true_typeids),
+ PointerGetDatum(*true_typeids),
0);
Assert(HeapTupleIsValid(ftup));
}
@@ -991,8 +978,8 @@ func_get_detail(char *funcname,
else if (ncandidates > 1)
{
*true_typeids = func_select_candidate(nargs,
- current_input_typeids,
- current_function_typeids);
+ current_input_typeids,
+ current_function_typeids);
/* couldn't decide, so quit */
if (*true_typeids == NULL)
@@ -1006,9 +993,9 @@ func_get_detail(char *funcname,
else
{
ftup = SearchSysCacheTuple(PRONAME,
- PointerGetDatum(funcname),
+ PointerGetDatum(funcname),
Int32GetDatum(nargs),
- PointerGetDatum(*true_typeids),
+ PointerGetDatum(*true_typeids),
0);
Assert(HeapTupleIsValid(ftup));
}
@@ -1304,9 +1291,9 @@ make_arguments(ParseState *pstate,
if (input_typeids[i] == UNKNOWNOID && function_typeids[i] != InvalidOid)
{
lfirst(current_fargs) = parser_typecast2(lfirst(current_fargs),
- input_typeids[i],
- typeidType(function_typeids[i]),
- -1);
+ input_typeids[i],
+ typeidType(function_typeids[i]),
+ -1);
}
/* types don't match? then force coersion using a function call... */
@@ -1321,7 +1308,7 @@ make_arguments(ParseState *pstate,
}
/*
- ** setup_tlist
+ ** setup_tlist
** Build a tlist that says which attribute to project to.
** This routine is called by ParseFuncOrColumn() to set up a target list
** on a tuple parameter or return value. Due to a bug in 4.0,
@@ -1359,7 +1346,7 @@ setup_tlist(char *attname, Oid relid)
}
/*
- ** setup_base_tlist
+ ** setup_base_tlist
** Build a tlist that extracts a base type from the tuple
** returned by the executor.
*/
diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c
index 6e039517603..9f41d00b9e3 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.24 1999/05/10 00:45:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.25 1999/05/25 16:10:18 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,8 +27,8 @@
#include "storage/bufmgr.h"
#include "utils/syscache.h"
-static Oid * oper_select_candidate(int nargs, Oid *input_typeids,
- CandidateList candidates);
+static Oid *oper_select_candidate(int nargs, Oid *input_typeids,
+ CandidateList candidates);
static int binary_oper_get_candidates(char *opname,
Oid leftTypeId,
Oid rightTypeId,
@@ -227,9 +227,7 @@ oper_select_candidate(int nargs,
}
/* otherwise, don't bother keeping this one... */
else
- {
last_candidate->next = NULL;
- }
}
if (ncandidates <= 1)
@@ -281,18 +279,14 @@ oper_select_candidate(int nargs,
ncandidates++;
}
else
- {
last_candidate->next = NULL;
- }
}
if (ncandidates <= 1)
{
if (!can_coerce_type(1, &input_typeids[0], &candidates->args[0])
- || ((nargs > 1) && !can_coerce_type(1, &input_typeids[1], &candidates->args[1])))
- {
+ || ((nargs > 1) && !can_coerce_type(1, &input_typeids[1], &candidates->args[1])))
ncandidates = 0;
- }
return (ncandidates == 1) ? candidates->args : NULL;
}
@@ -349,9 +343,7 @@ oper_select_candidate(int nargs,
slot_type = current_type;
}
else if (current_category != slot_category)
- {
return NULL;
- }
else if (current_type != slot_type)
{
if (IsPreferredType(slot_category, current_type))
@@ -366,9 +358,7 @@ oper_select_candidate(int nargs,
}
if (slot_type != InvalidOid)
- {
input_typeids[i] = slot_type;
- }
}
else
{
@@ -656,9 +646,7 @@ right_oper(char *op, Oid arg)
CharGetDatum('r'));
}
else
- {
tup = NULL;
- }
if (!HeapTupleIsValid(tup))
{
@@ -717,9 +705,7 @@ left_oper(char *op, Oid arg)
CharGetDatum('l'));
}
else
- {
tup = NULL;
- }
if (!HeapTupleIsValid(tup))
{
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index 07919e1b317..3101f7ac7a0 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.21 1999/05/22 04:12:28 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.22 1999/05/25 16:10:19 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -446,8 +446,8 @@ checkTargetTypes(ParseState *pstate, char *target_colname,
if (can_coerce_type(1, &attrtype_id, &attrtype_target))
{
Node *expr = coerce_type(pstate, expr, attrtype_id,
- attrtype_target,
- get_atttypmod(pstate->p_target_relation->rd_id, resdomno_target));
+ attrtype_target,
+ get_atttypmod(pstate->p_target_relation->rd_id, resdomno_target));
elog(ERROR, "Type %s(%d) can be coerced to match target column %s(%d)",
colname, get_atttypmod(rte->relid, resdomno_id),
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 2dfe2ece57d..1b821606f57 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.39 1999/05/23 21:42:09 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.40 1999/05/25 16:10:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,10 +64,12 @@ MakeTargetEntryIdent(ParseState *pstate,
if (pstate->p_is_insert && !resjunk)
{
- /* Assign column name of destination column to the new TLE.
- * XXX this is probably WRONG in INSERT ... SELECT case,
- * since handling of GROUP BY and so forth probably should use
- * the source table's names not the destination's names.
+
+ /*
+ * Assign column name of destination column to the new TLE. XXX
+ * this is probably WRONG in INSERT ... SELECT case, since
+ * handling of GROUP BY and so forth probably should use the
+ * source table's names not the destination's names.
*/
if (pstate->p_insert_columns != NIL)
{
@@ -123,8 +125,8 @@ MakeTargetEntryIdent(ParseState *pstate,
if (can_coerce_type(1, &attrtype_id, &attrtype_target))
{
expr = coerce_type(pstate, node, attrtype_id,
- attrtype_target,
- get_atttypmod(pstate->p_target_relation->rd_id, resdomno_target));
+ attrtype_target,
+ get_atttypmod(pstate->p_target_relation->rd_id, resdomno_target));
expr = transformExpr(pstate, expr, EXPR_COLUMN_FIRST);
tent = MakeTargetEntryExpr(pstate, *resname, expr, false, false);
expr = tent->expr;
@@ -248,7 +250,7 @@ MakeTargetEntryExpr(ParseState *pstate,
if (!HeapTupleIsValid(expr))
elog(ERROR, "Attribute '%s' is of type '%s'"
" but expression is of type '%s'"
- "\n\tYou will need to rewrite or cast the expression",
+ "\n\tYou will need to rewrite or cast the expression",
colname,
typeidTypeName(attrtype),
typeidTypeName(type_id));
@@ -326,20 +328,20 @@ static TargetEntry *
MakeTargetEntryCase(ParseState *pstate,
ResTarget *res)
{
- TargetEntry *tent;
- CaseExpr *expr;
- Resdom *resnode;
- int resdomno;
- Oid type_id;
- int32 type_mod;
+ TargetEntry *tent;
+ CaseExpr *expr;
+ Resdom *resnode;
+ int resdomno;
+ Oid type_id;
+ int32 type_mod;
- expr = (CaseExpr *)transformExpr(pstate, (Node *)res->val, EXPR_COLUMN_FIRST);
+ expr = (CaseExpr *) transformExpr(pstate, (Node *) res->val, EXPR_COLUMN_FIRST);
type_id = expr->casetype;
type_mod = -1;
handleTargetColname(pstate, &res->name, NULL, NULL);
if (res->name == NULL)
- res->name = FigureColname((Node *)expr, res->val);
+ res->name = FigureColname((Node *) expr, res->val);
resdomno = pstate->p_last_resno++;
resnode = makeResdom((AttrNumber) resdomno,
@@ -352,7 +354,7 @@ MakeTargetEntryCase(ParseState *pstate,
tent = makeNode(TargetEntry);
tent->resdom = resnode;
- tent->expr = (Node *)expr;
+ tent->expr = (Node *) expr;
return tent;
} /* MakeTargetEntryCase() */
@@ -435,7 +437,7 @@ MakeTargetEntryComplex(ParseState *pstate,
else
{
/* this is not an array assignment */
- char *colname = res->name;
+ char *colname = res->name;
if (colname == NULL)
{
@@ -564,7 +566,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
identname = ((Ident *) res->val)->name;
tent = MakeTargetEntryIdent(pstate,
- (Node *) res->val, &res->name, NULL, identname, false);
+ (Node *) res->val, &res->name, NULL, identname, false);
break;
}
case T_ParamNo:
@@ -619,7 +621,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
att->relname, &pstate->p_last_resno);
else
lnext(tail_p_target) = expandAll(pstate, att->relname, att->relname,
- &pstate->p_last_resno);
+ &pstate->p_last_resno);
expand_star = true;
}
}
@@ -668,9 +670,7 @@ CoerceTargetExpr(ParseState *pstate,
Oid attrtype)
{
if (can_coerce_type(1, &type_id, &attrtype))
- {
expr = coerce_type(pstate, expr, type_id, attrtype, -1);
- }
#ifndef DISABLE_STRING_HACKS
@@ -818,6 +818,7 @@ ExpandAllTables(ParseState *pstate)
rtable = pstate->p_rtable;
if (pstate->p_is_rule)
{
+
/*
* skip first two entries, "*new*" and "*current*"
*/
@@ -876,7 +877,7 @@ FigureColname(Node *expr, Node *resval)
{
switch (nodeTag(expr))
{
- case T_Aggref:
+ case T_Aggref:
return (char *) ((Aggref *) expr)->aggname;
case T_Expr:
if (((Expr *) expr)->opType == FUNC_EXPR)
@@ -887,7 +888,8 @@ FigureColname(Node *expr, Node *resval)
break;
case T_CaseExpr:
{
- char *name;
+ char *name;
+
name = FigureColname(((CaseExpr *) expr)->defresult, resval);
if (!strcmp(name, "?column?"))
name = "case";
diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c
index 6f77c0e8763..cdec9d9aeac 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.20 1999/05/10 00:45:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.21 1999/05/25 16:10:22 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -172,6 +172,7 @@ typeidOutfunc(Oid type_id)
outfunc = type->typoutput;
return outfunc;
}
+
#endif
Oid
diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c
index b1059936413..48c9860159e 100644
--- a/src/backend/parser/parser.c
+++ b/src/backend/parser/parser.c
@@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.38 1999/05/13 07:28:39 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.39 1999/05/25 16:10:24 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,6 +22,7 @@
#if defined(FLEX_SCANNER)
extern void DeleteBuffer(void);
+
#endif /* FLEX_SCANNER */
char *parseString; /* the char* which holds the string to be
@@ -31,6 +32,7 @@ List *parsetree; /* result of parsing is left here */
#ifdef SETS_FIXED
static void fixupsets();
static void define_sets();
+
#endif
/*
diff --git a/src/backend/parser/scansup.c b/src/backend/parser/scansup.c
index 36a5734bb3e..f32aee93f82 100644
--- a/src/backend/parser/scansup.c
+++ b/src/backend/parser/scansup.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/scansup.c,v 1.12 1999/02/13 23:17:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/scansup.c,v 1.13 1999/05/25 16:10:25 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -51,8 +51,10 @@ scanstr(char *s)
{
if (s[i] == '\'')
{
- /* Note: if scanner is working right, unescaped quotes can only
- * appear in pairs, so there should be another character.
+
+ /*
+ * Note: if scanner is working right, unescaped quotes can
+ * only appear in pairs, so there should be another character.
*/
i++;
newStr[j] = s[i];
diff --git a/src/backend/port/dynloader/freebsd.c b/src/backend/port/dynloader/freebsd.c
index 14d21fb61f2..0b5e327de4d 100644
--- a/src/backend/port/dynloader/freebsd.c
+++ b/src/backend/port/dynloader/freebsd.c
@@ -68,7 +68,7 @@ BSD44_derived_dlopen(const char *file, int num)
void *vp;
if ((vp = dlopen((char *) file, num)) == (void *) NULL)
- sprintf(error_message, "dlopen '%s' failed. (%s)", file, dlerror() );
+ sprintf(error_message, "dlopen '%s' failed. (%s)", file, dlerror());
return vp;
#endif
}
diff --git a/src/backend/port/hpux/fixade.h b/src/backend/port/hpux/fixade.h
index d76c8c256e0..a85fa8b1a5c 100644
--- a/src/backend/port/hpux/fixade.h
+++ b/src/backend/port/hpux/fixade.h
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: fixade.h,v 1.6 1999/05/03 19:09:44 momjian Exp $
+ * $Id: fixade.h,v 1.7 1999/05/25 16:10:36 momjian Exp $
*
* NOTES
* This must be included in EVERY source file.
@@ -47,11 +47,11 @@
*/
struct HP_WAY_BOGUS
{
- char hpwb_bogus[8191+1];
+ char hpwb_bogus[8191 + 1];
};
struct HP_TOO_BOGUS
{
- int hptb_bogus[8191+1];
+ int hptb_bogus[8191 + 1];
};
#endif /* BROKEN_STRUCT_INIT */
diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c
index 705989b6cae..0f9ed9cbc2b 100644
--- a/src/backend/port/snprintf.c
+++ b/src/backend/port/snprintf.c
@@ -51,11 +51,13 @@
* here called long_long (or ulong_long for unsigned).
*/
#ifdef HAVE_LONG_LONG_INT_64
-typedef long long long_long;
-typedef unsigned long long ulong_long;
+typedef long long long_long;
+typedef unsigned long long ulong_long;
+
#else
-typedef long long_long;
-typedef unsigned long ulong_long;
+typedef long long_long;
+typedef unsigned long ulong_long;
+
#endif
/*
@@ -80,7 +82,7 @@ typedef unsigned long ulong_long;
* causing nast effects.
**************************************************************/
-/*static char _id[] = "$Id: snprintf.c,v 1.21 1999/02/21 03:49:08 scrappy Exp $";*/
+/*static char _id[] = "$Id: snprintf.c,v 1.22 1999/05/25 16:10:28 momjian Exp $";*/
static char *end;
static int SnprfOverflow;
@@ -92,7 +94,7 @@ int
snprintf(char *str, size_t count, const char *fmt,...)
{
int len;
- va_list args;
+ va_list args;
va_start(args, fmt);
len = vsnprintf(str, count, fmt, args);
@@ -120,11 +122,11 @@ vsnprintf(char *str, size_t count, const char *fmt, va_list args)
* dopr(): poor man's version of doprintf
*/
-static void fmtstr (char *value, int ljust, int len, int zpad, int maxwidth);
-static void fmtnum (long_long value, int base, int dosign, int ljust, int len, int zpad);
-static void fmtfloat (double value, char type, int ljust, int len, int precision, int pointflag);
-static void dostr (char *str, int cut);
-static void dopr_outch (int c);
+static void fmtstr(char *value, int ljust, int len, int zpad, int maxwidth);
+static void fmtnum(long_long value, int base, int dosign, int ljust, int len, int zpad);
+static void fmtfloat(double value, char type, int ljust, int len, int precision, int pointflag);
+static void dostr(char *str, int cut);
+static void dopr_outch(int c);
static char *output;
@@ -408,7 +410,7 @@ fmtnum(long_long value, int base, int dosign, int ljust, int len, int zpad)
}
static void
-fmtfloat (double value, char type, int ljust, int len, int precision, int pointflag)
+fmtfloat(double value, char type, int ljust, int len, int precision, int pointflag)
{
char fmt[32];
char convert[512];
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index cf1271c7ec4..46e224385ba 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.104 1999/05/22 17:47:50 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.105 1999/05/25 16:10:40 momjian Exp $
*
* NOTES
*
@@ -164,16 +164,16 @@ static IpcMemoryKey ipc_key;
static int MaxBackends = DEF_MAXBACKENDS;
- /*
- * MaxBackends is the actual limit on the number of backends we will start.
- * The default is established by configure, but it can be readjusted
- * from 1..MAXBACKENDS with the postmaster -N switch.
- * Note that a larger MaxBackends value will increase the size of the
- * shared memory area as well as cause the postmaster to grab more
- * kernel semaphores, even if you never actually use that many backends.
+ /*
+ * MaxBackends is the actual limit on the number of backends we will
+ * start. The default is established by configure, but it can be
+ * readjusted from 1..MAXBACKENDS with the postmaster -N switch. Note
+ * that a larger MaxBackends value will increase the size of the shared
+ * memory area as well as cause the postmaster to grab more kernel
+ * semaphores, even if you never actually use that many backends.
*/
-static int NextBackendTag = MAXINT; /* XXX why count down not up? */
+static int NextBackendTag = MAXINT; /* XXX why count down not up? */
static char *progname = (char *) NULL;
static char **real_argv;
static int real_argc;
@@ -184,8 +184,10 @@ static int real_argc;
static char Execfile[MAXPATHLEN] = "";
static int ServerSock_INET = INVALID_SOCK; /* stream socket server */
+
#ifndef __CYGWIN32__
static int ServerSock_UNIX = INVALID_SOCK; /* stream socket server */
+
#endif
/*
@@ -254,7 +256,7 @@ static int initMasks(fd_set *rmask, fd_set *wmask);
static long PostmasterRandom(void);
static void RandomSalt(char *salt);
static void SignalChildren(SIGNAL_ARGS);
-static int CountChildren(void);
+static int CountChildren(void);
#ifdef CYR_RECODE
void GetCharSetByHost(char *, int, char *);
@@ -474,9 +476,10 @@ PostmasterMain(int argc, char *argv[])
*/
break;
case 'N':
+
/*
- * The max number of backends to start.
- * Can't set to less than 1 or more than compiled-in limit.
+ * The max number of backends to start. Can't set to less
+ * than 1 or more than compiled-in limit.
*/
MaxBackends = atoi(optarg);
if (MaxBackends < 1)
@@ -793,11 +796,12 @@ ServerLoop(void)
"Sorry, too many clients already");
else
{
+
/*
* If the backend start fails then keep the connection
* open to report it. Otherwise, pretend there is an
- * error to close the connection which will now be managed
- * by the backend.
+ * error to close the connection which will now be
+ * managed by the backend.
*/
if (BackendStartup(port) != STATUS_OK)
PacketSendError(&port->pktInfo,
@@ -1337,11 +1341,12 @@ BackendStartup(Port *port)
}
/*
- * Flush stdio channels just before fork, to avoid double-output problems.
- * Ideally we'd use fflush(NULL) here, but there are still a few non-ANSI
- * stdio libraries out there (like SunOS 4.1.x) that coredump if we do.
- * Presently stdout and stderr are the only stdio output channels used
- * by the postmaster, so fflush'ing them should be sufficient.
+ * Flush stdio channels just before fork, to avoid double-output
+ * problems. Ideally we'd use fflush(NULL) here, but there are still a
+ * few non-ANSI stdio libraries out there (like SunOS 4.1.x) that
+ * coredump if we do. Presently stdout and stderr are the only stdio
+ * output channels used by the postmaster, so fflush'ing them should
+ * be sufficient.
*/
fflush(stdout);
fflush(stderr);
@@ -1372,7 +1377,9 @@ BackendStartup(Port *port)
port->sock);
/* Generate a new backend tag for every backend we start */
- /* XXX theoretically this could wrap around, if you have the patience
+
+ /*
+ * XXX theoretically this could wrap around, if you have the patience
* to start 2^31 backends ...
*/
NextBackendTag -= 1;
@@ -1549,10 +1556,10 @@ DoBackend(Port *port)
}
/*
- * Pass any backend switches specified with -o in the postmaster's
- * own command line. We assume these are secure.
- * (It's OK to mangle ExtraOptions since we are now in the child process;
- * this won't change the postmaster's copy.)
+ * Pass any backend switches specified with -o in the postmaster's own
+ * command line. We assume these are secure. (It's OK to mangle
+ * ExtraOptions since we are now in the child process; this won't
+ * change the postmaster's copy.)
*/
split_opts(av, &ac, ExtraOptions);
@@ -1561,8 +1568,8 @@ DoBackend(Port *port)
av[ac++] = protobuf;
/*
- * Tell the backend it is being called from the postmaster,
- * and which database to use. -p marks the end of secure switches.
+ * Tell the backend it is being called from the postmaster, and which
+ * database to use. -p marks the end of secure switches.
*/
av[ac++] = "-p";
@@ -1700,7 +1707,7 @@ static int
CountChildren(void)
{
Dlelem *curr;
- Backend *bp;
+ Backend *bp;
int mypid = getpid();
int cnt = 0;
diff --git a/src/backend/regex/regcomp.c b/src/backend/regex/regcomp.c
index b68f70c4dd6..d7dded8f4b5 100644
--- a/src/backend/regex/regcomp.c
+++ b/src/backend/regex/regcomp.c
@@ -1037,9 +1037,9 @@ int endc; /* name ended by endc,']' */
== static char othercase(int ch);
*/
#ifdef MULTIBYTE
-static unsigned char /* if no counterpart, return ch */
+static unsigned char /* if no counterpart, return ch */
#else
-static char /* if no counterpart, return ch */
+static char /* if no counterpart, return ch */
#endif
othercase(ch)
int ch;
@@ -1047,20 +1047,20 @@ int ch;
assert(pg_isalpha(ch));
if (pg_isupper(ch))
#ifdef MULTIBYTE
- return (unsigned char)tolower(ch);
+ return (unsigned char) tolower(ch);
#else
return tolower(ch);
#endif
else if (pg_islower(ch))
#ifdef MULTIBYTE
- return (unsigned char)toupper(ch);
+ return (unsigned char) toupper(ch);
#else
return toupper(ch);
#endif
else
/* peculiar, but could happen */
#ifdef MULTIBYTE
- return (unsigned char)ch;
+ return (unsigned char) ch;
#else
return ch;
#endif
diff --git a/src/backend/regex/retest.c b/src/backend/regex/retest.c
index 13dd0761f02..4eb9b2282fb 100644
--- a/src/backend/regex/retest.c
+++ b/src/backend/regex/retest.c
@@ -1,7 +1,7 @@
/*
* a simple regexp debug program
- *
- * $Header: /cvsroot/pgsql/src/backend/regex/Attic/retest.c,v 1.1 1999/05/21 06:27:54 ishii Exp $
+ *
+ * $Header: /cvsroot/pgsql/src/backend/regex/Attic/retest.c,v 1.2 1999/05/25 16:10:45 momjian Exp $
*/
#include <stdio.h>
@@ -9,34 +9,38 @@
#include "postgres.h"
#include <regex/regex.h>
-int main()
+int
+main()
{
- int sts;
- regex_t re;
- char buf[1024];
- char *p;
+ int sts;
+ regex_t re;
+ char buf[1024];
+ char *p;
- printf("type in regexp string: ");
- if (!fgets(buf,sizeof(buf),stdin)) {
- exit(0);
- }
- p = strchr(buf, '\n');
- if (p) *p = '\0';
+ printf("type in regexp string: ");
+ if (!fgets(buf, sizeof(buf), stdin))
+ exit(0);
+ p = strchr(buf, '\n');
+ if (p)
+ *p = '\0';
- sts = pg95_regcomp(&re, buf, 1);
- printf("regcomp: parses \"%s\" and returns %d\n",buf, sts);
- for (;;) {
- printf("type in target string: ");
- if (!fgets(buf,sizeof(buf),stdin)) {
- exit(0);
- }
- p = strchr(buf, '\n');
- if (p) *p = '\0';
+ sts = pg95_regcomp(&re, buf, 1);
+ printf("regcomp: parses \"%s\" and returns %d\n", buf, sts);
+ for (;;)
+ {
+ printf("type in target string: ");
+ if (!fgets(buf, sizeof(buf), stdin))
+ exit(0);
+ p = strchr(buf, '\n');
+ if (p)
+ *p = '\0';
- sts = pg95_regexec(&re, buf, 0, 0, 0);
- printf("regexec: returns %d\n", sts);
- }
+ sts = pg95_regexec(&re, buf, 0, 0, 0);
+ printf("regexec: returns %d\n", sts);
+ }
}
-void elog(int lev, const char *fmt,...)
-{}
+void
+elog(int lev, const char *fmt,...)
+{
+}
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 431006843f2..4c7fed8b300 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.28 1999/05/12 17:04:46 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.29 1999/05/25 16:10:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -238,12 +238,12 @@ DefineQueryRewrite(RuleStmt *stmt)
*/
if (event_type == CMD_SELECT)
{
- TargetEntry *tle;
- Resdom *resdom;
- Form_pg_attribute attr;
- char *attname;
+ TargetEntry *tle;
+ Resdom *resdom;
+ Form_pg_attribute attr;
+ char *attname;
int i;
- char expected_name[NAMEDATALEN + 5];
+ char expected_name[NAMEDATALEN + 5];
/*
* So there cannot be INSTEAD NOTHING, ...
@@ -259,6 +259,7 @@ DefineQueryRewrite(RuleStmt *stmt)
*/
if (length(action) > 1)
elog(ERROR, "multiple action rules on select currently not supported");
+
/*
* ... the one action must be a SELECT, ...
*/
@@ -269,8 +270,8 @@ DefineQueryRewrite(RuleStmt *stmt)
elog(ERROR, "event qualifications not supported for rules on select");
/*
- * ... the targetlist of the SELECT action must
- * exactly match the event relation, ...
+ * ... the targetlist of the SELECT action must exactly match the
+ * event relation, ...
*/
event_relation = heap_openr(event_obj->relname);
if (event_relation == NULL)
@@ -279,8 +280,9 @@ DefineQueryRewrite(RuleStmt *stmt)
if (event_relation->rd_att->natts != length(query->targetList))
elog(ERROR, "select rules target list must match event relations structure");
- for (i = 1; i <= event_relation->rd_att->natts; i++) {
- tle = (TargetEntry *)nth(i - 1, query->targetList);
+ for (i = 1; i <= event_relation->rd_att->natts; i++)
+ {
+ tle = (TargetEntry *) nth(i - 1, query->targetList);
resdom = tle->resdom;
attr = event_relation->rd_att->attrs[i - 1];
attname = nameout(&(attr->attname));
@@ -289,19 +291,20 @@ DefineQueryRewrite(RuleStmt *stmt)
elog(ERROR, "select rules target entry %d has different column name from %s", i, attname);
if (attr->atttypid != resdom->restype)
- elog(ERROR, "select rules target entry %d has different type from attribute %s", i, attname);
+ elog(ERROR, "select rules target entry %d has different type from attribute %s", i, attname);
if (attr->atttypmod != resdom->restypmod)
- elog(ERROR, "select rules target entry %d has different size from attribute %s", i, attname);
+ elog(ERROR, "select rules target entry %d has different size from attribute %s", i, attname);
}
/*
- * ... there must not be another ON SELECT
- * rule already ...
+ * ... there must not be another ON SELECT rule already ...
*/
- if (event_relation->rd_rules != NULL) {
- for (i = 0; i < event_relation->rd_rules->numLocks; i++) {
- RewriteRule *rule;
+ if (event_relation->rd_rules != NULL)
+ {
+ for (i = 0; i < event_relation->rd_rules->numLocks; i++)
+ {
+ RewriteRule *rule;
rule = event_relation->rd_rules->rules[i];
if (rule->event == CMD_SELECT)
@@ -333,9 +336,10 @@ DefineQueryRewrite(RuleStmt *stmt)
* ... and finally the rule must be named _RETviewname.
*/
sprintf(expected_name, "_RET%s", event_obj->relname);
- if (strcmp(expected_name, stmt->rulename) != 0) {
+ if (strcmp(expected_name, stmt->rulename) != 0)
+ {
elog(ERROR, "view rule for %s must be named %s",
- event_obj->relname, expected_name);
+ event_obj->relname, expected_name);
}
}
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 7769d722992..ed02edddea0 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.44 1999/05/25 13:16:10 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.45 1999/05/25 16:10:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -147,26 +147,27 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
if (node == NULL)
return FALSE;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
return rangeTableEntry_used(
- (Node *)(tle->expr),
- rt_index,
- sublevels_up);
+ (Node *) (tle->expr),
+ rt_index,
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
return rangeTableEntry_used(
- (Node *)(aggref->target),
- rt_index,
- sublevels_up);
+ (Node *) (aggref->target),
+ rt_index,
+ sublevels_up);
}
break;
@@ -175,61 +176,61 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
return rangeTableEntry_used(
- (Node *)(exp->args),
- rt_index,
- sublevels_up);
+ (Node *) (exp->args),
+ rt_index,
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
return rangeTableEntry_used(
- (Node *)(iter->iterexpr),
- rt_index,
- sublevels_up);
+ (Node *) (iter->iterexpr),
+ rt_index,
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
if (rangeTableEntry_used(
- (Node *)(ref->refupperindexpr),
- rt_index,
- sublevels_up))
+ (Node *) (ref->refupperindexpr),
+ rt_index,
+ sublevels_up))
return TRUE;
-
+
if (rangeTableEntry_used(
- (Node *)(ref->reflowerindexpr),
- rt_index,
- sublevels_up))
+ (Node *) (ref->reflowerindexpr),
+ rt_index,
+ sublevels_up))
return TRUE;
-
+
if (rangeTableEntry_used(
- (Node *)(ref->refexpr),
- rt_index,
- sublevels_up))
+ (Node *) (ref->refexpr),
+ rt_index,
+ sublevels_up))
return TRUE;
-
+
if (rangeTableEntry_used(
- (Node *)(ref->refassgnexpr),
- rt_index,
- sublevels_up))
+ (Node *) (ref->refassgnexpr),
+ rt_index,
+ sublevels_up))
return TRUE;
-
+
return FALSE;
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
if (var->varlevelsup == sublevels_up)
return var->varno == rt_index;
@@ -246,13 +247,14 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node) {
+ foreach(l, (List *) node)
+ {
if (rangeTableEntry_used(
- (Node *)lfirst(l),
- rt_index,
- sublevels_up))
+ (Node *) lfirst(l),
+ rt_index,
+ sublevels_up))
return TRUE;
}
return FALSE;
@@ -261,18 +263,18 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
+ SubLink *sub = (SubLink *) node;
if (rangeTableEntry_used(
- (Node *)(sub->lefthand),
- rt_index,
- sublevels_up))
+ (Node *) (sub->lefthand),
+ rt_index,
+ sublevels_up))
return TRUE;
if (rangeTableEntry_used(
- (Node *)(sub->subselect),
- rt_index,
- sublevels_up + 1))
+ (Node *) (sub->subselect),
+ rt_index,
+ sublevels_up + 1))
return TRUE;
return FALSE;
@@ -281,18 +283,18 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
if (rangeTableEntry_used(
- (Node *)(exp->args),
- rt_index,
- sublevels_up))
+ (Node *) (exp->args),
+ rt_index,
+ sublevels_up))
return TRUE;
if (rangeTableEntry_used(
- (Node *)(exp->defresult),
- rt_index,
- sublevels_up))
+ (Node *) (exp->defresult),
+ rt_index,
+ sublevels_up))
return TRUE;
return FALSE;
@@ -301,18 +303,18 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
case T_CaseWhen:
{
- CaseWhen *when = (CaseWhen *)node;
+ CaseWhen *when = (CaseWhen *) node;
if (rangeTableEntry_used(
- (Node *)(when->expr),
- rt_index,
- sublevels_up))
+ (Node *) (when->expr),
+ rt_index,
+ sublevels_up))
return TRUE;
if (rangeTableEntry_used(
- (Node *)(when->result),
- rt_index,
- sublevels_up))
+ (Node *) (when->result),
+ rt_index,
+ sublevels_up))
return TRUE;
return FALSE;
@@ -321,24 +323,24 @@ rangeTableEntry_used(Node *node, int rt_index, int sublevels_up)
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
if (rangeTableEntry_used(
- (Node *)(qry->targetList),
- rt_index,
- sublevels_up))
+ (Node *) (qry->targetList),
+ rt_index,
+ sublevels_up))
return TRUE;
if (rangeTableEntry_used(
- (Node *)(qry->qual),
- rt_index,
- sublevels_up))
+ (Node *) (qry->qual),
+ rt_index,
+ sublevels_up))
return TRUE;
if (rangeTableEntry_used(
- (Node *)(qry->havingQual),
- rt_index,
- sublevels_up))
+ (Node *) (qry->havingQual),
+ rt_index,
+ sublevels_up))
return TRUE;
return FALSE;
@@ -368,28 +370,29 @@ attribute_used(Node *node, int rt_index, int attno, int sublevels_up)
if (node == NULL)
return FALSE;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
return attribute_used(
- (Node *)(tle->expr),
- rt_index,
- attno,
- sublevels_up);
+ (Node *) (tle->expr),
+ rt_index,
+ attno,
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
return attribute_used(
- (Node *)(aggref->target),
- rt_index,
- attno,
- sublevels_up);
+ (Node *) (aggref->target),
+ rt_index,
+ attno,
+ sublevels_up);
}
break;
@@ -398,58 +401,58 @@ attribute_used(Node *node, int rt_index, int attno, int sublevels_up)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
return attribute_used(
- (Node *)(exp->args),
- rt_index,
- attno,
- sublevels_up);
+ (Node *) (exp->args),
+ rt_index,
+ attno,
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
return attribute_used(
- (Node *)(iter->iterexpr),
- rt_index,
- attno,
- sublevels_up);
+ (Node *) (iter->iterexpr),
+ rt_index,
+ attno,
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
if (attribute_used(
- (Node *)(ref->refupperindexpr),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (ref->refupperindexpr),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
if (attribute_used(
- (Node *)(ref->reflowerindexpr),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (ref->reflowerindexpr),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
if (attribute_used(
- (Node *)(ref->refexpr),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (ref->refexpr),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
if (attribute_used(
- (Node *)(ref->refassgnexpr),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (ref->refassgnexpr),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
return FALSE;
@@ -458,7 +461,7 @@ attribute_used(Node *node, int rt_index, int attno, int sublevels_up)
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
if (var->varlevelsup == sublevels_up)
return var->varno == rt_index;
@@ -475,14 +478,15 @@ attribute_used(Node *node, int rt_index, int attno, int sublevels_up)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node) {
+ foreach(l, (List *) node)
+ {
if (attribute_used(
- (Node *)lfirst(l),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) lfirst(l),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
}
return FALSE;
@@ -491,20 +495,20 @@ attribute_used(Node *node, int rt_index, int attno, int sublevels_up)
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
+ SubLink *sub = (SubLink *) node;
if (attribute_used(
- (Node *)(sub->lefthand),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (sub->lefthand),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
if (attribute_used(
- (Node *)(sub->subselect),
- rt_index,
- attno,
- sublevels_up + 1))
+ (Node *) (sub->subselect),
+ rt_index,
+ attno,
+ sublevels_up + 1))
return TRUE;
return FALSE;
@@ -513,27 +517,27 @@ attribute_used(Node *node, int rt_index, int attno, int sublevels_up)
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
if (attribute_used(
- (Node *)(qry->targetList),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (qry->targetList),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
if (attribute_used(
- (Node *)(qry->qual),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (qry->qual),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
if (attribute_used(
- (Node *)(qry->havingQual),
- rt_index,
- attno,
- sublevels_up))
+ (Node *) (qry->havingQual),
+ rt_index,
+ attno,
+ sublevels_up))
return TRUE;
return FALSE;
@@ -564,61 +568,62 @@ modifyAggrefUplevel(Node *node)
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
modifyAggrefUplevel(
- (Node *)(tle->expr));
+ (Node *) (tle->expr));
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
modifyAggrefUplevel(
- (Node *)(aggref->target));
+ (Node *) (aggref->target));
}
break;
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
modifyAggrefUplevel(
- (Node *)(exp->args));
+ (Node *) (exp->args));
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
modifyAggrefUplevel(
- (Node *)(iter->iterexpr));
+ (Node *) (iter->iterexpr));
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
modifyAggrefUplevel(
- (Node *)(ref->refupperindexpr));
+ (Node *) (ref->refupperindexpr));
modifyAggrefUplevel(
- (Node *)(ref->reflowerindexpr));
+ (Node *) (ref->reflowerindexpr));
modifyAggrefUplevel(
- (Node *)(ref->refexpr));
+ (Node *) (ref->refexpr));
modifyAggrefUplevel(
- (Node *)(ref->refassgnexpr));
+ (Node *) (ref->refassgnexpr));
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
var->varlevelsup++;
}
@@ -632,41 +637,41 @@ modifyAggrefUplevel(Node *node)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
modifyAggrefUplevel(
- (Node *)lfirst(l));
+ (Node *) lfirst(l));
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
+ SubLink *sub = (SubLink *) node;
modifyAggrefUplevel(
- (Node *)(sub->lefthand));
+ (Node *) (sub->lefthand));
modifyAggrefUplevel(
- (Node *)(sub->oper));
+ (Node *) (sub->oper));
modifyAggrefUplevel(
- (Node *)(sub->subselect));
+ (Node *) (sub->subselect));
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
modifyAggrefUplevel(
- (Node *)(qry->targetList));
+ (Node *) (qry->targetList));
modifyAggrefUplevel(
- (Node *)(qry->qual));
+ (Node *) (qry->qual));
modifyAggrefUplevel(
- (Node *)(qry->havingQual));
+ (Node *) (qry->havingQual));
}
break;
@@ -690,33 +695,34 @@ modifyAggrefUplevel(Node *node)
static void
modifyAggrefChangeVarnodes(Node **nodePtr, int rt_index, int new_index, int sublevels_up)
{
- Node *node = *nodePtr;
+ Node *node = *nodePtr;
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(tle->expr)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(tle->expr)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(aggref->target)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(aggref->target)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
@@ -725,67 +731,68 @@ modifyAggrefChangeVarnodes(Node **nodePtr, int rt_index, int new_index, int subl
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(exp->args)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(exp->args)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(iter->iterexpr)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(iter->iterexpr)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(ref->refupperindexpr)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(ref->refupperindexpr)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(ref->reflowerindexpr)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(ref->reflowerindexpr)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(ref->refexpr)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(ref->refexpr)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(ref->refassgnexpr)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(ref->refassgnexpr)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
if (var->varlevelsup == sublevels_up &&
- var->varno == rt_index) {
+ var->varno == rt_index)
+ {
var = copyObject(var);
var->varno = new_index;
var->varnoold = new_index;
var->varlevelsup = 0;
- *nodePtr = (Node *)var;
+ *nodePtr = (Node *) var;
}
}
break;
@@ -798,62 +805,62 @@ modifyAggrefChangeVarnodes(Node **nodePtr, int rt_index, int new_index, int subl
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
modifyAggrefChangeVarnodes(
- (Node **)(&lfirst(l)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&lfirst(l)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
+ SubLink *sub = (SubLink *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(sub->lefthand)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(sub->lefthand)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(sub->oper)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(sub->oper)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(sub->subselect)),
- rt_index,
- new_index,
- sublevels_up + 1);
+ (Node **) (&(sub->subselect)),
+ rt_index,
+ new_index,
+ sublevels_up + 1);
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
modifyAggrefChangeVarnodes(
- (Node **)(&(qry->targetList)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(qry->targetList)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(qry->qual)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(qry->qual)),
+ rt_index,
+ new_index,
+ sublevels_up);
modifyAggrefChangeVarnodes(
- (Node **)(&(qry->havingQual)),
- rt_index,
- new_index,
- sublevels_up);
+ (Node **) (&(qry->havingQual)),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
@@ -874,24 +881,25 @@ modifyAggrefChangeVarnodes(Node **nodePtr, int rt_index, int new_index, int subl
static void
modifyAggrefDropQual(Node **nodePtr, Node *orignode, Expr *expr)
{
- Node *node = *nodePtr;
+ Node *node = *nodePtr;
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_Var:
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
- Aggref *oaggref = (Aggref *)orignode;
+ Aggref *aggref = (Aggref *) node;
+ Aggref *oaggref = (Aggref *) orignode;
modifyAggrefDropQual(
- (Node **)(&(aggref->target)),
- (Node *)(oaggref->target),
- expr);
+ (Node **) (&(aggref->target)),
+ (Node *) (oaggref->target),
+ expr);
}
break;
@@ -906,79 +914,81 @@ modifyAggrefDropQual(Node **nodePtr, Node *orignode, Expr *expr)
case T_Expr:
{
- Expr *this_expr = (Expr *)node;
- Expr *orig_expr = (Expr *)orignode;
+ Expr *this_expr = (Expr *) node;
+ Expr *orig_expr = (Expr *) orignode;
- if (orig_expr == expr) {
- Const *ctrue;
+ if (orig_expr == expr)
+ {
+ Const *ctrue;
if (expr->typeOid != BOOLOID)
elog(ERROR,
- "aggregate expression in qualification isn't of type bool");
+ "aggregate expression in qualification isn't of type bool");
ctrue = makeNode(Const);
ctrue->consttype = BOOLOID;
ctrue->constlen = 1;
ctrue->constisnull = FALSE;
- ctrue->constvalue = (Datum)TRUE;
+ ctrue->constvalue = (Datum) TRUE;
ctrue->constbyval = TRUE;
- *nodePtr = (Node *)ctrue;
+ *nodePtr = (Node *) ctrue;
}
else
modifyAggrefDropQual(
- (Node **)(&(this_expr->args)),
- (Node *)(orig_expr->args),
- expr);
+ (Node **) (&(this_expr->args)),
+ (Node *) (orig_expr->args),
+ expr);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
- Iter *oiter = (Iter *)orignode;
+ Iter *iter = (Iter *) node;
+ Iter *oiter = (Iter *) orignode;
modifyAggrefDropQual(
- (Node **)(&(iter->iterexpr)),
- (Node *)(oiter->iterexpr),
- expr);
+ (Node **) (&(iter->iterexpr)),
+ (Node *) (oiter->iterexpr),
+ expr);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
- ArrayRef *oref = (ArrayRef *)orignode;
+ ArrayRef *ref = (ArrayRef *) node;
+ ArrayRef *oref = (ArrayRef *) orignode;
modifyAggrefDropQual(
- (Node **)(&(ref->refupperindexpr)),
- (Node *)(oref->refupperindexpr),
- expr);
+ (Node **) (&(ref->refupperindexpr)),
+ (Node *) (oref->refupperindexpr),
+ expr);
modifyAggrefDropQual(
- (Node **)(&(ref->reflowerindexpr)),
- (Node *)(oref->reflowerindexpr),
- expr);
+ (Node **) (&(ref->reflowerindexpr)),
+ (Node *) (oref->reflowerindexpr),
+ expr);
modifyAggrefDropQual(
- (Node **)(&(ref->refexpr)),
- (Node *)(oref->refexpr),
- expr);
+ (Node **) (&(ref->refexpr)),
+ (Node *) (oref->refexpr),
+ expr);
modifyAggrefDropQual(
- (Node **)(&(ref->refassgnexpr)),
- (Node *)(oref->refassgnexpr),
- expr);
+ (Node **) (&(ref->refassgnexpr)),
+ (Node *) (oref->refassgnexpr),
+ expr);
}
break;
case T_List:
{
- List *l;
- List *ol = (List *)orignode;
- int li = 0;
+ List *l;
+ List *ol = (List *) orignode;
+ int li = 0;
- foreach (l, (List *)node) {
+ foreach(l, (List *) node)
+ {
modifyAggrefDropQual(
- (Node **)(&(lfirst(l))),
- (Node *)nth(li, ol),
- expr);
+ (Node **) (&(lfirst(l))),
+ (Node *) nth(li, ol),
+ expr);
li++;
}
}
@@ -986,30 +996,30 @@ modifyAggrefDropQual(Node **nodePtr, Node *orignode, Expr *expr)
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
- SubLink *osub = (SubLink *)orignode;
+ SubLink *sub = (SubLink *) node;
+ SubLink *osub = (SubLink *) orignode;
modifyAggrefDropQual(
- (Node **)(&(sub->subselect)),
- (Node *)(osub->subselect),
- expr);
+ (Node **) (&(sub->subselect)),
+ (Node *) (osub->subselect),
+ expr);
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
- Query *oqry = (Query *)orignode;
+ Query *qry = (Query *) node;
+ Query *oqry = (Query *) orignode;
modifyAggrefDropQual(
- (Node **)(&(qry->qual)),
- (Node *)(oqry->qual),
- expr);
+ (Node **) (&(qry->qual)),
+ (Node *) (oqry->qual),
+ expr);
modifyAggrefDropQual(
- (Node **)(&(qry->havingQual)),
- (Node *)(oqry->havingQual),
- expr);
+ (Node **) (&(qry->havingQual)),
+ (Node *) (oqry->havingQual),
+ expr);
}
break;
@@ -1031,15 +1041,15 @@ modifyAggrefDropQual(Node **nodePtr, Node *orignode, Expr *expr)
static SubLink *
modifyAggrefMakeSublink(Expr *origexp, Query *parsetree)
{
- SubLink *sublink;
- Query *subquery;
- Node *subqual;
- RangeTblEntry *rte;
- Aggref *aggref;
- Var *target;
- TargetEntry *tle;
- Resdom *resdom;
- Expr *exp = copyObject(origexp);
+ SubLink *sublink;
+ Query *subquery;
+ Node *subqual;
+ RangeTblEntry *rte;
+ Aggref *aggref;
+ Var *target;
+ TargetEntry *tle;
+ Resdom *resdom;
+ Expr *exp = copyObject(origexp);
if (nodeTag(nth(0, exp->args)) == T_Aggref)
{
@@ -1049,66 +1059,66 @@ modifyAggrefMakeSublink(Expr *origexp, Query *parsetree)
elog(ERROR, "rewrite: aggregate column of view must be at rigth side in qual");
}
- aggref = (Aggref *)nth(1, exp->args);
- target = (Var *)(aggref->target);
- rte = (RangeTblEntry *)nth(target->varno - 1, parsetree->rtable);
- tle = makeNode(TargetEntry);
- resdom = makeNode(Resdom);
+ aggref = (Aggref *) nth(1, exp->args);
+ target = (Var *) (aggref->target);
+ rte = (RangeTblEntry *) nth(target->varno - 1, parsetree->rtable);
+ tle = makeNode(TargetEntry);
+ resdom = makeNode(Resdom);
aggref->usenulls = TRUE;
- resdom->resno = 1;
- resdom->restype = ((Oper *)(exp->oper))->opresulttype;
+ resdom->resno = 1;
+ resdom->restype = ((Oper *) (exp->oper))->opresulttype;
resdom->restypmod = -1;
resdom->resname = pstrdup("<noname>");
- resdom->reskey = 0;
+ resdom->reskey = 0;
resdom->reskeyop = 0;
- resdom->resjunk = false;
+ resdom->resjunk = false;
- tle->resdom = resdom;
- tle->expr = (Node *)aggref;
+ tle->resdom = resdom;
+ tle->expr = (Node *) aggref;
subqual = copyObject(parsetree->qual);
- modifyAggrefDropQual((Node **)&subqual, (Node *)parsetree->qual, origexp);
+ modifyAggrefDropQual((Node **) &subqual, (Node *) parsetree->qual, origexp);
sublink = makeNode(SubLink);
- sublink->subLinkType = EXPR_SUBLINK;
- sublink->useor = FALSE;
- sublink->lefthand = lappend(NIL, copyObject(lfirst(exp->args)));
- sublink->oper = lappend(NIL, copyObject(exp));
- sublink->subselect = NULL;
-
- subquery = makeNode(Query);
- sublink->subselect = (Node *)subquery;
-
- subquery->commandType = CMD_SELECT;
- subquery->utilityStmt = NULL;
- subquery->resultRelation = 0;
- subquery->into = NULL;
- subquery->isPortal = FALSE;
- subquery->isBinary = FALSE;
- subquery->isTemp = FALSE;
- subquery->unionall = FALSE;
- subquery->uniqueFlag = NULL;
- subquery->sortClause = NULL;
- subquery->rtable = lappend(NIL, rte);
- subquery->targetList = lappend(NIL, tle);
- subquery->qual = subqual;
- subquery->groupClause = NIL;
- subquery->havingQual = NULL;
- subquery->hasAggs = TRUE;
- subquery->hasSubLinks = FALSE;
- subquery->unionClause = NULL;
-
-
- modifyAggrefUplevel((Node *)sublink);
-
- modifyAggrefChangeVarnodes((Node **)&(sublink->lefthand), target->varno,
- 1, target->varlevelsup);
- modifyAggrefChangeVarnodes((Node **)&(sublink->oper), target->varno,
- 1, target->varlevelsup);
- modifyAggrefChangeVarnodes((Node **)&(sublink->subselect), target->varno,
- 1, target->varlevelsup);
+ sublink->subLinkType = EXPR_SUBLINK;
+ sublink->useor = FALSE;
+ sublink->lefthand = lappend(NIL, copyObject(lfirst(exp->args)));
+ sublink->oper = lappend(NIL, copyObject(exp));
+ sublink->subselect = NULL;
+
+ subquery = makeNode(Query);
+ sublink->subselect = (Node *) subquery;
+
+ subquery->commandType = CMD_SELECT;
+ subquery->utilityStmt = NULL;
+ subquery->resultRelation = 0;
+ subquery->into = NULL;
+ subquery->isPortal = FALSE;
+ subquery->isBinary = FALSE;
+ subquery->isTemp = FALSE;
+ subquery->unionall = FALSE;
+ subquery->uniqueFlag = NULL;
+ subquery->sortClause = NULL;
+ subquery->rtable = lappend(NIL, rte);
+ subquery->targetList = lappend(NIL, tle);
+ subquery->qual = subqual;
+ subquery->groupClause = NIL;
+ subquery->havingQual = NULL;
+ subquery->hasAggs = TRUE;
+ subquery->hasSubLinks = FALSE;
+ subquery->unionClause = NULL;
+
+
+ modifyAggrefUplevel((Node *) sublink);
+
+ modifyAggrefChangeVarnodes((Node **) &(sublink->lefthand), target->varno,
+ 1, target->varlevelsup);
+ modifyAggrefChangeVarnodes((Node **) &(sublink->oper), target->varno,
+ 1, target->varlevelsup);
+ modifyAggrefChangeVarnodes((Node **) &(sublink->subselect), target->varno,
+ 1, target->varlevelsup);
return sublink;
}
@@ -1124,12 +1134,13 @@ modifyAggrefMakeSublink(Expr *origexp, Query *parsetree)
static void
modifyAggrefQual(Node **nodePtr, Query *parsetree)
{
- Node *node = *nodePtr;
+ Node *node = *nodePtr;
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_Var:
break;
@@ -1144,122 +1155,127 @@ modifyAggrefQual(Node **nodePtr, Query *parsetree)
case T_Expr:
{
- Expr *exp = (Expr *)node;
- SubLink *sub;
+ Expr *exp = (Expr *) node;
+ SubLink *sub;
- if (length(exp->args) != 2) {
+ if (length(exp->args) != 2)
+ {
modifyAggrefQual(
- (Node **)(&(exp->args)),
- parsetree);
+ (Node **) (&(exp->args)),
+ parsetree);
break;
}
if (nodeTag(nth(0, exp->args)) != T_Aggref &&
- nodeTag(nth(1, exp->args)) != T_Aggref) {
+ nodeTag(nth(1, exp->args)) != T_Aggref)
+ {
modifyAggrefQual(
- (Node **)(&(exp->args)),
- parsetree);
+ (Node **) (&(exp->args)),
+ parsetree);
break;
}
sub = modifyAggrefMakeSublink(exp,
- parsetree);
+ parsetree);
- *nodePtr = (Node *)sub;
+ *nodePtr = (Node *) sub;
parsetree->hasSubLinks = TRUE;
}
break;
case T_CaseExpr:
{
- /* We're calling recursively,
- * and this routine knows how to handle lists
- * so let it do the work to handle the WHEN clauses... */
+
+ /*
+ * We're calling recursively, and this routine knows how
+ * to handle lists so let it do the work to handle the
+ * WHEN clauses...
+ */
modifyAggrefQual(
- (Node **)(&(((CaseExpr *)node)->args)),
- parsetree);
+ (Node **) (&(((CaseExpr *) node)->args)),
+ parsetree);
modifyAggrefQual(
- (Node **)(&(((CaseExpr *)node)->defresult)),
- parsetree);
+ (Node **) (&(((CaseExpr *) node)->defresult)),
+ parsetree);
}
break;
case T_CaseWhen:
{
modifyAggrefQual(
- (Node **)(&(((CaseWhen *)node)->expr)),
- parsetree);
+ (Node **) (&(((CaseWhen *) node)->expr)),
+ parsetree);
modifyAggrefQual(
- (Node **)(&(((CaseWhen *)node)->result)),
- parsetree);
+ (Node **) (&(((CaseWhen *) node)->result)),
+ parsetree);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
modifyAggrefQual(
- (Node **)(&(iter->iterexpr)),
- parsetree);
+ (Node **) (&(iter->iterexpr)),
+ parsetree);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
modifyAggrefQual(
- (Node **)(&(ref->refupperindexpr)),
- parsetree);
+ (Node **) (&(ref->refupperindexpr)),
+ parsetree);
modifyAggrefQual(
- (Node **)(&(ref->reflowerindexpr)),
- parsetree);
+ (Node **) (&(ref->reflowerindexpr)),
+ parsetree);
modifyAggrefQual(
- (Node **)(&(ref->refexpr)),
- parsetree);
+ (Node **) (&(ref->refexpr)),
+ parsetree);
modifyAggrefQual(
- (Node **)(&(ref->refassgnexpr)),
- parsetree);
+ (Node **) (&(ref->refassgnexpr)),
+ parsetree);
}
break;
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
modifyAggrefQual(
- (Node **)(&(lfirst(l))),
- parsetree);
+ (Node **) (&(lfirst(l))),
+ parsetree);
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
+ SubLink *sub = (SubLink *) node;
modifyAggrefQual(
- (Node **)(&(sub->subselect)),
- (Query *)(sub->subselect));
+ (Node **) (&(sub->subselect)),
+ (Query *) (sub->subselect));
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
modifyAggrefQual(
- (Node **)(&(qry->qual)),
- parsetree);
+ (Node **) (&(qry->qual)),
+ parsetree);
modifyAggrefQual(
- (Node **)(&(qry->havingQual)),
- parsetree);
+ (Node **) (&(qry->havingQual)),
+ parsetree);
}
break;
@@ -1284,12 +1300,13 @@ checkQueryHasAggs(Node *node)
if (node == NULL)
return FALSE;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
- return checkQueryHasAggs((Node *)(tle->expr));
+ return checkQueryHasAggs((Node *) (tle->expr));
}
break;
@@ -1298,36 +1315,36 @@ checkQueryHasAggs(Node *node)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
- return checkQueryHasAggs((Node *)(exp->args));
+ return checkQueryHasAggs((Node *) (exp->args));
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
- return checkQueryHasAggs((Node *)(iter->iterexpr));
+ return checkQueryHasAggs((Node *) (iter->iterexpr));
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
- if (checkQueryHasAggs((Node *)(ref->refupperindexpr)))
+ if (checkQueryHasAggs((Node *) (ref->refupperindexpr)))
return TRUE;
-
- if (checkQueryHasAggs((Node *)(ref->reflowerindexpr)))
+
+ if (checkQueryHasAggs((Node *) (ref->reflowerindexpr)))
return TRUE;
-
- if (checkQueryHasAggs((Node *)(ref->refexpr)))
+
+ if (checkQueryHasAggs((Node *) (ref->refexpr)))
return TRUE;
-
- if (checkQueryHasAggs((Node *)(ref->refassgnexpr)))
+
+ if (checkQueryHasAggs((Node *) (ref->refassgnexpr)))
return TRUE;
-
+
return FALSE;
}
break;
@@ -1343,10 +1360,11 @@ checkQueryHasAggs(Node *node)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node) {
- if (checkQueryHasAggs((Node *)lfirst(l)))
+ foreach(l, (List *) node)
+ {
+ if (checkQueryHasAggs((Node *) lfirst(l)))
return TRUE;
}
return FALSE;
@@ -1355,12 +1373,12 @@ checkQueryHasAggs(Node *node)
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
- if (checkQueryHasAggs((Node *)(exp->args)))
+ if (checkQueryHasAggs((Node *) (exp->args)))
return TRUE;
- if (checkQueryHasAggs((Node *)(exp->defresult)))
+ if (checkQueryHasAggs((Node *) (exp->defresult)))
return TRUE;
return FALSE;
@@ -1369,12 +1387,12 @@ checkQueryHasAggs(Node *node)
case T_CaseWhen:
{
- CaseWhen *when = (CaseWhen *)node;
+ CaseWhen *when = (CaseWhen *) node;
- if (checkQueryHasAggs((Node *)(when->expr)))
+ if (checkQueryHasAggs((Node *) (when->expr)))
return TRUE;
- if (checkQueryHasAggs((Node *)(when->result)))
+ if (checkQueryHasAggs((Node *) (when->result)))
return TRUE;
return FALSE;
@@ -1404,12 +1422,13 @@ checkQueryHasSubLink(Node *node)
if (node == NULL)
return FALSE;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
- return checkQueryHasSubLink((Node *)(tle->expr));
+ return checkQueryHasSubLink((Node *) (tle->expr));
}
break;
@@ -1418,36 +1437,36 @@ checkQueryHasSubLink(Node *node)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
- return checkQueryHasSubLink((Node *)(exp->args));
+ return checkQueryHasSubLink((Node *) (exp->args));
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
- return checkQueryHasSubLink((Node *)(iter->iterexpr));
+ return checkQueryHasSubLink((Node *) (iter->iterexpr));
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
- if (checkQueryHasSubLink((Node *)(ref->refupperindexpr)))
+ if (checkQueryHasSubLink((Node *) (ref->refupperindexpr)))
return TRUE;
-
- if (checkQueryHasSubLink((Node *)(ref->reflowerindexpr)))
+
+ if (checkQueryHasSubLink((Node *) (ref->reflowerindexpr)))
return TRUE;
-
- if (checkQueryHasSubLink((Node *)(ref->refexpr)))
+
+ if (checkQueryHasSubLink((Node *) (ref->refexpr)))
return TRUE;
-
- if (checkQueryHasSubLink((Node *)(ref->refassgnexpr)))
+
+ if (checkQueryHasSubLink((Node *) (ref->refassgnexpr)))
return TRUE;
-
+
return FALSE;
}
break;
@@ -1463,10 +1482,11 @@ checkQueryHasSubLink(Node *node)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node) {
- if (checkQueryHasSubLink((Node *)lfirst(l)))
+ foreach(l, (List *) node)
+ {
+ if (checkQueryHasSubLink((Node *) lfirst(l)))
return TRUE;
}
return FALSE;
@@ -1475,12 +1495,12 @@ checkQueryHasSubLink(Node *node)
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
- if (checkQueryHasSubLink((Node *)(exp->args)))
+ if (checkQueryHasSubLink((Node *) (exp->args)))
return TRUE;
- if (checkQueryHasSubLink((Node *)(exp->defresult)))
+ if (checkQueryHasSubLink((Node *) (exp->defresult)))
return TRUE;
return FALSE;
@@ -1489,12 +1509,12 @@ checkQueryHasSubLink(Node *node)
case T_CaseWhen:
{
- CaseWhen *when = (CaseWhen *)node;
+ CaseWhen *when = (CaseWhen *) node;
- if (checkQueryHasSubLink((Node *)(when->expr)))
+ if (checkQueryHasSubLink((Node *) (when->expr)))
return TRUE;
- if (checkQueryHasSubLink((Node *)(when->result)))
+ if (checkQueryHasSubLink((Node *) (when->result)))
return TRUE;
return FALSE;
@@ -1548,30 +1568,31 @@ make_null(Oid type)
}
-static void
+static void
apply_RIR_adjust_sublevel(Node *node, int sublevels_up)
{
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
apply_RIR_adjust_sublevel(
- (Node *)(tle->expr),
- sublevels_up);
+ (Node *) (tle->expr),
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
apply_RIR_adjust_sublevel(
- (Node *)(aggref->target),
- sublevels_up);
+ (Node *) (aggref->target),
+ sublevels_up);
}
break;
@@ -1580,49 +1601,49 @@ apply_RIR_adjust_sublevel(Node *node, int sublevels_up)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
apply_RIR_adjust_sublevel(
- (Node *)(exp->args),
- sublevels_up);
+ (Node *) (exp->args),
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
apply_RIR_adjust_sublevel(
- (Node *)(iter->iterexpr),
- sublevels_up);
+ (Node *) (iter->iterexpr),
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
apply_RIR_adjust_sublevel(
- (Node *)(ref->refupperindexpr),
- sublevels_up);
+ (Node *) (ref->refupperindexpr),
+ sublevels_up);
apply_RIR_adjust_sublevel(
- (Node *)(ref->reflowerindexpr),
- sublevels_up);
+ (Node *) (ref->reflowerindexpr),
+ sublevels_up);
apply_RIR_adjust_sublevel(
- (Node *)(ref->refexpr),
- sublevels_up);
+ (Node *) (ref->refexpr),
+ sublevels_up);
apply_RIR_adjust_sublevel(
- (Node *)(ref->refassgnexpr),
- sublevels_up);
+ (Node *) (ref->refassgnexpr),
+ sublevels_up);
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
var->varlevelsup = sublevels_up;
}
@@ -1636,41 +1657,42 @@ apply_RIR_adjust_sublevel(Node *node, int sublevels_up)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node) {
+ foreach(l, (List *) node)
+ {
apply_RIR_adjust_sublevel(
- (Node *)lfirst(l),
- sublevels_up);
+ (Node *) lfirst(l),
+ sublevels_up);
}
}
break;
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
apply_RIR_adjust_sublevel(
- (Node *)(exp->args),
- sublevels_up);
+ (Node *) (exp->args),
+ sublevels_up);
apply_RIR_adjust_sublevel(
- (Node *)(exp->defresult),
- sublevels_up);
+ (Node *) (exp->defresult),
+ sublevels_up);
}
break;
case T_CaseWhen:
{
- CaseWhen *exp = (CaseWhen *)node;
+ CaseWhen *exp = (CaseWhen *) node;
apply_RIR_adjust_sublevel(
- (Node *)(exp->expr),
- sublevels_up);
+ (Node *) (exp->expr),
+ sublevels_up);
apply_RIR_adjust_sublevel(
- (Node *)(exp->result),
- sublevels_up);
+ (Node *) (exp->result),
+ sublevels_up);
}
break;
@@ -1687,37 +1709,38 @@ apply_RIR_adjust_sublevel(Node *node, int sublevels_up)
static void
apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, int *modified, int sublevels_up)
{
- Node *node = *nodePtr;
+ Node *node = *nodePtr;
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
apply_RIR_view(
- (Node **)(&(tle->expr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(tle->expr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
apply_RIR_view(
- (Node **)(&(aggref->target)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(aggref->target)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
@@ -1726,83 +1749,85 @@ apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, in
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
apply_RIR_view(
- (Node **)(&(exp->args)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(exp->args)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
apply_RIR_view(
- (Node **)(&(iter->iterexpr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(iter->iterexpr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
apply_RIR_view(
- (Node **)(&(ref->refupperindexpr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(ref->refupperindexpr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(ref->reflowerindexpr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(ref->reflowerindexpr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(ref->refexpr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(ref->refexpr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(ref->refassgnexpr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(ref->refassgnexpr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
if (var->varlevelsup == sublevels_up &&
- var->varno == rt_index) {
- Node *exp;
+ var->varno == rt_index)
+ {
+ Node *exp;
if (var->varattno < 0)
elog(ERROR, "system column %s not available - %s is a view", get_attname(rte->relid, var->varattno), rte->relname);
exp = FindMatchingTLEntry(
- tlist,
- get_attname(rte->relid,
- var->varattno));
+ tlist,
+ get_attname(rte->relid,
+ var->varattno));
- if (exp == NULL) {
+ if (exp == NULL)
+ {
*nodePtr = make_null(var->vartype);
return;
}
@@ -1824,122 +1849,123 @@ apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, in
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
apply_RIR_view(
- (Node **)(&(lfirst(l))),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(lfirst(l))),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
- List *tmp_lefthand, *tmp_oper;
+ SubLink *sub = (SubLink *) node;
+ List *tmp_lefthand,
+ *tmp_oper;
apply_RIR_view(
- (Node **)(&(sub->lefthand)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(sub->lefthand)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(sub->subselect)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up + 1);
+ (Node **) (&(sub->subselect)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up + 1);
/***S*I***/
- tmp_lefthand = sub->lefthand;
+ tmp_lefthand = sub->lefthand;
foreach(tmp_oper, sub->oper)
- {
- lfirst(((Expr *) lfirst(tmp_oper))->args) =
- lfirst(tmp_lefthand);
- tmp_lefthand = lnext(tmp_lefthand);
- }
+ {
+ lfirst(((Expr *) lfirst(tmp_oper))->args) =
+ lfirst(tmp_lefthand);
+ tmp_lefthand = lnext(tmp_lefthand);
+ }
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
apply_RIR_view(
- (Node **)(&(qry->targetList)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(qry->targetList)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(qry->qual)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(qry->qual)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(qry->havingQual)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(qry->havingQual)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
apply_RIR_view(
- (Node **)(&(exp->args)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(exp->args)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(exp->defresult)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(exp->defresult)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
case T_CaseWhen:
{
- CaseWhen *exp = (CaseWhen *)node;
+ CaseWhen *exp = (CaseWhen *) node;
apply_RIR_view(
- (Node **)(&(exp->expr)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(exp->expr)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
apply_RIR_view(
- (Node **)(&(exp->result)),
- rt_index,
- rte,
- tlist,
- modified,
- sublevels_up);
+ (Node **) (&(exp->result)),
+ rt_index,
+ rte,
+ tlist,
+ modified,
+ sublevels_up);
}
break;
@@ -1950,7 +1976,7 @@ apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, in
}
}
-extern void CheckSelectForUpdate(Query *rule_action); /* in analyze.c */
+extern void CheckSelectForUpdate(Query *rule_action); /* in analyze.c */
static void
ApplyRetrieveRule(Query *parsetree,
@@ -2000,32 +2026,34 @@ ApplyRetrieveRule(Query *parsetree,
parsetree->rtable = rtable;
/* FOR UPDATE of view... */
- foreach (l, parsetree->rowMark)
+ foreach(l, parsetree->rowMark)
{
- if (((RowMark*)lfirst(l))->rti == rt_index)
+ if (((RowMark *) lfirst(l))->rti == rt_index)
break;
}
- if (l != NULL) /* oh, hell -:) */
+ if (l != NULL) /* oh, hell -:) */
{
- RowMark *newrm;
+ RowMark *newrm;
Index rti = 1;
List *l2;
CheckSelectForUpdate(rule_action);
- /*
- * We believe that rt_index is VIEW - nothing should be
- * marked for VIEW, but ACL check must be done.
- * As for real tables of VIEW - their rows must be marked, but
- * we have to skip ACL check for them.
+
+ /*
+ * We believe that rt_index is VIEW - nothing should be marked for
+ * VIEW, but ACL check must be done. As for real tables of VIEW -
+ * their rows must be marked, but we have to skip ACL check for
+ * them.
*/
- ((RowMark*)lfirst(l))->info &= ~ROW_MARK_FOR_UPDATE;
- foreach (l2, rule_action->rtable)
+ ((RowMark *) lfirst(l))->info &= ~ROW_MARK_FOR_UPDATE;
+ foreach(l2, rule_action->rtable)
{
+
/*
- * RTable of VIEW has two entries of VIEW itself -
- * we use relid to skip them.
+ * RTable of VIEW has two entries of VIEW itself - we use
+ * relid to skip them.
*/
- if (relation->rd_id != ((RangeTblEntry*)lfirst(l2))->relid)
+ if (relation->rd_id != ((RangeTblEntry *) lfirst(l2))->relid)
{
newrm = makeNode(RowMark);
newrm->rti = rti + rt_length;
@@ -2038,36 +2066,37 @@ ApplyRetrieveRule(Query *parsetree,
}
rule_action->rtable = rtable;
- OffsetVarNodes((Node *) rule_qual, rt_length, 0);
+ OffsetVarNodes((Node *) rule_qual, rt_length, 0);
OffsetVarNodes((Node *) rule_action, rt_length, 0);
- ChangeVarNodes((Node *) rule_qual,
+ ChangeVarNodes((Node *) rule_qual,
PRS2_CURRENT_VARNO + rt_length, rt_index, 0);
ChangeVarNodes((Node *) rule_action,
PRS2_CURRENT_VARNO + rt_length, rt_index, 0);
if (relation_level)
{
- apply_RIR_view((Node **) &parsetree, rt_index,
- (RangeTblEntry *)nth(rt_index - 1, rtable),
- rule_action->targetList, modified, 0);
- apply_RIR_view((Node **) &rule_action, rt_index,
- (RangeTblEntry *)nth(rt_index - 1, rtable),
- rule_action->targetList, modified, 0);
+ apply_RIR_view((Node **) &parsetree, rt_index,
+ (RangeTblEntry *) nth(rt_index - 1, rtable),
+ rule_action->targetList, modified, 0);
+ apply_RIR_view((Node **) &rule_action, rt_index,
+ (RangeTblEntry *) nth(rt_index - 1, rtable),
+ rule_action->targetList, modified, 0);
}
else
{
- HandleRIRAttributeRule(parsetree, rtable, rule_action->targetList,
- rt_index, rule->attrno, modified, &badsql);
+ HandleRIRAttributeRule(parsetree, rtable, rule_action->targetList,
+ rt_index, rule->attrno, modified, &badsql);
+ }
+ if (*modified && !badsql)
+ {
+ AddQual(parsetree, rule_action->qual);
+ AddGroupClause(parsetree, rule_action->groupClause,
+ rule_action->targetList);
+ AddHavingQual(parsetree, rule_action->havingQual);
+ parsetree->hasAggs = (rule_action->hasAggs || parsetree->hasAggs);
+ parsetree->hasSubLinks = (rule_action->hasSubLinks || parsetree->hasSubLinks);
}
- if (*modified && !badsql) {
- AddQual(parsetree, rule_action->qual);
- AddGroupClause(parsetree, rule_action->groupClause,
- rule_action->targetList);
- AddHavingQual(parsetree, rule_action->havingQual);
- parsetree->hasAggs = (rule_action->hasAggs || parsetree->hasAggs);
- parsetree->hasSubLinks = (rule_action->hasSubLinks || parsetree->hasSubLinks);
- }
}
@@ -2077,22 +2106,23 @@ fireRIRonSubselect(Node *node)
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
fireRIRonSubselect(
- (Node *)(tle->expr));
+ (Node *) (tle->expr));
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
fireRIRonSubselect(
- (Node *)(aggref->target));
+ (Node *) (aggref->target));
}
break;
@@ -2101,34 +2131,34 @@ fireRIRonSubselect(Node *node)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
fireRIRonSubselect(
- (Node *)(exp->args));
+ (Node *) (exp->args));
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
fireRIRonSubselect(
- (Node *)(iter->iterexpr));
+ (Node *) (iter->iterexpr));
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
fireRIRonSubselect(
- (Node *)(ref->refupperindexpr));
+ (Node *) (ref->refupperindexpr));
fireRIRonSubselect(
- (Node *)(ref->reflowerindexpr));
+ (Node *) (ref->reflowerindexpr));
fireRIRonSubselect(
- (Node *)(ref->refexpr));
+ (Node *) (ref->refexpr));
fireRIRonSubselect(
- (Node *)(ref->refassgnexpr));
+ (Node *) (ref->refassgnexpr));
}
break;
@@ -2143,26 +2173,26 @@ fireRIRonSubselect(Node *node)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
fireRIRonSubselect(
- (Node *)(lfirst(l)));
+ (Node *) (lfirst(l)));
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
- Query *qry;
+ SubLink *sub = (SubLink *) node;
+ Query *qry;
fireRIRonSubselect(
- (Node *)(sub->lefthand));
+ (Node *) (sub->lefthand));
- qry = fireRIRrules((Query *)(sub->subselect));
+ qry = fireRIRrules((Query *) (sub->subselect));
fireRIRonSubselect(
- (Node *)qry);
+ (Node *) qry);
sub->subselect = (Node *) qry;
}
@@ -2170,40 +2200,40 @@ fireRIRonSubselect(Node *node)
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
fireRIRonSubselect(
- (Node *)(exp->args));
+ (Node *) (exp->args));
fireRIRonSubselect(
- (Node *)(exp->defresult));
+ (Node *) (exp->defresult));
}
break;
case T_CaseWhen:
{
- CaseWhen *exp = (CaseWhen *)node;
+ CaseWhen *exp = (CaseWhen *) node;
fireRIRonSubselect(
- (Node *)(exp->expr));
+ (Node *) (exp->expr));
fireRIRonSubselect(
- (Node *)(exp->result));
+ (Node *) (exp->result));
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
fireRIRonSubselect(
- (Node *)(qry->targetList));
+ (Node *) (qry->targetList));
fireRIRonSubselect(
- (Node *)(qry->qual));
+ (Node *) (qry->qual));
fireRIRonSubselect(
- (Node *)(qry->havingQual));
+ (Node *) (qry->havingQual));
}
break;
@@ -2224,30 +2254,32 @@ fireRIRonSubselect(Node *node)
static Query *
fireRIRrules(Query *parsetree)
{
- int rt_index;
- RangeTblEntry *rte;
+ int rt_index;
+ RangeTblEntry *rte;
Relation rel;
- List *locks;
- RuleLock *rules;
- RewriteRule *rule;
- RewriteRule RIRonly;
- int modified;
- int i;
- List *l;
+ List *locks;
+ RuleLock *rules;
+ RewriteRule *rule;
+ RewriteRule RIRonly;
+ int modified;
+ int i;
+ List *l;
rt_index = 0;
- while(rt_index < length(parsetree->rtable)) {
+ while (rt_index < length(parsetree->rtable))
+ {
++rt_index;
rte = nth(rt_index - 1, parsetree->rtable);
- if (!rangeTableEntry_used((Node *)parsetree, rt_index, 0))
+ if (!rangeTableEntry_used((Node *) parsetree, rt_index, 0))
{
+
/*
* Unused range table entries must not be marked as coming
- * from a clause. Otherwise the planner will generate
- * joins over relations that in fact shouldn't be scanned
- * at all and the result will contain duplicates
+ * from a clause. Otherwise the planner will generate joins
+ * over relations that in fact shouldn't be scanned at all and
+ * the result will contain duplicates
*
* Jan
*
@@ -2255,9 +2287,10 @@ fireRIRrules(Query *parsetree)
rte->inFromCl = FALSE;
continue;
}
-
+
rel = heap_openr(rte->relname);
- if (rel->rd_rules == NULL) {
+ if (rel->rd_rules == NULL)
+ {
heap_close(rel);
continue;
}
@@ -2268,15 +2301,16 @@ fireRIRrules(Query *parsetree)
/*
* Collect the RIR rules that we must apply
*/
- for (i = 0; i < rules->numLocks; i++) {
+ for (i = 0; i < rules->numLocks; i++)
+ {
rule = rules->rules[i];
if (rule->event != CMD_SELECT)
continue;
-
+
if (rule->attrno > 0 &&
- !attribute_used((Node *)parsetree,
- rt_index,
- rule->attrno, 0))
+ !attribute_used((Node *) parsetree,
+ rt_index,
+ rule->attrno, 0))
continue;
locks = lappend(locks, rule);
@@ -2290,20 +2324,21 @@ fireRIRrules(Query *parsetree)
/*
* Now apply them
*/
- foreach (l, locks) {
+ foreach(l, locks)
+ {
rule = lfirst(l);
- RIRonly.event = rule->event;
- RIRonly.attrno = rule->attrno;
- RIRonly.qual = rule->qual;
- RIRonly.actions = rule->actions;
+ RIRonly.event = rule->event;
+ RIRonly.attrno = rule->attrno;
+ RIRonly.qual = rule->qual;
+ RIRonly.actions = rule->actions;
ApplyRetrieveRule(parsetree,
- &RIRonly,
- rt_index,
- RIRonly.attrno == -1,
- rel,
- &modified);
+ &RIRonly,
+ rt_index,
+ RIRonly.attrno == -1,
+ rel,
+ &modified);
}
heap_close(rel);
@@ -2408,9 +2443,7 @@ fireRules(Query *parsetree,
/* choose rule to fire from list of rules */
if (locks == NIL)
- {
return NIL;
- }
locks = orderRules(locks); /* real instead rules last */
foreach(i, locks)
@@ -2529,9 +2562,7 @@ fireRules(Query *parsetree,
rule_action->hasSubLinks = TRUE;
}
if (!parsetree->hasSubLinks && rule_action->hasSubLinks)
- {
parsetree->hasSubLinks = TRUE;
- }
/*--------------------------------------------------
* Step 1:
@@ -2581,10 +2612,11 @@ fireRules(Query *parsetree,
*--------------------------------------------------
*/
info->rule_action->rtable = info->rt;
+
/*
- ProcessRetrieveQuery(info->rule_action, info->rt,
- &orig_instead_flag, TRUE);
- */
+ * ProcessRetrieveQuery(info->rule_action, info->rt,
+ * &orig_instead_flag, TRUE);
+ */
/*--------------------------------------------------
* Step 4
@@ -2614,19 +2646,19 @@ static List *
RewriteQuery(Query *parsetree, bool *instead_flag, List **qual_products)
{
CmdType event;
- List *product_queries = NIL;
- int result_relation = 0;
- RangeTblEntry *rt_entry;
+ List *product_queries = NIL;
+ int result_relation = 0;
+ RangeTblEntry *rt_entry;
Relation rt_entry_relation = NULL;
- RuleLock *rt_entry_locks = NULL;
+ RuleLock *rt_entry_locks = NULL;
Assert(parsetree != NULL);
event = parsetree->commandType;
/*
- * SELECT rules are handled later when we have all the
- * queries that should get executed
+ * SELECT rules are handled later when we have all the queries that
+ * should get executed
*/
if (event == CMD_SELECT)
return NIL;
@@ -2646,8 +2678,7 @@ RewriteQuery(Query *parsetree, bool *instead_flag, List **qual_products)
result_relation = parsetree->resultRelation;
/*
- * the statement is an update, insert or delete - fire rules
- * on it.
+ * the statement is an update, insert or delete - fire rules on it.
*/
rt_entry = rt_fetch(result_relation, parsetree->rtable);
rt_entry_relation = heap_openr(rt_entry->relname);
@@ -2659,11 +2690,11 @@ RewriteQuery(Query *parsetree, bool *instead_flag, List **qual_products)
List *locks = matchLocks(event, rt_entry_locks, result_relation, parsetree);
product_queries = fireRules(parsetree,
- result_relation,
- event,
- instead_flag,
- locks,
- qual_products);
+ result_relation,
+ event,
+ instead_flag,
+ locks,
+ qual_products);
}
return product_queries;
@@ -2805,16 +2836,16 @@ RewritePreprocessQuery(Query *parsetree)
static List *
BasicQueryRewrite(Query *parsetree)
{
- List *querylist;
- List *results = NIL;
- List *l;
- Query *query;
+ List *querylist;
+ List *results = NIL;
+ List *l;
+ Query *query;
/*
* Step 1
*
- * There still seems something broken with the resdom numbers
- * so we reassign them first.
+ * There still seems something broken with the resdom numbers so we
+ * reassign them first.
*/
RewritePreprocessQuery(parsetree);
@@ -2830,19 +2861,21 @@ BasicQueryRewrite(Query *parsetree)
*
* Apply all the RIR rules on each query
*/
- foreach (l, querylist) {
- query = fireRIRrules((Query *)lfirst(l));
+ foreach(l, querylist)
+ {
+ query = fireRIRrules((Query *) lfirst(l));
+
/*
- * If the query was marked having aggregates, check if
- * this is still true after rewriting. This check must get
- * expanded when someday aggregates can appear somewhere
- * else than in the targetlist or the having qual.
+ * If the query was marked having aggregates, check if this is
+ * still true after rewriting. This check must get expanded when
+ * someday aggregates can appear somewhere else than in the
+ * targetlist or the having qual.
*/
if (query->hasAggs)
- query->hasAggs = checkQueryHasAggs((Node *)(query->targetList))
- | checkQueryHasAggs((Node *)(query->havingQual));
- query->hasSubLinks = checkQueryHasSubLink((Node *)(query->qual))
- | checkQueryHasSubLink((Node *)(query->havingQual));
+ query->hasAggs = checkQueryHasAggs((Node *) (query->targetList))
+ | checkQueryHasAggs((Node *) (query->havingQual));
+ query->hasSubLinks = checkQueryHasSubLink((Node *) (query->qual))
+ | checkQueryHasSubLink((Node *) (query->havingQual));
results = lappend(results, query);
}
return results;
@@ -2866,8 +2899,11 @@ QueryRewrite(Query *parsetree)
*rewritten_item;
/***S*I***/
- /* Rewrite Union, Intersect and Except Queries
- * to normal Union Queries using IN and NOT IN subselects */
+
+ /*
+ * Rewrite Union, Intersect and Except Queries to normal Union Queries
+ * using IN and NOT IN subselects
+ */
if (parsetree->intersectClause)
parsetree = Except_Intersect_Rewrite(parsetree);
@@ -2877,16 +2913,16 @@ QueryRewrite(Query *parsetree)
/*
* Rewrite the UNIONS.
*/
- foreach (rewritten_item, rewritten)
+ foreach(rewritten_item, rewritten)
{
Query *qry = (Query *) lfirst(rewritten_item);
List *union_result = NIL;
List *union_item;
- foreach (union_item, qry->unionClause)
+ foreach(union_item, qry->unionClause)
{
union_result = nconc(union_result,
- BasicQueryRewrite((Query *) lfirst(union_item)));
+ BasicQueryRewrite((Query *) lfirst(union_item)));
}
qry->unionClause = union_result;
}
@@ -2898,79 +2934,82 @@ QueryRewrite(Query *parsetree)
/* This function takes two targetlists as arguments and checks if the
* targetlists are compatible (i.e. both select for the same number of
* attributes and the types are compatible */
-void check_targetlists_are_compatible(List *prev_target, List *current_target)
+void
+check_targetlists_are_compatible(List *prev_target, List *current_target)
{
- List *tl, *next_target;
- int prev_len = 0, next_len = 0;
+ List *tl,
+ *next_target;
+ int prev_len = 0,
+ next_len = 0;
- foreach(tl, prev_target)
- if (!((TargetEntry *) lfirst(tl))->resdom->resjunk)
+ foreach(tl, prev_target)
+ if (!((TargetEntry *) lfirst(tl))->resdom->resjunk)
prev_len++;
- foreach(next_target, current_target)
- if (!((TargetEntry *) lfirst(next_target))->resdom->resjunk)
+ foreach(next_target, current_target)
+ if (!((TargetEntry *) lfirst(next_target))->resdom->resjunk)
next_len++;
-
- if (prev_len != next_len)
- elog(ERROR,"Each UNION | EXCEPT | INTERSECT query must have the same number of columns.");
-
- foreach(next_target, current_target)
- {
- Oid itype;
- Oid otype;
-
- otype = ((TargetEntry *) lfirst(prev_target))->resdom->restype;
- itype = ((TargetEntry *) lfirst(next_target))->resdom->restype;
-
- /* one or both is a NULL column? then don't convert... */
- if (otype == InvalidOid)
+
+ if (prev_len != next_len)
+ elog(ERROR, "Each UNION | EXCEPT | INTERSECT query must have the same number of columns.");
+
+ foreach(next_target, current_target)
{
- /* propagate a known type forward, if available */
- if (itype != InvalidOid)
- ((TargetEntry *) lfirst(prev_target))->resdom->restype = itype;
+ Oid itype;
+ Oid otype;
+
+ otype = ((TargetEntry *) lfirst(prev_target))->resdom->restype;
+ itype = ((TargetEntry *) lfirst(next_target))->resdom->restype;
+
+ /* one or both is a NULL column? then don't convert... */
+ if (otype == InvalidOid)
+ {
+ /* propagate a known type forward, if available */
+ if (itype != InvalidOid)
+ ((TargetEntry *) lfirst(prev_target))->resdom->restype = itype;
#ifdef NOT_USED
- else
- {
- ((TargetEntry *) lfirst(prev_target))->resdom->restype = UNKNOWNOID;
- ((TargetEntry *) lfirst(next_target))->resdom->restype = UNKNOWNOID;
- }
+ else
+ {
+ ((TargetEntry *) lfirst(prev_target))->resdom->restype = UNKNOWNOID;
+ ((TargetEntry *) lfirst(next_target))->resdom->restype = UNKNOWNOID;
+ }
#endif
+ }
+ else if (itype == InvalidOid)
+ {
+ }
+ /* they don't match in type? then convert... */
+ else if (itype != otype)
+ {
+ Node *expr;
+
+ expr = ((TargetEntry *) lfirst(next_target))->expr;
+ expr = CoerceTargetExpr(NULL, expr, itype, otype);
+ if (expr == NULL)
+ {
+ elog(ERROR, "Unable to transform %s to %s"
+ "\n\tEach UNION | EXCEPT | INTERSECT clause must have compatible target types",
+ typeidTypeName(itype),
+ typeidTypeName(otype));
+ }
+ ((TargetEntry *) lfirst(next_target))->expr = expr;
+ ((TargetEntry *) lfirst(next_target))->resdom->restype = otype;
+ }
+
+ /* both are UNKNOWN? then evaluate as text... */
+ else if (itype == UNKNOWNOID)
+ {
+ ((TargetEntry *) lfirst(next_target))->resdom->restype = TEXTOID;
+ ((TargetEntry *) lfirst(prev_target))->resdom->restype = TEXTOID;
+ }
+ prev_target = lnext(prev_target);
}
- else if (itype == InvalidOid)
- {
- }
- /* they don't match in type? then convert... */
- else if (itype != otype)
- {
- Node *expr;
-
- expr = ((TargetEntry *) lfirst(next_target))->expr;
- expr = CoerceTargetExpr(NULL, expr, itype, otype);
- if (expr == NULL)
- {
- elog(ERROR, "Unable to transform %s to %s"
- "\n\tEach UNION | EXCEPT | INTERSECT clause must have compatible target types",
- typeidTypeName(itype),
- typeidTypeName(otype));
- }
- ((TargetEntry *) lfirst(next_target))->expr = expr;
- ((TargetEntry *) lfirst(next_target))->resdom->restype = otype;
- }
-
- /* both are UNKNOWN? then evaluate as text... */
- else if (itype == UNKNOWNOID)
- {
- ((TargetEntry *) lfirst(next_target))->resdom->restype = TEXTOID;
- ((TargetEntry *) lfirst(prev_target))->resdom->restype = TEXTOID;
- }
- prev_target = lnext(prev_target);
- }
}
/***S*I***/
/* Rewrites UNION INTERSECT and EXCEPT queries to semantiacally equivalent
- * queries that use IN and NOT IN subselects.
- *
+ * queries that use IN and NOT IN subselects.
+ *
* The operator tree is attached to 'intersectClause' (see rule
* 'SelectStmt' in gram.y) of the 'parsetree' given as an
* argument. First we remember some clauses (the sortClause, the
@@ -2983,233 +3022,291 @@ void check_targetlists_are_compatible(List *prev_target, List *current_target)
* union list and for every OR we create an IN subselect. (NOT IN
* subselects are created for OR NOT nodes). The first entry of the
* union list is handed back but before that the remembered clauses
- * (sortClause etc) are attached to the new top Node (Note that the
+ * (sortClause etc) are attached to the new top Node (Note that the
* new top Node can differ from the parsetree given as argument because of
* the translation to DNF. That's why we have to remember the sortClause or
* unique flag!) */
Query *
-Except_Intersect_Rewrite (Query *parsetree)
+Except_Intersect_Rewrite(Query *parsetree)
{
-
- SubLink *n;
- Query *result, *intersect_node;
- List *elist, *intersect_list = NIL, *intersect, *intersectClause;
- List *union_list = NIL, *sortClause;
- List *left_expr, *right_expr, *resnames = NIL;
- char *op, *uniqueFlag, *into;
- bool isBinary, isPortal, isTemp;
- CmdType commandType = CMD_SELECT;
- List *rtable_insert = NIL;
-
- List *prev_target = NIL;
-
- /* Remember the Resnames of the given parsetree's targetlist
- * (these are the resnames of the first Select Statement of
- * the query formulated by the user and he wants the columns
- * named by these strings. The transformation to DNF can
- * cause another Select Statment to be the top one which
- * uses other names for its columns. Therefore we remeber
- * the original names and attach them to the targetlist
- * of the new topmost Node at the end of this function */
- foreach(elist, parsetree->targetList)
- {
- TargetEntry *tent = (TargetEntry *)lfirst(elist);
-
- resnames = lappend(resnames, tent->resdom->resname);
- }
-
- /* If the Statement is an INSERT INTO ... (SELECT...) statement
- * using UNIONs, INTERSECTs or EXCEPTs and the transformation
- * to DNF makes another Node to the top node we have to transform
- * the new top node to an INSERT node and the original INSERT node
- * to a SELECT node */
- if (parsetree->commandType == CMD_INSERT)
- {
- parsetree->commandType = CMD_SELECT;
- commandType = CMD_INSERT;
- parsetree->resultRelation = 0;
-
- /* The result relation ( = the one to insert into) has to be
- * attached to the rtable list of the new top node */
- rtable_insert = nth(length(parsetree->rtable) - 1, parsetree->rtable);
- }
-
- /* Save some items, to be able to attach them to the resulting top node
- * at the end of the function */
- sortClause = parsetree->sortClause;
- uniqueFlag = parsetree->uniqueFlag;
- into = parsetree->into;
- isBinary = parsetree->isBinary;
- isPortal = parsetree->isPortal;
- isTemp = parsetree->isTemp;
-
- /* The operator tree attached to parsetree->intersectClause is still 'raw'
- * ( = the leaf nodes are still SelectStmt nodes instead of Query nodes)
- * So step through the tree and transform the nodes using parse_analyze().
- *
- * The parsetree (given as an argument to
- * Except_Intersect_Rewrite()) has already been transformed and
- * transforming it again would cause troubles. So we give the 'raw'
- * version (of the cooked parsetree) to the function to
- * prevent an additional transformation. Instead we hand back the
- * 'cooked' version also given as an argument to
- * intersect_tree_analyze() */
- intersectClause =
- (List *)intersect_tree_analyze((Node *)parsetree->intersectClause,
- (Node *)lfirst(parsetree->unionClause),
- (Node *)parsetree);
-
- /* intersectClause is no longer needed so set it to NIL */
- parsetree->intersectClause = NIL;
- /* unionClause will be needed later on but the list it delivered
- * is no longer needed, so set it to NIL */
- parsetree->unionClause = NIL;
-
- /* Transform the operator tree to DNF (remember ANDs and ORs have been exchanged,
- * that's why we get DNF by using cnfify)
- *
- * After the call, explicit ANDs are removed and all AND operands
- * are simply items in the intersectClause list */
- intersectClause = cnfify((Expr *)intersectClause, true);
-
- /* For every entry of the intersectClause list we generate one entry in
- * the union_list */
- foreach(intersect, intersectClause)
- {
- /* for every OR we create an IN subselect and for every OR NOT
- * we create a NOT IN subselect, so first extract all the Select
- * Query nodes from the tree (that contains only OR or OR NOTs
- * any more because we did a transformation to DNF
- *
- * There must be at least one node that is not negated
- * (i.e. just OR and not OR NOT) and this node will be the first
- * in the list returned */
- intersect_list = NIL;
- create_list((Node *)lfirst(intersect), &intersect_list);
-
- /* This one will become the Select Query node, all other
- * nodes are transformed into subselects under this node! */
- intersect_node = (Query *)lfirst(intersect_list);
- intersect_list = lnext(intersect_list);
-
- /* Check if all Select Statements use the same number of attributes and
- * if all corresponding attributes are of the same type */
- if (prev_target)
- check_targetlists_are_compatible(prev_target, intersect_node->targetList);
- prev_target = intersect_node->targetList;
- /* End of check for corresponding targetlists */
-
- /* Transform all nodes remaining into subselects and add them to
- * the qualifications of the Select Query node */
- while(intersect_list != NIL) {
-
- n = makeNode(SubLink);
-
- /* Here we got an OR so transform it to an IN subselect */
- if(IsA(lfirst(intersect_list), Query))
- {
- /* Check if all Select Statements use the same number of attributes and
- * if all corresponding attributes are of the same type */
- check_targetlists_are_compatible(prev_target,
- ((Query *)lfirst(intersect_list))->targetList);
- /* End of check for corresponding targetlists */
-
- n->subselect = lfirst(intersect_list);
- op = "=";
- n->subLinkType = ANY_SUBLINK;
- n->useor = false;
- }
- /* Here we got an OR NOT node so transform it to a NOT IN subselect */
- else
- {
- /* Check if all Select Statements use the same number of attributes and
- * if all corresponding attributes are of the same type */
- check_targetlists_are_compatible(prev_target,
- ((Query *)lfirst(((Expr *)lfirst(intersect_list))->args))->targetList);
- /* End of check for corresponding targetlists */
-
- n->subselect = (Node *)lfirst(((Expr *)lfirst(intersect_list))->args);
- op = "<>";
- n->subLinkType = ALL_SUBLINK;
- n->useor = true;
- }
-
- /* Prepare the lefthand side of the Sublinks: All the entries of the
- * targetlist must be (IN) or must not be (NOT IN) the subselect */
- foreach(elist, intersect_node->targetList)
- {
- Node *expr = lfirst(elist);
- TargetEntry *tent = (TargetEntry *)expr;
-
- n->lefthand = lappend(n->lefthand, tent->expr);
- }
-
- /* The first arguments of oper also have to be created for the
- * sublink (they are the same as the lefthand side!) */
- left_expr = n->lefthand;
- right_expr = ((Query *)(n->subselect))->targetList;
-
- foreach(elist, left_expr)
- {
- Node *lexpr = lfirst(elist);
- Node *rexpr = lfirst(right_expr);
- TargetEntry *tent = (TargetEntry *) rexpr;
- Expr *op_expr;
-
- op_expr = make_op(op, lexpr, tent->expr);
-
- n->oper = lappend(n->oper, op_expr);
- right_expr = lnext(right_expr);
- }
-
- /* If the Select Query node has aggregates in use
- * add all the subselects to the HAVING qual else to
- * the WHERE qual */
- if(intersect_node->hasAggs == false) {
- AddQual(intersect_node, (Node *)n);
+
+ SubLink *n;
+ Query *result,
+ *intersect_node;
+ List *elist,
+ *intersect_list = NIL,
+ *intersect,
+ *intersectClause;
+ List *union_list = NIL,
+ *sortClause;
+ List *left_expr,
+ *right_expr,
+ *resnames = NIL;
+ char *op,
+ *uniqueFlag,
+ *into;
+ bool isBinary,
+ isPortal,
+ isTemp;
+ CmdType commandType = CMD_SELECT;
+ List *rtable_insert = NIL;
+
+ List *prev_target = NIL;
+
+ /*
+ * Remember the Resnames of the given parsetree's targetlist (these
+ * are the resnames of the first Select Statement of the query
+ * formulated by the user and he wants the columns named by these
+ * strings. The transformation to DNF can cause another Select
+ * Statment to be the top one which uses other names for its columns.
+ * Therefore we remeber the original names and attach them to the
+ * targetlist of the new topmost Node at the end of this function
+ */
+ foreach(elist, parsetree->targetList)
+ {
+ TargetEntry *tent = (TargetEntry *) lfirst(elist);
+
+ resnames = lappend(resnames, tent->resdom->resname);
+ }
+
+ /*
+ * If the Statement is an INSERT INTO ... (SELECT...) statement using
+ * UNIONs, INTERSECTs or EXCEPTs and the transformation to DNF makes
+ * another Node to the top node we have to transform the new top node
+ * to an INSERT node and the original INSERT node to a SELECT node
+ */
+ if (parsetree->commandType == CMD_INSERT)
+ {
+ parsetree->commandType = CMD_SELECT;
+ commandType = CMD_INSERT;
+ parsetree->resultRelation = 0;
+
+ /*
+ * The result relation ( = the one to insert into) has to be
+ * attached to the rtable list of the new top node
+ */
+ rtable_insert = nth(length(parsetree->rtable) - 1, parsetree->rtable);
}
- else {
- AddHavingQual(intersect_node, (Node *)n);
- }
-
- /* Now we got sublinks */
- intersect_node->hasSubLinks = true;
- intersect_list = lnext(intersect_list);
- }
- intersect_node->intersectClause = NIL;
- union_list = lappend(union_list, intersect_node);
- }
-
- /* The first entry to union_list is our new top node */
- result = (Query *)lfirst(union_list);
- /* attach the rest to unionClause */
- result->unionClause = lnext(union_list);
- /* Attach all the items remembered in the beginning of the function */
- result->sortClause = sortClause;
- result->uniqueFlag = uniqueFlag;
- result->into = into;
- result->isPortal = isPortal;
- result->isBinary = isBinary;
- result->isTemp = isTemp;
-
- /* The relation to insert into is attached to the range table
- * of the new top node */
- if (commandType == CMD_INSERT)
- {
- result->rtable = lappend(result->rtable, rtable_insert);
- result->resultRelation = length(result->rtable);
- result->commandType = commandType;
- }
- /* The resnames of the originally first SelectStatement are
- * attached to the new first SelectStatement */
- foreach(elist, result->targetList)
- {
- TargetEntry *tent = (TargetEntry *)lfirst(elist);
-
- tent->resdom->resname = lfirst(resnames);
- resnames = lnext(resnames);
- }
- return result;
+
+ /*
+ * Save some items, to be able to attach them to the resulting top
+ * node at the end of the function
+ */
+ sortClause = parsetree->sortClause;
+ uniqueFlag = parsetree->uniqueFlag;
+ into = parsetree->into;
+ isBinary = parsetree->isBinary;
+ isPortal = parsetree->isPortal;
+ isTemp = parsetree->isTemp;
+
+ /*
+ * The operator tree attached to parsetree->intersectClause is still
+ * 'raw' ( = the leaf nodes are still SelectStmt nodes instead of
+ * Query nodes) So step through the tree and transform the nodes using
+ * parse_analyze().
+ *
+ * The parsetree (given as an argument to Except_Intersect_Rewrite()) has
+ * already been transformed and transforming it again would cause
+ * troubles. So we give the 'raw' version (of the cooked parsetree)
+ * to the function to prevent an additional transformation. Instead we
+ * hand back the 'cooked' version also given as an argument to
+ * intersect_tree_analyze()
+ */
+ intersectClause =
+ (List *) intersect_tree_analyze((Node *) parsetree->intersectClause,
+ (Node *) lfirst(parsetree->unionClause),
+ (Node *) parsetree);
+
+ /* intersectClause is no longer needed so set it to NIL */
+ parsetree->intersectClause = NIL;
+
+ /*
+ * unionClause will be needed later on but the list it delivered is no
+ * longer needed, so set it to NIL
+ */
+ parsetree->unionClause = NIL;
+
+ /*
+ * Transform the operator tree to DNF (remember ANDs and ORs have been
+ * exchanged, that's why we get DNF by using cnfify)
+ *
+ * After the call, explicit ANDs are removed and all AND operands are
+ * simply items in the intersectClause list
+ */
+ intersectClause = cnfify((Expr *) intersectClause, true);
+
+ /*
+ * For every entry of the intersectClause list we generate one entry
+ * in the union_list
+ */
+ foreach(intersect, intersectClause)
+ {
+
+ /*
+ * for every OR we create an IN subselect and for every OR NOT we
+ * create a NOT IN subselect, so first extract all the Select
+ * Query nodes from the tree (that contains only OR or OR NOTs any
+ * more because we did a transformation to DNF
+ *
+ * There must be at least one node that is not negated (i.e. just OR
+ * and not OR NOT) and this node will be the first in the list
+ * returned
+ */
+ intersect_list = NIL;
+ create_list((Node *) lfirst(intersect), &intersect_list);
+
+ /*
+ * This one will become the Select Query node, all other nodes are
+ * transformed into subselects under this node!
+ */
+ intersect_node = (Query *) lfirst(intersect_list);
+ intersect_list = lnext(intersect_list);
+
+ /*
+ * Check if all Select Statements use the same number of
+ * attributes and if all corresponding attributes are of the same
+ * type
+ */
+ if (prev_target)
+ check_targetlists_are_compatible(prev_target, intersect_node->targetList);
+ prev_target = intersect_node->targetList;
+ /* End of check for corresponding targetlists */
+
+ /*
+ * Transform all nodes remaining into subselects and add them to
+ * the qualifications of the Select Query node
+ */
+ while (intersect_list != NIL)
+ {
+
+ n = makeNode(SubLink);
+
+ /* Here we got an OR so transform it to an IN subselect */
+ if (IsA(lfirst(intersect_list), Query))
+ {
+
+ /*
+ * Check if all Select Statements use the same number of
+ * attributes and if all corresponding attributes are of
+ * the same type
+ */
+ check_targetlists_are_compatible(prev_target,
+ ((Query *) lfirst(intersect_list))->targetList);
+ /* End of check for corresponding targetlists */
+
+ n->subselect = lfirst(intersect_list);
+ op = "=";
+ n->subLinkType = ANY_SUBLINK;
+ n->useor = false;
+ }
+
+ /*
+ * Here we got an OR NOT node so transform it to a NOT IN
+ * subselect
+ */
+ else
+ {
+
+ /*
+ * Check if all Select Statements use the same number of
+ * attributes and if all corresponding attributes are of
+ * the same type
+ */
+ check_targetlists_are_compatible(prev_target,
+ ((Query *) lfirst(((Expr *) lfirst(intersect_list))->args))->targetList);
+ /* End of check for corresponding targetlists */
+
+ n->subselect = (Node *) lfirst(((Expr *) lfirst(intersect_list))->args);
+ op = "<>";
+ n->subLinkType = ALL_SUBLINK;
+ n->useor = true;
+ }
+
+ /*
+ * Prepare the lefthand side of the Sublinks: All the entries
+ * of the targetlist must be (IN) or must not be (NOT IN) the
+ * subselect
+ */
+ foreach(elist, intersect_node->targetList)
+ {
+ Node *expr = lfirst(elist);
+ TargetEntry *tent = (TargetEntry *) expr;
+
+ n->lefthand = lappend(n->lefthand, tent->expr);
+ }
+
+ /*
+ * The first arguments of oper also have to be created for the
+ * sublink (they are the same as the lefthand side!)
+ */
+ left_expr = n->lefthand;
+ right_expr = ((Query *) (n->subselect))->targetList;
+
+ foreach(elist, left_expr)
+ {
+ Node *lexpr = lfirst(elist);
+ Node *rexpr = lfirst(right_expr);
+ TargetEntry *tent = (TargetEntry *) rexpr;
+ Expr *op_expr;
+
+ op_expr = make_op(op, lexpr, tent->expr);
+
+ n->oper = lappend(n->oper, op_expr);
+ right_expr = lnext(right_expr);
+ }
+
+ /*
+ * If the Select Query node has aggregates in use add all the
+ * subselects to the HAVING qual else to the WHERE qual
+ */
+ if (intersect_node->hasAggs == false)
+ AddQual(intersect_node, (Node *) n);
+ else
+ AddHavingQual(intersect_node, (Node *) n);
+
+ /* Now we got sublinks */
+ intersect_node->hasSubLinks = true;
+ intersect_list = lnext(intersect_list);
+ }
+ intersect_node->intersectClause = NIL;
+ union_list = lappend(union_list, intersect_node);
+ }
+
+ /* The first entry to union_list is our new top node */
+ result = (Query *) lfirst(union_list);
+ /* attach the rest to unionClause */
+ result->unionClause = lnext(union_list);
+ /* Attach all the items remembered in the beginning of the function */
+ result->sortClause = sortClause;
+ result->uniqueFlag = uniqueFlag;
+ result->into = into;
+ result->isPortal = isPortal;
+ result->isBinary = isBinary;
+ result->isTemp = isTemp;
+
+ /*
+ * The relation to insert into is attached to the range table of the
+ * new top node
+ */
+ if (commandType == CMD_INSERT)
+ {
+ result->rtable = lappend(result->rtable, rtable_insert);
+ result->resultRelation = length(result->rtable);
+ result->commandType = commandType;
+ }
+
+ /*
+ * The resnames of the originally first SelectStatement are attached
+ * to the new first SelectStatement
+ */
+ foreach(elist, result->targetList)
+ {
+ TargetEntry *tent = (TargetEntry *) lfirst(elist);
+
+ tent->resdom->resname = lfirst(resnames);
+ resnames = lnext(resnames);
+ }
+ return result;
}
/* Create a list of nodes that are either Query nodes of NOT Expr
@@ -3217,74 +3314,70 @@ Except_Intersect_Rewrite (Query *parsetree)
* least one non negated Query node. This node is attached to the
* beginning of the list */
-void create_list(Node *ptr, List **intersect_list)
+void
+create_list(Node *ptr, List **intersect_list)
{
- List *arg;
-
- if(IsA(ptr,Query))
- {
- /* The non negated node is attached at the beginning (lcons) */
- *intersect_list = lcons(ptr, *intersect_list);
- return;
- }
-
- if(IsA(ptr,Expr))
- {
- if(((Expr *)ptr)->opType == NOT_EXPR)
+ List *arg;
+
+ if (IsA(ptr, Query))
{
- /* negated nodes are appended to the end (lappend) */
- *intersect_list = lappend(*intersect_list, ptr);
- return;
+ /* The non negated node is attached at the beginning (lcons) */
+ *intersect_list = lcons(ptr, *intersect_list);
+ return;
}
- else
+
+ if (IsA(ptr, Expr))
{
- foreach(arg, ((Expr *)ptr)->args)
- {
- create_list(lfirst(arg), intersect_list);
- }
- return;
+ if (((Expr *) ptr)->opType == NOT_EXPR)
+ {
+ /* negated nodes are appended to the end (lappend) */
+ *intersect_list = lappend(*intersect_list, ptr);
+ return;
+ }
+ else
+ {
+ foreach(arg, ((Expr *) ptr)->args)
+ create_list(lfirst(arg), intersect_list);
+ return;
+ }
+ return;
}
- return;
- }
}
/* The nodes given in 'tree' are still 'raw' so 'cook' them using parse_analyze().
* The node given in first_select has already been cooked, so don't transform
- * it again but return a pointer to the previously cooked version given in 'parsetree'
+ * it again but return a pointer to the previously cooked version given in 'parsetree'
* instead. */
-Node *intersect_tree_analyze(Node *tree, Node *first_select, Node *parsetree)
+Node *
+intersect_tree_analyze(Node *tree, Node *first_select, Node *parsetree)
{
- Node *result = (Node *) NIL;
- List *arg;
+ Node *result = (Node *) NIL;
+ List *arg;
if (IsA(tree, SelectStmt))
- {
- /* If we get to the tree given in first_select return
- * parsetree instead of performing parse_analyze() */
+ {
+
+ /*
+ * If we get to the tree given in first_select return parsetree
+ * instead of performing parse_analyze()
+ */
if (tree == first_select)
- {
result = parsetree;
- }
else
- {
- /* transform the 'raw' nodes to 'cooked' Query nodes */
- List *qtree = parse_analyze(lcons(tree, NIL), NULL);
+ {
+ /* transform the 'raw' nodes to 'cooked' Query nodes */
+ List *qtree = parse_analyze(lcons(tree, NIL), NULL);
+
result = (Node *) lfirst(qtree);
}
- }
+ }
- if(IsA(tree,Expr))
- {
- /* Call recursively for every argument of the node */
- foreach(arg, ((Expr *)tree)->args)
+ if (IsA(tree, Expr))
{
- lfirst(arg) = intersect_tree_analyze(lfirst(arg), first_select, parsetree);
+ /* Call recursively for every argument of the node */
+ foreach(arg, ((Expr *) tree)->args)
+ lfirst(arg) = intersect_tree_analyze(lfirst(arg), first_select, parsetree);
+ result = tree;
}
- result = tree;
- }
- return result;
+ return result;
}
-
-
-
-
diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c
index 057579669d1..7be8d080ec1 100644
--- a/src/backend/rewrite/rewriteManip.c
+++ b/src/backend/rewrite/rewriteManip.c
@@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.30 1999/05/12 15:01:55 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.31 1999/05/25 16:10:52 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,26 +41,27 @@ OffsetVarNodes(Node *node, int offset, int sublevels_up)
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
OffsetVarNodes(
- (Node *)(tle->expr),
- offset,
- sublevels_up);
+ (Node *) (tle->expr),
+ offset,
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
OffsetVarNodes(
- (Node *)(aggref->target),
- offset,
- sublevels_up);
+ (Node *) (aggref->target),
+ offset,
+ sublevels_up);
}
break;
@@ -69,54 +70,55 @@ OffsetVarNodes(Node *node, int offset, int sublevels_up)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
OffsetVarNodes(
- (Node *)(exp->args),
- offset,
- sublevels_up);
+ (Node *) (exp->args),
+ offset,
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
OffsetVarNodes(
- (Node *)(iter->iterexpr),
- offset,
- sublevels_up);
+ (Node *) (iter->iterexpr),
+ offset,
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
OffsetVarNodes(
- (Node *)(ref->refupperindexpr),
- offset,
- sublevels_up);
+ (Node *) (ref->refupperindexpr),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(ref->reflowerindexpr),
- offset,
- sublevels_up);
+ (Node *) (ref->reflowerindexpr),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(ref->refexpr),
- offset,
- sublevels_up);
+ (Node *) (ref->refexpr),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(ref->refassgnexpr),
- offset,
- sublevels_up);
+ (Node *) (ref->refassgnexpr),
+ offset,
+ sublevels_up);
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
- if (var->varlevelsup == sublevels_up) {
+ if (var->varlevelsup == sublevels_up)
+ {
var->varno += offset;
var->varnoold += offset;
}
@@ -131,98 +133,104 @@ OffsetVarNodes(Node *node, int offset, int sublevels_up)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
OffsetVarNodes(
- (Node *)lfirst(l),
- offset,
- sublevels_up);
+ (Node *) lfirst(l),
+ offset,
+ sublevels_up);
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
- List *tmp_oper, *tmp_lefthand;
+ SubLink *sub = (SubLink *) node;
+ List *tmp_oper,
+ *tmp_lefthand;
- /* We also have to adapt the variables used in sub->lefthand
- * and sub->oper */
+ /*
+ * We also have to adapt the variables used in
+ * sub->lefthand and sub->oper
+ */
OffsetVarNodes(
- (Node *)(sub->lefthand),
- offset,
- sublevels_up);
+ (Node *) (sub->lefthand),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(sub->subselect),
- offset,
- sublevels_up + 1);
+ (Node *) (sub->subselect),
+ offset,
+ sublevels_up + 1);
/***S*I***/
- /* Make sure the first argument of sub->oper points to the
- * same var as sub->lefthand does otherwise we will
- * run into troubles using aggregates (aggno will not be
- * set correctly) */
- tmp_lefthand = sub->lefthand;
+
+ /*
+ * Make sure the first argument of sub->oper points to the
+ * same var as sub->lefthand does otherwise we will run
+ * into troubles using aggregates (aggno will not be set
+ * correctly)
+ */
+ tmp_lefthand = sub->lefthand;
foreach(tmp_oper, sub->oper)
- {
- lfirst(((Expr *) lfirst(tmp_oper))->args) =
- lfirst(tmp_lefthand);
- tmp_lefthand = lnext(tmp_lefthand);
- }
+ {
+ lfirst(((Expr *) lfirst(tmp_oper))->args) =
+ lfirst(tmp_lefthand);
+ tmp_lefthand = lnext(tmp_lefthand);
+ }
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
OffsetVarNodes(
- (Node *)(qry->targetList),
- offset,
- sublevels_up);
+ (Node *) (qry->targetList),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(qry->qual),
- offset,
- sublevels_up);
+ (Node *) (qry->qual),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(qry->havingQual),
- offset,
- sublevels_up);
+ (Node *) (qry->havingQual),
+ offset,
+ sublevels_up);
}
break;
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
OffsetVarNodes(
- (Node *)(exp->args),
- offset,
- sublevels_up);
+ (Node *) (exp->args),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(exp->defresult),
- offset,
- sublevels_up);
+ (Node *) (exp->defresult),
+ offset,
+ sublevels_up);
}
break;
case T_CaseWhen:
{
- CaseWhen *exp = (CaseWhen *)node;
+ CaseWhen *exp = (CaseWhen *) node;
OffsetVarNodes(
- (Node *)(exp->expr),
- offset,
- sublevels_up);
+ (Node *) (exp->expr),
+ offset,
+ sublevels_up);
OffsetVarNodes(
- (Node *)(exp->result),
- offset,
- sublevels_up);
+ (Node *) (exp->result),
+ offset,
+ sublevels_up);
}
break;
@@ -245,28 +253,29 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up)
if (node == NULL)
return;
- switch(nodeTag(node)) {
+ switch (nodeTag(node))
+ {
case T_TargetEntry:
{
- TargetEntry *tle = (TargetEntry *)node;
+ TargetEntry *tle = (TargetEntry *) node;
ChangeVarNodes(
- (Node *)(tle->expr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (tle->expr),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_Aggref:
{
- Aggref *aggref = (Aggref *)node;
+ Aggref *aggref = (Aggref *) node;
ChangeVarNodes(
- (Node *)(aggref->target),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (aggref->target),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
@@ -275,61 +284,62 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up)
case T_Expr:
{
- Expr *exp = (Expr *)node;
+ Expr *exp = (Expr *) node;
ChangeVarNodes(
- (Node *)(exp->args),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (exp->args),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_Iter:
{
- Iter *iter = (Iter *)node;
+ Iter *iter = (Iter *) node;
ChangeVarNodes(
- (Node *)(iter->iterexpr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (iter->iterexpr),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *)node;
+ ArrayRef *ref = (ArrayRef *) node;
ChangeVarNodes(
- (Node *)(ref->refupperindexpr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (ref->refupperindexpr),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(ref->reflowerindexpr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (ref->reflowerindexpr),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(ref->refexpr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (ref->refexpr),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(ref->refassgnexpr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (ref->refassgnexpr),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_Var:
{
- Var *var = (Var *)node;
+ Var *var = (Var *) node;
if (var->varlevelsup == sublevels_up &&
- var->varno == rt_index) {
+ var->varno == rt_index)
+ {
var->varno = new_index;
var->varnoold = new_index;
}
@@ -344,106 +354,110 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up)
case T_List:
{
- List *l;
+ List *l;
- foreach (l, (List *)node)
+ foreach(l, (List *) node)
ChangeVarNodes(
- (Node *)lfirst(l),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) lfirst(l),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_SubLink:
{
- SubLink *sub = (SubLink *)node;
- List *tmp_oper, *tmp_lefthand;
-
+ SubLink *sub = (SubLink *) node;
+ List *tmp_oper,
+ *tmp_lefthand;
+
ChangeVarNodes(
- (Node *)(sub->lefthand),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (sub->lefthand),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(sub->subselect),
- rt_index,
- new_index,
- sublevels_up + 1);
-
+ (Node *) (sub->subselect),
+ rt_index,
+ new_index,
+ sublevels_up + 1);
+
/***S*I***/
- /* Make sure the first argument of sub->oper points to the
- * same var as sub->lefthand does otherwise we will
- * run into troubles using aggregates (aggno will not be
- * set correctly) */
+
+ /*
+ * Make sure the first argument of sub->oper points to the
+ * same var as sub->lefthand does otherwise we will run
+ * into troubles using aggregates (aggno will not be set
+ * correctly)
+ */
tmp_lefthand = sub->lefthand;
foreach(tmp_oper, sub->oper)
- {
- lfirst(((Expr *) lfirst(tmp_oper))->args) =
- lfirst(tmp_lefthand);
- tmp_lefthand = lnext(tmp_lefthand);
- }
+ {
+ lfirst(((Expr *) lfirst(tmp_oper))->args) =
+ lfirst(tmp_lefthand);
+ tmp_lefthand = lnext(tmp_lefthand);
+ }
}
break;
case T_Query:
{
- Query *qry = (Query *)node;
+ Query *qry = (Query *) node;
ChangeVarNodes(
- (Node *)(qry->targetList),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (qry->targetList),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(qry->qual),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (qry->qual),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(qry->havingQual),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (qry->havingQual),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_CaseExpr:
{
- CaseExpr *exp = (CaseExpr *)node;
+ CaseExpr *exp = (CaseExpr *) node;
ChangeVarNodes(
- (Node *)(exp->args),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (exp->args),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(exp->defresult),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (exp->defresult),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
case T_CaseWhen:
{
- CaseWhen *exp = (CaseWhen *)node;
+ CaseWhen *exp = (CaseWhen *) node;
ChangeVarNodes(
- (Node *)(exp->expr),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (exp->expr),
+ rt_index,
+ new_index,
+ sublevels_up);
ChangeVarNodes(
- (Node *)(exp->result),
- rt_index,
- new_index,
- sublevels_up);
+ (Node *) (exp->result),
+ rt_index,
+ new_index,
+ sublevels_up);
}
break;
@@ -513,7 +527,7 @@ AddNotHavingQual(Query *parsetree, Node *havingQual)
/***S*I***/
/* INTERSECT want's the original, but we need to copy - Jan */
/* copy = (Node *) make_notclause((Expr *)havingQual); */
- copy = (Node *)make_notclause( (Expr *)copyObject(havingQual));
+ copy = (Node *) make_notclause((Expr *) copyObject(havingQual));
AddHavingQual(parsetree, copy);
}
@@ -529,7 +543,7 @@ AddNotQual(Query *parsetree, Node *qual)
/***S*I***/
/* INTERSECT want's the original, but we need to copy - Jan */
/* copy = (Node *) make_notclause((Expr *)qual); */
- copy = (Node *) make_notclause((Expr *)copyObject(qual));
+ copy = (Node *) make_notclause((Expr *) copyObject(qual));
AddQual(parsetree, copy);
}
@@ -538,24 +552,24 @@ AddNotQual(Query *parsetree, Node *qual)
void
AddGroupClause(Query *parsetree, List *group_by, List *tlist)
{
- List *l;
- List *tl;
- GroupClause *groupclause;
- TargetEntry *tle;
- int new_resno;
+ List *l;
+ List *tl;
+ GroupClause *groupclause;
+ TargetEntry *tle;
+ int new_resno;
new_resno = length(parsetree->targetList);
- foreach (l, group_by)
+ foreach(l, group_by)
{
- groupclause = (GroupClause *)copyObject(lfirst(l));
+ groupclause = (GroupClause *) copyObject(lfirst(l));
tle = NULL;
foreach(tl, tlist)
{
- if (((TargetEntry *)lfirst(tl))->resdom->resgroupref ==
- groupclause->tleGroupref)
+ if (((TargetEntry *) lfirst(tl))->resdom->resgroupref ==
+ groupclause->tleGroupref)
{
- tle = (TargetEntry *)copyObject(lfirst(tl));
+ tle = (TargetEntry *) copyObject(lfirst(tl));
break;
}
}
@@ -567,7 +581,7 @@ AddGroupClause(Query *parsetree, List *group_by, List *tlist)
tle->resdom->resgroupref = length(parsetree->groupClause) + 1;
groupclause->tleGroupref = tle->resdom->resgroupref;
- parsetree->targetList = lappend(parsetree->targetList, tle);
+ parsetree->targetList = lappend(parsetree->targetList, tle);
parsetree->groupClause = lappend(parsetree->groupClause, groupclause);
}
}
@@ -604,6 +618,7 @@ FixResdomTypes(List *tlist)
}
}
}
+
#endif
static Node *
@@ -735,10 +750,10 @@ FixNew(RewriteInfo *info, Query *parsetree)
{
ResolveNew(info, parsetree->targetList,
(Node **) &(info->rule_action->targetList), 0);
- ResolveNew(info, parsetree->targetList,
- (Node **) &info->rule_action->qual, 0);
- ResolveNew(info, parsetree->targetList,
- (Node **) &(info->rule_action->groupClause), 0);
+ ResolveNew(info, parsetree->targetList,
+ (Node **) &info->rule_action->qual, 0);
+ ResolveNew(info, parsetree->targetList,
+ (Node **) &(info->rule_action->groupClause), 0);
}
static void
@@ -797,7 +812,7 @@ nodeHandleRIRAttributeRule(Node **nodePtr,
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *) node;
+ ArrayRef *ref = (ArrayRef *) node;
nodeHandleRIRAttributeRule((Node **) (&(ref->refupperindexpr)), rtable,
targetlist, rt_index, attr_num,
@@ -972,7 +987,7 @@ nodeHandleViewRule(Node **nodePtr,
break;
case T_ArrayRef:
{
- ArrayRef *ref = (ArrayRef *) node;
+ ArrayRef *ref = (ArrayRef *) node;
nodeHandleViewRule((Node **) (&(ref->refupperindexpr)),
rtable, targetlist,
@@ -1006,6 +1021,7 @@ nodeHandleViewRule(Node **nodePtr,
*nodePtr = make_null(((Var *) node)->vartype);
else
{
+
/*
* This is a hack: The varlevelsup of the orignal
* variable and the new one should be the same.
@@ -1026,7 +1042,7 @@ nodeHandleViewRule(Node **nodePtr,
((Var *) *nodePtr)->varlevelsup = this_varlevelsup;
else
nodeHandleViewRule(&n, rtable, targetlist,
- rt_index, modified, sublevels_up);
+ rt_index, modified, sublevels_up);
}
*modified = TRUE;
}
@@ -1048,17 +1064,18 @@ nodeHandleViewRule(Node **nodePtr,
{
SubLink *sublink = (SubLink *) node;
Query *query = (Query *) sublink->subselect;
- List *tmp_lefthand, *tmp_oper;
-
+ List *tmp_lefthand,
+ *tmp_oper;
+
nodeHandleViewRule((Node **) &(query->qual), rtable, targetlist,
rt_index, modified, sublevels_up + 1);
/***S*H*D***/
nodeHandleViewRule((Node **) &(query->havingQual), rtable, targetlist,
- rt_index, modified, sublevels_up + 1);
+ rt_index, modified, sublevels_up + 1);
nodeHandleViewRule((Node **) &(query->targetList), rtable, targetlist,
- rt_index, modified, sublevels_up + 1);
+ rt_index, modified, sublevels_up + 1);
/*
@@ -1076,21 +1093,19 @@ nodeHandleViewRule(Node **nodePtr,
*/
pfree(lfirst(((Expr *) lfirst(sublink->oper))->args));
lfirst(((Expr *) lfirst(sublink->oper))->args) =
- lfirst(sublink->lefthand);
+ lfirst(sublink->lefthand);
/***S*I***/
/* INTERSECT want's this - Jan */
+
/*
- tmp_lefthand = sublink->lefthand;
- foreach(tmp_oper, sublink->oper)
- {
- lfirst(((Expr *) lfirst(tmp_oper))->args) =
- lfirst(tmp_lefthand);
- tmp_lefthand = lnext(tmp_lefthand);
- }
- */
- }
+ * tmp_lefthand = sublink->lefthand; foreach(tmp_oper,
+ * sublink->oper) { lfirst(((Expr *)
+ * lfirst(tmp_oper))->args) = lfirst(tmp_lefthand);
+ * tmp_lefthand = lnext(tmp_lefthand); }
+ */
+ }
break;
default:
/* ignore the others */
@@ -1119,5 +1134,5 @@ HandleViewRule(Query *parsetree,
nodeHandleViewRule((Node **) (&(parsetree->groupClause)), rtable, targetlist, rt_index,
modified, 0);
}
-#endif
+#endif
diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c
index ceb43cba6ae..10cce0262bd 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.23 1999/05/10 00:45:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.24 1999/05/25 16:10:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,7 +42,7 @@ RewriteGetRuleEventRel(char *rulename)
0, 0, 0);
if (!HeapTupleIsValid(htup))
elog(ERROR, "Rule or view '%s' not found",
- ((!strncmp(rulename, "_RET", 4))? (rulename+4): rulename));
+ ((!strncmp(rulename, "_RET", 4)) ? (rulename + 4) : rulename));
eventrel = ((Form_pg_rewrite) GETSTRUCT(htup))->ev_class;
htup = SearchSysCacheTuple(RELOID,
PointerGetDatum(eventrel),
diff --git a/src/backend/storage/buffer/buf_init.c b/src/backend/storage/buffer/buf_init.c
index 13a55f32768..2ee839d8deb 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.22 1999/02/22 06:16:50 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.23 1999/05/25 16:10:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -61,6 +61,7 @@ BufferBlock BufferBlocks;
#ifndef HAS_TEST_AND_SET
long *NWaitIOBackendP;
+
#endif
extern IpcSemaphoreId WaitIOSemId;
@@ -238,14 +239,14 @@ InitBufferPool(IPCKey key)
WaitIOSemId = IpcSemaphoreCreate(IPCKeyGetWaitIOSemaphoreKey(key),
1, IPCProtection, 0, 1, &status);
WaitCLSemId = IpcSemaphoreCreate(IPCKeyGetWaitCLSemaphoreKey(key),
- 1, IPCProtection,
- IpcSemaphoreDefaultStartValue,
+ 1, IPCProtection,
+ IpcSemaphoreDefaultStartValue,
1, &status);
}
#endif
PrivateRefCount = (long *) calloc(NBuffers, sizeof(long));
LastRefCount = (long *) calloc(NBuffers, sizeof(long));
- BufferLocks = (bits8*) calloc (NBuffers, sizeof(bits8));
+ BufferLocks = (bits8 *) calloc(NBuffers, sizeof(bits8));
CommitInfoNeedsSave = (long *) calloc(NBuffers, sizeof(long));
}
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index c1040cfc16f..052abe8edef 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.51 1999/05/10 00:45:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.52 1999/05/25 16:10:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -86,6 +86,7 @@ static void WaitIO(BufferDesc *buf, SPINLOCK spinlock);
#ifndef HAS_TEST_AND_SET
static void SignalIO(BufferDesc *buf);
extern long *NWaitIOBackendP; /* defined in buf_init.c */
+
#endif /* HAS_TEST_AND_SET */
static Buffer ReadBufferWithBufferLock(Relation relation, BlockNumber blockNum,
@@ -95,7 +96,7 @@ static BufferDesc *BufferAlloc(Relation reln, BlockNumber blockNum,
static int FlushBuffer(Buffer buffer, bool release);
static void BufferSync(void);
static int BufferReplace(BufferDesc *bufHdr, bool bufferLockHeld);
-void PrintBufferDescs(void);
+void PrintBufferDescs(void);
/* not static but used by vacuum only ... */
int BlowawayRelationBuffers(Relation rel, BlockNumber block);
@@ -161,7 +162,7 @@ extern int ShowPinTrace;
* defined */
/*
- * ReadBuffer
+ * ReadBuffer
*
*/
Buffer
@@ -1116,7 +1117,7 @@ WaitIO(BufferDesc *buf, SPINLOCK spinlock)
}
/*
- * SignalIO
+ * SignalIO
*/
static void
SignalIO(BufferDesc *buf)
@@ -1217,7 +1218,7 @@ BufferPoolCheckLeak()
BufferDesc *buf = &(BufferDescriptors[i - 1]);
elog(NOTICE,
- "Buffer Leak: [%03d] (freeNext=%d, freePrev=%d, \
+ "Buffer Leak: [%03d] (freeNext=%d, freePrev=%d, \
relname=%s, blockNum=%d, flags=0x%x, refcount=%d %d)",
i - 1, buf->freeNext, buf->freePrev,
buf->sb_relname, buf->tag.blockNum, buf->flags,
@@ -1246,7 +1247,7 @@ FlushBufferPool(int StableMainMemoryFlag)
}
/*
- * BufferGetBlockNumber
+ * BufferGetBlockNumber
* Returns the block number associated with a buffer.
*
* Note:
@@ -1266,7 +1267,7 @@ BufferGetBlockNumber(Buffer buffer)
#ifdef NOT_USED
/*
- * BufferGetRelation
+ * BufferGetRelation
* Returns the relation desciptor associated with a buffer.
*
* Note:
@@ -1299,6 +1300,7 @@ BufferGetRelation(Buffer buffer)
return relation;
}
+
#endif
/*
@@ -1363,7 +1365,7 @@ BufferReplace(BufferDesc *bufHdr, bool bufferLockHeld)
}
/*
- * RelationGetNumberOfBlocks
+ * RelationGetNumberOfBlocks
* Returns the buffer descriptor associated with a page in a relation.
*
* Note:
@@ -1375,7 +1377,7 @@ BlockNumber
RelationGetNumberOfBlocks(Relation relation)
{
return ((relation->rd_myxactonly) ? relation->rd_nblocks :
- smgrnblocks(DEFAULT_SMGR, relation));
+ smgrnblocks(DEFAULT_SMGR, relation));
}
/* ---------------------------------------------------------------------
@@ -1941,8 +1943,8 @@ UnlockBuffers()
{
if (BufferLocks[i] == 0)
continue;
-
- Assert(BufferIsValid(i+1));
+
+ Assert(BufferIsValid(i + 1));
buf = &(BufferDescriptors[i]);
#ifdef HAS_TEST_AND_SET
@@ -1976,7 +1978,7 @@ UnlockBuffers()
}
void
-LockBuffer (Buffer buffer, int mode)
+LockBuffer(Buffer buffer, int mode)
{
BufferDesc *buf;
@@ -1984,31 +1986,31 @@ LockBuffer (Buffer buffer, int mode)
if (BufferIsLocal(buffer))
return;
- buf = &(BufferDescriptors[buffer-1]);
+ buf = &(BufferDescriptors[buffer - 1]);
#ifdef HAS_TEST_AND_SET
- S_LOCK(&(buf->cntx_lock));
+ S_LOCK(&(buf->cntx_lock));
#else
- IpcSemaphoreLock(WaitCLSemId, 0, IpcExclusiveLock);
+ IpcSemaphoreLock(WaitCLSemId, 0, IpcExclusiveLock);
#endif
if (mode == BUFFER_LOCK_UNLOCK)
{
- if (BufferLocks[buffer-1] & BL_R_LOCK)
+ if (BufferLocks[buffer - 1] & BL_R_LOCK)
{
Assert(buf->r_locks > 0);
Assert(!(buf->w_lock));
- Assert(!(BufferLocks[buffer-1] & (BL_W_LOCK | BL_RI_LOCK)))
- (buf->r_locks)--;
- BufferLocks[buffer-1] &= ~BL_R_LOCK;
+ Assert(!(BufferLocks[buffer - 1] & (BL_W_LOCK | BL_RI_LOCK)))
+ (buf->r_locks)--;
+ BufferLocks[buffer - 1] &= ~BL_R_LOCK;
}
- else if (BufferLocks[buffer-1] & BL_W_LOCK)
+ else if (BufferLocks[buffer - 1] & BL_W_LOCK)
{
Assert(buf->w_lock);
Assert(buf->r_locks == 0 && !buf->ri_lock);
- Assert(!(BufferLocks[buffer-1] & (BL_R_LOCK | BL_RI_LOCK)))
- buf->w_lock = false;
- BufferLocks[buffer-1] &= ~BL_W_LOCK;
+ Assert(!(BufferLocks[buffer - 1] & (BL_R_LOCK | BL_RI_LOCK)))
+ buf->w_lock = false;
+ BufferLocks[buffer - 1] &= ~BL_W_LOCK;
}
else
elog(ERROR, "UNLockBuffer: buffer %u is not locked", buffer);
@@ -2017,7 +2019,7 @@ LockBuffer (Buffer buffer, int mode)
{
unsigned i = 0;
- Assert(!(BufferLocks[buffer-1] & (BL_R_LOCK | BL_W_LOCK | BL_RI_LOCK)));
+ Assert(!(BufferLocks[buffer - 1] & (BL_R_LOCK | BL_W_LOCK | BL_RI_LOCK)));
while (buf->ri_lock || buf->w_lock)
{
#ifdef HAS_TEST_AND_SET
@@ -2027,23 +2029,23 @@ LockBuffer (Buffer buffer, int mode)
#else
IpcSemaphoreUnlock(WaitCLSemId, 0, IpcExclusiveLock);
s_lock_sleep(i++)
- IpcSemaphoreLock(WaitCLSemId, 0, IpcExclusiveLock);
+ IpcSemaphoreLock(WaitCLSemId, 0, IpcExclusiveLock);
#endif
}
(buf->r_locks)++;
- BufferLocks[buffer-1] |= BL_R_LOCK;
+ BufferLocks[buffer - 1] |= BL_R_LOCK;
}
else if (mode == BUFFER_LOCK_EXCLUSIVE)
{
unsigned i = 0;
-
- Assert(!(BufferLocks[buffer-1] & (BL_R_LOCK | BL_W_LOCK | BL_RI_LOCK)));
+
+ Assert(!(BufferLocks[buffer - 1] & (BL_R_LOCK | BL_W_LOCK | BL_RI_LOCK)));
while (buf->r_locks > 0 || buf->w_lock)
{
if (buf->r_locks > 3)
{
- if (!(BufferLocks[buffer-1] & BL_RI_LOCK))
- BufferLocks[buffer-1] |= BL_RI_LOCK;
+ if (!(BufferLocks[buffer - 1] & BL_RI_LOCK))
+ BufferLocks[buffer - 1] |= BL_RI_LOCK;
buf->ri_lock = true;
}
#ifdef HAS_TEST_AND_SET
@@ -2053,24 +2055,24 @@ LockBuffer (Buffer buffer, int mode)
#else
IpcSemaphoreUnlock(WaitCLSemId, 0, IpcExclusiveLock);
s_lock_sleep(i++)
- IpcSemaphoreLock(WaitCLSemId, 0, IpcExclusiveLock);
+ IpcSemaphoreLock(WaitCLSemId, 0, IpcExclusiveLock);
#endif
}
buf->w_lock = true;
- BufferLocks[buffer-1] |= BL_W_LOCK;
- if (BufferLocks[buffer-1] & BL_RI_LOCK)
+ BufferLocks[buffer - 1] |= BL_W_LOCK;
+ if (BufferLocks[buffer - 1] & BL_RI_LOCK)
{
buf->ri_lock = false;
- BufferLocks[buffer-1] &= ~BL_RI_LOCK;
+ BufferLocks[buffer - 1] &= ~BL_RI_LOCK;
}
}
else
elog(ERROR, "LockBuffer: unknown lock mode %d", mode);
#ifdef HAS_TEST_AND_SET
- S_UNLOCK(&(buf->cntx_lock));
+ S_UNLOCK(&(buf->cntx_lock));
#else
- IpcSemaphoreUnlock(WaitCLSemId, 0, IpcExclusiveLock);
+ IpcSemaphoreUnlock(WaitCLSemId, 0, IpcExclusiveLock);
#endif
}
diff --git a/src/backend/storage/buffer/freelist.c b/src/backend/storage/buffer/freelist.c
index ba2026ae37c..2b007b85e08 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.14 1999/02/13 23:17:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/freelist.c,v 1.15 1999/05/25 16:10:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -55,7 +55,7 @@ extern SPINLOCK BufMgrLock;
/*
- * AddBufferToFreelist
+ * AddBufferToFreelist
*
* In theory, this is the only routine that needs to be changed
* if the buffer replacement strategy changes. Just change
diff --git a/src/backend/storage/buffer/s_lock.c b/src/backend/storage/buffer/s_lock.c
index 788d67dae55..4dd30080125 100644
--- a/src/backend/storage/buffer/s_lock.c
+++ b/src/backend/storage/buffer/s_lock.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.18 1999/03/14 16:03:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.19 1999/05/25 16:11:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -100,7 +100,8 @@ s_lock(volatile slock_t *lock, const char *file, const int line)
#if defined(__m68k__)
static void
-tas_dummy() /* really means: extern int tas(slock_t **lock); */
+ tas_dummy() /* really means: extern int tas(slock_t
+ * **lock); */
{
__asm__(" \n\
.global _tas \n\
@@ -163,7 +164,8 @@ fail: \n\
j $31 \n\
");
}
-#endif /* __mips */
+
+#endif /* __mips */
#else /* defined(__GNUC__) */
/***************************************************************************
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index 0cb04607562..eade2f1c642 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.39 1999/05/09 00:52:07 tgl Exp $
+ * $Id: fd.c,v 1.40 1999/05/25 16:11:03 momjian Exp $
*
* NOTES:
*
@@ -103,11 +103,11 @@ typedef struct vfd
unsigned short fdstate; /* bitflags for VFD's state */
/* these are the assigned bits in fdstate: */
-#define FD_DIRTY (1 << 0) /* written to, but not yet fsync'd */
-#define FD_TEMPORARY (1 << 1) /* should be unlinked when closed */
+#define FD_DIRTY (1 << 0)/* written to, but not yet fsync'd */
+#define FD_TEMPORARY (1 << 1)/* should be unlinked when closed */
File nextFree; /* link to next free VFD, if in freelist */
- File lruMoreRecently; /* doubly linked recency-of-use list */
+ File lruMoreRecently;/* doubly linked recency-of-use list */
File lruLessRecently;
long seekPos; /* current logical file position */
char *fileName; /* name of file, or NULL for unused VFD */
@@ -118,7 +118,7 @@ typedef struct vfd
/*
* Virtual File Descriptor array pointer and size. This grows as
- * needed. 'File' values are indexes into this array.
+ * needed. 'File' values are indexes into this array.
* Note that VfdCache[0] is not a usable VFD, just a list header.
*/
static Vfd *VfdCache;
@@ -139,7 +139,7 @@ static int nfile = 0;
#define MAX_ALLOCATED_FILES 32
static int numAllocatedFiles = 0;
-static FILE * allocatedFiles[MAX_ALLOCATED_FILES];
+static FILE *allocatedFiles[MAX_ALLOCATED_FILES];
/*
* Number of temporary files opened during the current transaction;
@@ -348,7 +348,7 @@ LruInsert(File file)
if (FileIsNotOpen(file))
{
- while (nfile+numAllocatedFiles >= pg_nofile())
+ while (nfile + numAllocatedFiles >= pg_nofile())
ReleaseLruFile();
/*
@@ -434,12 +434,13 @@ AllocateVfd()
if (VfdCache[0].nextFree == 0)
{
+
/*
* The free list is empty so it is time to increase the size of
* the array. We choose to double it each time this happens.
* However, there's not much point in starting *real* small.
*/
- Size newCacheSize = SizeVfdCache * 2;
+ Size newCacheSize = SizeVfdCache * 2;
if (newCacheSize < 32)
newCacheSize = 32;
@@ -532,8 +533,9 @@ FileAccess(File file)
file, VfdCache[file].fileName));
/*
- * Is the file open? If not, open it and put it at the head of the LRU
- * ring (possibly closing the least recently used file to get an FD).
+ * Is the file open? If not, open it and put it at the head of the
+ * LRU ring (possibly closing the least recently used file to get an
+ * FD).
*/
if (FileIsNotOpen(file))
@@ -589,7 +591,7 @@ fileNameOpenFile(FileName fileName,
file = AllocateVfd();
vfdP = &VfdCache[file];
- while (nfile+numAllocatedFiles >= pg_nofile())
+ while (nfile + numAllocatedFiles >= pg_nofile())
ReleaseLruFile();
tryAgain:
@@ -659,10 +661,13 @@ PathNameOpenFile(FileName fileName, int fileFlags, int fileMode)
File
OpenTemporaryFile(void)
{
- char tempfilename[64];
- File file;
+ char tempfilename[64];
+ File file;
- /* Generate a tempfile name that's unique within the current transaction */
+ /*
+ * Generate a tempfile name that's unique within the current
+ * transaction
+ */
snprintf(tempfilename, sizeof(tempfilename),
"pg_temp%d.%ld", (int) getpid(), tempFileCounter++);
@@ -723,9 +728,7 @@ FileClose(File file)
* Delete the file if it was temporary
*/
if (VfdCache[file].fdstate & FD_TEMPORARY)
- {
unlink(VfdCache[file].fileName);
- }
/*
* Return the Vfd slot to the free list
@@ -817,9 +820,7 @@ FileSeek(File file, long offset, int whence)
}
}
else
- {
VfdCache[file].seekPos = lseek(VfdCache[file].fd, offset, whence);
- }
return VfdCache[file].seekPos;
}
@@ -893,7 +894,7 @@ FileNameUnlink(char *filename)
/*
* Routines that want to use stdio (ie, FILE*) should use AllocateFile
* rather than plain fopen(). This lets fd.c deal with freeing FDs if
- * necessary to open the file. When done, call FreeFile rather than fclose.
+ * necessary to open the file. When done, call FreeFile rather than fclose.
*
* Note that files that will be open for any significant length of time
* should NOT be handled this way, since they cannot share kernel file
@@ -929,21 +930,19 @@ TryAgain:
}
}
else
- {
allocatedFiles[numAllocatedFiles++] = file;
- }
return file;
}
void
FreeFile(FILE *file)
{
- int i;
+ int i;
DO_DB(elog(DEBUG, "FreeFile: Allocated %d.", numAllocatedFiles));
/* Remove file from list of allocated files, if it's present */
- for (i = numAllocatedFiles; --i >= 0; )
+ for (i = numAllocatedFiles; --i >= 0;)
{
if (allocatedFiles[i] == file)
{
@@ -971,7 +970,7 @@ closeAllVfds()
if (SizeVfdCache > 0)
{
- Assert(FileIsNotOpen(0)); /* Make sure ring not corrupted */
+ Assert(FileIsNotOpen(0)); /* Make sure ring not corrupted */
for (i = 1; i < SizeVfdCache; i++)
{
if (!FileIsNotOpen(i))
@@ -995,7 +994,7 @@ AtEOXact_Files(void)
if (SizeVfdCache > 0)
{
- Assert(FileIsNotOpen(0)); /* Make sure ring not corrupted */
+ Assert(FileIsNotOpen(0)); /* Make sure ring not corrupted */
for (i = 1; i < SizeVfdCache; i++)
{
if ((VfdCache[i].fdstate & FD_TEMPORARY) &&
@@ -1005,12 +1004,11 @@ AtEOXact_Files(void)
}
while (numAllocatedFiles > 0)
- {
FreeFile(allocatedFiles[0]);
- }
- /* Reset the tempfile name counter to 0; not really necessary,
- * but helps keep the names from growing unreasonably long.
+ /*
+ * Reset the tempfile name counter to 0; not really necessary, but
+ * helps keep the names from growing unreasonably long.
*/
tempFileCounter = 0;
}
@@ -1018,7 +1016,7 @@ AtEOXact_Files(void)
/*
* Operations on BufFiles --- a very incomplete emulation of stdio
- * atop virtual Files. Currently, we only support the buffered-I/O
+ * atop virtual Files. Currently, we only support the buffered-I/O
* aspect of stdio: a read or write of the low-level File occurs only
* when the buffer is filled or emptied. This is an even bigger win
* for virtual Files than ordinary kernel files, since reducing the
@@ -1032,12 +1030,13 @@ AtEOXact_Files(void)
* by elog(ERROR).
*/
-struct BufFile {
- File file; /* the underlying virtual File */
- bool dirty; /* does buffer need to be written? */
- int pos; /* next read/write position in buffer */
- int nbytes; /* total # of valid bytes in buffer */
- char buffer[BLCKSZ];
+struct BufFile
+{
+ File file; /* the underlying virtual File */
+ bool dirty; /* does buffer need to be written? */
+ int pos; /* next read/write position in buffer */
+ int nbytes; /* total # of valid bytes in buffer */
+ char buffer[BLCKSZ];
};
@@ -1046,10 +1045,10 @@ struct BufFile {
*
* This is comparable to fdopen() in stdio.
*/
-BufFile *
+BufFile *
BufFileCreate(File file)
{
- BufFile *bfile = (BufFile *) palloc(sizeof(BufFile));
+ BufFile *bfile = (BufFile *) palloc(sizeof(BufFile));
bfile->file = file;
bfile->dirty = false;
@@ -1065,7 +1064,7 @@ BufFileCreate(File file)
* Like fclose(), this also implicitly FileCloses the underlying File.
*/
void
-BufFileClose(BufFile *file)
+BufFileClose(BufFile * file)
{
/* flush any unwritten data */
BufFileFlush(file);
@@ -1080,10 +1079,10 @@ BufFileClose(BufFile *file)
* Like fread() except we assume 1-byte element size.
*/
size_t
-BufFileRead(BufFile *file, void *ptr, size_t size)
+BufFileRead(BufFile * file, void *ptr, size_t size)
{
- size_t nread = 0;
- size_t nthistime;
+ size_t nread = 0;
+ size_t nthistime;
if (file->dirty)
{
@@ -1126,10 +1125,10 @@ BufFileRead(BufFile *file, void *ptr, size_t size)
* Like fwrite() except we assume 1-byte element size.
*/
size_t
-BufFileWrite(BufFile *file, void *ptr, size_t size)
+BufFileWrite(BufFile * file, void *ptr, size_t size)
{
- size_t nwritten = 0;
- size_t nthistime;
+ size_t nwritten = 0;
+ size_t nthistime;
while (size > 0)
{
@@ -1170,7 +1169,7 @@ BufFileWrite(BufFile *file, void *ptr, size_t size)
* Like fflush()
*/
int
-BufFileFlush(BufFile *file)
+BufFileFlush(BufFile * file)
{
if (file->dirty)
{
@@ -1188,7 +1187,7 @@ BufFileFlush(BufFile *file)
* the new file offset (or -1 in case of error).
*/
long
-BufFileSeek(BufFile *file, long offset, int whence)
+BufFileSeek(BufFile * file, long offset, int whence)
{
if (BufFileFlush(file) < 0)
return -1L;
diff --git a/src/backend/storage/ipc/ipc.c b/src/backend/storage/ipc/ipc.c
index 62a38e14aae..b9ec1d171f5 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.36 1999/02/21 01:41:44 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.37 1999/05/25 16:11:07 momjian Exp $
*
* NOTES
*
@@ -680,7 +680,7 @@ struct ipcdummy
SLock slocks[MAX_SPINS + 1];
};
-#define SLOCKMEMORYSIZE sizeof(struct ipcdummy)
+#define SLOCKMEMORYSIZE sizeof(struct ipcdummy)
void
CreateAndInitSLockMemory(IPCKey key)
@@ -747,4 +747,5 @@ IpcConfigTip(void)
fprintf(stderr, "shared memory or System V IPC semaphore configuration.\n");
fprintf(stderr, "See the FAQ for more detailed information\n");
}
+
#endif
diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c
index e7d6e702bf2..6fedbcf85af 100644
--- a/src/backend/storage/ipc/ipci.c
+++ b/src/backend/storage/ipc/ipci.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipci.c,v 1.23 1999/03/06 21:17:41 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipci.c,v 1.24 1999/05/25 16:11:09 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -25,7 +25,7 @@
#include "miscadmin.h" /* for DebugLvl */
/*
- * SystemPortAddressCreateMemoryKey
+ * SystemPortAddressCreateMemoryKey
* Returns a memory key given a port address.
*/
IPCKey
@@ -37,7 +37,7 @@ SystemPortAddressCreateIPCKey(SystemPortAddress address)
}
/*
- * CreateSharedMemoryAndSemaphores
+ * CreateSharedMemoryAndSemaphores
* Creates and initializes shared memory and semaphores.
*/
/**************************************************
@@ -75,8 +75,8 @@ CreateSharedMemoryAndSemaphores(IPCKey key, int maxBackends)
/*
* Size of the primary shared-memory block is estimated via
- * moderately-accurate estimates for the big hogs, plus 100K for
- * the stuff that's too small to bother with estimating.
+ * moderately-accurate estimates for the big hogs, plus 100K for the
+ * stuff that's too small to bother with estimating.
*/
size = BufferShmemSize() + LockShmemSize(maxBackends);
#ifdef STABLE_MEMORY_STORAGE
@@ -113,7 +113,7 @@ CreateSharedMemoryAndSemaphores(IPCKey key, int maxBackends)
/*
- * AttachSharedMemoryAndSemaphores
+ * AttachSharedMemoryAndSemaphores
* Attachs existant shared memory and semaphores.
*/
void
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
index 421cd399c64..eafe53b0bb1 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.39 1999/04/02 04:51:03 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.40 1999/05/25 16:11:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -106,7 +106,7 @@ ShmemIndexReset(void)
}
/*
- * CreateSharedRegion()
+ * CreateSharedRegion()
*
* This routine is called once by the postmaster to
* initialize the shared buffer pool. Assume there is
@@ -348,10 +348,10 @@ ShmemInitHash(char *name, /* table string name for shmem index */
long *location;
/*
- * Hash tables allocated in shared memory have a fixed directory;
- * it can't grow or other backends wouldn't be able to find it.
- * The segbase is for calculating pointer values.
- * The shared memory allocator must be specified too.
+ * Hash tables allocated in shared memory have a fixed directory; it
+ * can't grow or other backends wouldn't be able to find it. The
+ * segbase is for calculating pointer values. The shared memory
+ * allocator must be specified too.
*/
infoP->dsize = infoP->max_dsize = DEF_DIRSIZE;
infoP->segbase = (long *) ShmemBase;
@@ -360,7 +360,7 @@ ShmemInitHash(char *name, /* table string name for shmem index */
/* look it up in the shmem index */
location = ShmemInitStruct(name,
- sizeof(HHDR) + DEF_DIRSIZE * sizeof(SEG_OFFSET),
+ sizeof(HHDR) + DEF_DIRSIZE * sizeof(SEG_OFFSET),
&found);
/*
@@ -379,7 +379,7 @@ ShmemInitHash(char *name, /* table string name for shmem index */
/* Now provide the header and directory pointers */
infoP->hctl = (long *) location;
- infoP->dir = (long *) (((char*) location) + sizeof(HHDR));
+ infoP->dir = (long *) (((char *) location) + sizeof(HHDR));
return hash_create(init_size, infoP, hash_flags);
}
@@ -636,13 +636,13 @@ TransactionIdIsInProgress(TransactionId xid)
Snapshot
GetSnapshotData(bool serializable)
{
- Snapshot snapshot = (Snapshot) malloc(sizeof(SnapshotData));
- ShmemIndexEnt *result;
- PROC *proc;
- TransactionId cid = GetCurrentTransactionId();
- TransactionId xid;
- uint32 count = 0;
- uint32 have = 32;
+ Snapshot snapshot = (Snapshot) malloc(sizeof(SnapshotData));
+ ShmemIndexEnt *result;
+ PROC *proc;
+ TransactionId cid = GetCurrentTransactionId();
+ TransactionId xid;
+ uint32 count = 0;
+ uint32 have = 32;
Assert(ShmemIndex);
@@ -670,7 +670,7 @@ GetSnapshotData(bool serializable)
strncmp(result->key, "PID ", 4) != 0)
continue;
proc = (PROC *) MAKE_PTR(result->location);
- xid = proc->xid; /* we don't use spin-locking in xact.c ! */
+ xid = proc->xid; /* we don't use spin-locking in xact.c ! */
if (proc == MyProc || xid < FirstTransactionId)
continue;
if (xid < snapshot->xmin)
@@ -697,18 +697,18 @@ GetSnapshotData(bool serializable)
/*
* GetXmaxRecent -- returns oldest transaction that was running
- * when all current transaction was started.
- * It's used by vacuum to decide what deleted
- * tuples must be preserved in a table.
+ * when all current transaction was started.
+ * It's used by vacuum to decide what deleted
+ * tuples must be preserved in a table.
*
* And yet another strange func for this place... - vadim 03/18/99
*/
void
GetXmaxRecent(TransactionId *XmaxRecent)
{
- ShmemIndexEnt *result;
- PROC *proc;
- TransactionId xmin;
+ ShmemIndexEnt *result;
+ PROC *proc;
+ TransactionId xmin;
Assert(ShmemIndex);
@@ -728,7 +728,7 @@ GetXmaxRecent(TransactionId *XmaxRecent)
strncmp(result->key, "PID ", 4) != 0)
continue;
proc = (PROC *) MAKE_PTR(result->location);
- xmin = proc->xmin; /* we don't use spin-locking in xact.c ! */
+ xmin = proc->xmin; /* we don't use spin-locking in xact.c ! */
if (proc == MyProc || xmin < FirstTransactionId)
continue;
if (xmin < *XmaxRecent)
diff --git a/src/backend/storage/ipc/sinval.c b/src/backend/storage/ipc/sinval.c
index ec271bd963b..3617fa345d7 100644
--- a/src/backend/storage/ipc/sinval.c
+++ b/src/backend/storage/ipc/sinval.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.13 1999/02/13 23:18:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.14 1999/05/25 16:11:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -87,7 +87,7 @@ InitSharedInvalidationState(void)
}
/*
- * RegisterSharedInvalid
+ * RegisterSharedInvalid
* Returns a new local cache invalidation state containing a new entry.
*
* Note:
@@ -147,7 +147,7 @@ RegisterSharedInvalid(int cacheId, /* XXX */
}
/*
- * InvalidateSharedInvalid
+ * InvalidateSharedInvalid
* Processes all entries in a shared cache invalidation state.
*/
/****************************************************************************/
diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c
index 4e5ab146bb5..27393c63ef6 100644
--- a/src/backend/storage/ipc/sinvaladt.c
+++ b/src/backend/storage/ipc/sinvaladt.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.18 1999/05/10 00:45:37 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.19 1999/05/25 16:11:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -144,9 +144,7 @@ SIAssignBackendId(SISeg *segInOutP, BackendTag backendTag)
for (index++; index < MAXBACKENDS; index++)
{
if (segInOutP->procState[index].tag == backendTag)
- {
elog(FATAL, "SIAssignBackendId: tag %d found twice", backendTag);
- }
}
Assert(stateP);
@@ -187,7 +185,7 @@ SISetDeadProcess(SISeg *segP, int backendId)
}
/*
- * CleanupInvalidationState
+ * CleanupInvalidationState
* Note:
* This is a temporary hack. ExitBackend should call this instead
* of exit (via on_shmem_exit).
diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c
index 79df2912b9b..57d03568c7d 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.52 1999/05/10 00:45:41 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.53 1999/05/25 16:11:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -131,7 +131,7 @@ inv_create(int flags)
if (RelnameFindRelid(indname) != InvalidOid)
{
elog(ERROR,
- "internal error: %s already exists -- cannot create large obj",
+ "internal error: %s already exists -- cannot create large obj",
indname);
}
@@ -437,13 +437,13 @@ inv_tell(LargeObjectDesc *obj_desc)
int
inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes)
{
- HeapTupleData tuple;
- int nread;
- int off;
- int ncopy;
- Datum d;
+ HeapTupleData tuple;
+ int nread;
+ int off;
+ int ncopy;
+ Datum d;
struct varlena *fsblock;
- bool isNull;
+ bool isNull;
Assert(PointerIsValid(obj_desc));
Assert(buf != NULL);
@@ -499,9 +499,9 @@ inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes)
int
inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes)
{
- HeapTupleData tuple;
- int nwritten;
- int tuplen;
+ HeapTupleData tuple;
+ int nwritten;
+ int tuplen;
Assert(PointerIsValid(obj_desc));
Assert(buf != NULL);
@@ -549,10 +549,12 @@ inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes)
}
else
tuplen = inv_wrold(obj_desc, buf, nbytes - nwritten, &tuple, buffer);
- /* inv_wrold() has already issued WriteBuffer()
- which has decremented local reference counter
- (LocalRefCount). So we should not call
- ReleaseBuffer() here. -- Tatsuo 99/2/4 */
+
+ /*
+ * inv_wrold() has already issued WriteBuffer() which has
+ * decremented local reference counter (LocalRefCount). So we
+ * should not call ReleaseBuffer() here. -- Tatsuo 99/2/4
+ */
}
/* move pointers past the amount we just wrote */
@@ -626,25 +628,26 @@ inv_fetchtup(LargeObjectDesc *obj_desc, HeapTuple tuple, Buffer *buffer)
|| obj_desc->offset < obj_desc->lowbyte
|| !ItemPointerIsValid(&(obj_desc->htid)))
{
- ScanKeyData skey;
+ ScanKeyData skey;
ScanKeyEntryInitialize(&skey, 0x0, 1, F_INT4GE,
- Int32GetDatum(obj_desc->offset));
+ Int32GetDatum(obj_desc->offset));
/* initialize scan key if not done */
if (obj_desc->iscan == (IndexScanDesc) NULL)
{
+
/*
* As scan index may be prematurely closed (on commit), we
* must use object current offset (was 0) to reinitialize the
* entry [ PA ].
*/
obj_desc->iscan = index_beginscan(obj_desc->index_r,
- (bool) 0, (uint16) 1,
- &skey);
- } else {
- index_rescan(obj_desc->iscan, false, &skey);
- }
+ (bool) 0, (uint16) 1,
+ &skey);
+ }
+ else
+ index_rescan(obj_desc->iscan, false, &skey);
do
{
res = index_getnext(obj_desc->iscan, ForwardScanDirection);
@@ -671,15 +674,14 @@ inv_fetchtup(LargeObjectDesc *obj_desc, HeapTuple tuple, Buffer *buffer)
} while (tuple->t_data == NULL);
/* remember this tid -- we may need it for later reads/writes */
- ItemPointerCopy(&(tuple->t_self), &obj_desc->htid);
+ ItemPointerCopy(&(tuple->t_self), &obj_desc->htid);
}
else
{
tuple->t_self = obj_desc->htid;
heap_fetch(obj_desc->heap_r, SnapshotNow, tuple, buffer);
- if (tuple->t_data == NULL) {
+ if (tuple->t_data == NULL)
elog(ERROR, "inv_fetchtup: heap_fetch failed");
- }
}
/*
@@ -751,11 +753,13 @@ inv_wrnew(LargeObjectDesc *obj_desc, char *buf, int nbytes)
nblocks = RelationGetNumberOfBlocks(hr);
- if (nblocks > 0) {
+ if (nblocks > 0)
+ {
buffer = ReadBuffer(hr, nblocks - 1);
page = BufferGetPage(buffer);
}
- else {
+ else
+ {
buffer = ReadBuffer(hr, P_NEW);
page = BufferGetPage(buffer);
PageInit(page, BufferGetPageSize(buffer), 0);
@@ -794,7 +798,7 @@ inv_wrnew(LargeObjectDesc *obj_desc, char *buf, int nbytes)
ntup = inv_newtuple(obj_desc, buffer, page, buf, nwritten);
inv_indextup(obj_desc, ntup);
- pfree (ntup);
+ pfree(ntup);
/* new tuple is inserted */
WriteBuffer(buffer);
@@ -874,11 +878,13 @@ inv_wrold(LargeObjectDesc *obj_desc,
nblocks = RelationGetNumberOfBlocks(hr);
- if (nblocks > 0) {
+ if (nblocks > 0)
+ {
newbuf = ReadBuffer(hr, nblocks - 1);
newpage = BufferGetPage(newbuf);
}
- else {
+ else
+ {
newbuf = ReadBuffer(hr, P_NEW);
newpage = BufferGetPage(newbuf);
PageInit(newpage, BufferGetPageSize(newbuf), 0);
@@ -966,7 +972,7 @@ inv_wrold(LargeObjectDesc *obj_desc,
/* index the new tuple */
inv_indextup(obj_desc, ntup);
- pfree (ntup);
+ pfree(ntup);
/*
* move the scandesc forward so we don't reread the newly inserted
@@ -1002,7 +1008,7 @@ inv_newtuple(LargeObjectDesc *obj_desc,
char *dbuf,
int nwrite)
{
- HeapTuple ntup = (HeapTuple) palloc (sizeof(HeapTupleData));
+ HeapTuple ntup = (HeapTuple) palloc(sizeof(HeapTupleData));
PageHeader ph;
int tupsize;
int hoff;
@@ -1227,7 +1233,7 @@ _inv_getsize(Relation hreln, TupleDesc hdesc, Relation ireln)
{
IndexScanDesc iscan;
RetrieveIndexResult res;
- HeapTupleData tuple;
+ HeapTupleData tuple;
Datum d;
long size;
bool isNull;
diff --git a/src/backend/storage/lmgr/lmgr.c b/src/backend/storage/lmgr/lmgr.c
index 7eb51207c7e..3cebcb9ba0a 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.23 1999/05/07 01:23:02 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.24 1999/05/25 16:11:20 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -76,7 +76,7 @@ static MASK LockConflicts[] = {
/* AccessExclusiveLock */
(1 << ExclusiveLock) | (1 << ShareRowExclusiveLock) | (1 << ShareLock) |
- (1 << RowExclusiveLock) | (1 << RowShareLock) | (1 << AccessExclusiveLock) |
+ (1 << RowExclusiveLock) | (1 << RowShareLock) | (1 << AccessExclusiveLock) |
(1 << AccessShareLock),
};
@@ -92,7 +92,7 @@ static int LockPrios[] = {
7
};
-LOCKMETHOD LockTableId = (LOCKMETHOD) NULL;
+LOCKMETHOD LockTableId = (LOCKMETHOD) NULL;
LOCKMETHOD LongTermTableId = (LOCKMETHOD) NULL;
/*
@@ -104,12 +104,14 @@ InitLockTable()
int lockmethod;
lockmethod = LockMethodTableInit("LockTable",
- LockConflicts, LockPrios, MAX_LOCKMODES - 1);
+ LockConflicts, LockPrios, MAX_LOCKMODES - 1);
LockTableId = lockmethod;
+
if (!(LockTableId))
elog(ERROR, "InitLockTable: couldnt initialize lock table");
#ifdef USER_LOCKS
+
/*
* Allocate another tableId for long-term locks
*/
@@ -125,7 +127,7 @@ InitLockTable()
}
/*
- * RelationInitLockInfo
+ * RelationInitLockInfo
* Initializes the lock information in a relation descriptor.
*/
void
@@ -322,10 +324,10 @@ XactLockTableWait(TransactionId xid)
LockAcquire(LockTableId, &tag, ShareLock);
TransactionIdFlushCache();
+
/*
- * Transaction was committed/aborted/crashed -
- * we have to update pg_log if transaction is still
- * marked as running.
+ * Transaction was committed/aborted/crashed - we have to update
+ * pg_log if transaction is still marked as running.
*/
if (!TransactionIdDidCommit(xid) && !TransactionIdDidAbort(xid))
TransactionIdAbort(xid);
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 09e85e5e134..9860abca7e4 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.52 1999/05/13 15:55:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.53 1999/05/25 16:11:21 momjian Exp $
*
* NOTES
* Outside modules can create a lock table and acquire/release
@@ -50,7 +50,7 @@
#include "utils/trace.h"
#include "utils/ps_status.h"
-static int WaitOnLock(LOCKMETHOD lockmethod, LOCK *lock, LOCKMODE lockmode);
+static int WaitOnLock(LOCKMETHOD lockmethod, LOCK *lock, LOCKMODE lockmode);
/*
* lockDebugRelation can be used to trace unconditionally a single relation,
@@ -658,22 +658,22 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag, LOCKMODE lockmode)
*/
if (lockMethodTable->ctl->conflictTab[lockmode] & lock->waitMask)
{
- int i = 1;
+ int i = 1;
/*
- * If I don't hold locks or my locks don't conflict
- * with waiters then force to sleep.
+ * If I don't hold locks or my locks don't conflict with waiters
+ * then force to sleep.
*/
if (result->nHolding > 0)
{
- for ( ; i <= lockMethodTable->ctl->numLockModes; i++)
+ for (; i <= lockMethodTable->ctl->numLockModes; i++)
{
- if (result->holders[i] > 0 &&
+ if (result->holders[i] > 0 &&
lockMethodTable->ctl->conflictTab[i] & lock->waitMask)
- break; /* conflict */
+ break; /* conflict */
}
}
-
+
if (result->nHolding == 0 || i > lockMethodTable->ctl->numLockModes)
{
XID_PRINT("LockAcquire: higher priority proc waiting",
@@ -718,17 +718,18 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag, LOCKMODE lockmode)
return FALSE;
}
#endif
+
/*
* Construct bitmask of locks we hold before going to sleep.
*/
MyProc->holdLock = 0;
if (result->nHolding > 0)
{
- int i,
- tmpMask = 2;
+ int i,
+ tmpMask = 2;
- for (i = 1; i <= lockMethodTable->ctl->numLockModes;
- i++, tmpMask <<= 1)
+ for (i = 1; i <= lockMethodTable->ctl->numLockModes;
+ i++, tmpMask <<= 1)
{
if (result->holders[i] > 0)
MyProc->holdLock |= tmpMask;
@@ -1166,14 +1167,15 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag, LOCKMODE lockmode)
wakeupNeeded = false;
else
#endif
- /*
- * Above is not valid any more (due to MVCC lock modes).
- * Actually we should compare activeHolders[lockmode] with
- * number of waiters holding lock of this type and try to
- * wakeup only if these numbers are equal (and lock released
- * conflicts with locks requested by waiters). For the moment
- * we only check the last condition.
- */
+
+ /*
+ * Above is not valid any more (due to MVCC lock modes). Actually
+ * we should compare activeHolders[lockmode] with number of
+ * waiters holding lock of this type and try to wakeup only if
+ * these numbers are equal (and lock released conflicts with locks
+ * requested by waiters). For the moment we only check the last
+ * condition.
+ */
if (lockMethodTable->ctl->conflictTab[lockmode] & lock->waitMask)
wakeupNeeded = true;
@@ -1238,14 +1240,12 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag, LOCKMODE lockmode)
}
if (wakeupNeeded)
- {
ProcLockWakeup(&(lock->waitProcs), lockmethod, lock);
- }
else
{
if (((LOCKDEBUG(LOCK_LOCKMETHOD(*(lock))) >= 1) \
- && (lock->tag.relId >= lockDebugOidMin)) \
- || \
+ &&(lock->tag.relId >= lockDebugOidMin)) \
+ ||\
(lockDebugRelation && (lock->tag.relId == lockDebugRelation)))
TPRINTF(TRACE_ALL, "LockRelease: no wakeup needed");
}
@@ -1309,7 +1309,7 @@ LockReleaseAll(LOCKMETHOD lockmethod, SHM_QUEUE *lockQueue)
for (;;)
{
- bool wakeupNeeded = false;
+ bool wakeupNeeded = false;
/*
* Sometimes the queue appears to be messed up.
@@ -1377,7 +1377,7 @@ LockReleaseAll(LOCKMETHOD lockmethod, SHM_QUEUE *lockQueue)
goto next_item;
}
TPRINTF(TRACE_USERLOCKS,
- "LockReleaseAll: releasing user lock [%u] [%d,%d,%d]",
+ "LockReleaseAll: releasing user lock [%u] [%d,%d,%d]",
lock->tag.objId.blkno,
xidLook->tag.lock, xidLook->tag.pid, xidLook->tag.xid);
}
@@ -1391,7 +1391,7 @@ LockReleaseAll(LOCKMETHOD lockmethod, SHM_QUEUE *lockQueue)
if (xidLook->tag.pid != 0)
{
TPRINTF(TRACE_LOCKS,
- "LockReleaseAll: skiping user lock [%u] [%d,%d,%d]",
+ "LockReleaseAll: skiping user lock [%u] [%d,%d,%d]",
lock->tag.objId.blkno,
xidLook->tag.lock, xidLook->tag.pid, xidLook->tag.xid);
nleft++;
@@ -1415,10 +1415,11 @@ LockReleaseAll(LOCKMETHOD lockmethod, SHM_QUEUE *lockQueue)
&&(lock->activeHolders[i] >= 0));
if (!lock->activeHolders[i])
lock->mask &= BITS_OFF[i];
+
/*
* Read comments in LockRelease
*/
- if (!wakeupNeeded && xidLook->holders[i] > 0 &&
+ if (!wakeupNeeded && xidLook->holders[i] > 0 &&
lockMethodTable->ctl->conflictTab[i] & lock->waitMask)
wakeupNeeded = true;
}
@@ -1521,7 +1522,7 @@ LockShmemSize(int maxBackends)
int size = 0;
size += MAXALIGN(sizeof(PROC_HDR)); /* ProcGlobal */
- size += MAXALIGN(maxBackends * sizeof(PROC)); /* each MyProc */
+ size += MAXALIGN(maxBackends * sizeof(PROC)); /* each MyProc */
size += MAXALIGN(maxBackends * sizeof(LOCKMETHODCTL)); /* each
* lockMethodTable->ctl */
@@ -1535,8 +1536,9 @@ LockShmemSize(int maxBackends)
SHMEM_XIDTAB_KEYSIZE,
SHMEM_XIDTAB_DATASIZE);
- /* Since the lockHash entry count above is only an estimate,
- * add 10% safety margin.
+ /*
+ * Since the lockHash entry count above is only an estimate, add 10%
+ * safety margin.
*/
size += size / 10;
@@ -1569,21 +1571,21 @@ LockingDisabled()
bool
DeadLockCheck(void *proc, LOCK *findlock)
{
- XIDLookupEnt *xidLook = NULL;
- XIDLookupEnt *tmp = NULL;
- PROC *thisProc = (PROC*) proc,
- *waitProc;
- SHM_QUEUE *lockQueue = &(thisProc->lockQueue);
- SHMEM_OFFSET end = MAKE_OFFSET(lockQueue);
- LOCK *lock;
- PROC_QUEUE *waitQueue;
- int i,
- j;
- bool first_run = (thisProc == MyProc),
- done;
-
- static PROC *checked_procs[MAXBACKENDS];
- static int nprocs;
+ XIDLookupEnt *xidLook = NULL;
+ XIDLookupEnt *tmp = NULL;
+ PROC *thisProc = (PROC *) proc,
+ *waitProc;
+ SHM_QUEUE *lockQueue = &(thisProc->lockQueue);
+ SHMEM_OFFSET end = MAKE_OFFSET(lockQueue);
+ LOCK *lock;
+ PROC_QUEUE *waitQueue;
+ int i,
+ j;
+ bool first_run = (thisProc == MyProc),
+ done;
+
+ static PROC *checked_procs[MAXBACKENDS];
+ static int nprocs;
/* initialize at start of recursion */
if (first_run)
@@ -1606,39 +1608,38 @@ DeadLockCheck(void *proc, LOCK *findlock)
LOCK_PRINT("DeadLockCheck", lock, 0);
- if (lock->tag.relId == 0) /* user' lock */
+ if (lock->tag.relId == 0) /* user' lock */
goto nxtl;
/*
- * waitLock is always in lockQueue of waiting proc,
- * if !first_run then upper caller will handle waitProcs
- * queue of waitLock.
+ * waitLock is always in lockQueue of waiting proc, if !first_run
+ * then upper caller will handle waitProcs queue of waitLock.
*/
if (thisProc->waitLock == lock && !first_run)
goto nxtl;
/*
- * If we found proc holding findlock and sleeping on some my
- * other lock then we have to check does it block me or
- * another waiters.
+ * If we found proc holding findlock and sleeping on some my other
+ * lock then we have to check does it block me or another waiters.
*/
if (lock == findlock && !first_run)
{
- LOCKMETHODCTL *lockctl =
- LockMethodTable[DEFAULT_LOCKMETHOD]->ctl;
- int lm;
+ LOCKMETHODCTL *lockctl =
+ LockMethodTable[DEFAULT_LOCKMETHOD]->ctl;
+ int lm;
Assert(xidLook->nHolding > 0);
for (lm = 1; lm <= lockctl->numLockModes; lm++)
{
- if (xidLook->holders[lm] > 0 &&
+ if (xidLook->holders[lm] > 0 &&
lockctl->conflictTab[lm] & findlock->waitMask)
return true;
}
+
/*
* Else - get the next lock from thisProc's lockQueue
*/
- goto nxtl;
+ goto nxtl;
}
waitQueue = &(lock->waitProcs);
@@ -1653,10 +1654,10 @@ DeadLockCheck(void *proc, LOCK *findlock)
waitProc = (PROC *) MAKE_PTR(waitProc->links.prev);
continue;
}
- if (lock == findlock) /* first_run also true */
+ if (lock == findlock) /* first_run also true */
{
- LOCKMETHODCTL *lockctl =
- LockMethodTable[DEFAULT_LOCKMETHOD]->ctl;
+ LOCKMETHODCTL *lockctl =
+ LockMethodTable[DEFAULT_LOCKMETHOD]->ctl;
/*
* If me blocked by his holdlock...
@@ -1670,17 +1671,19 @@ DeadLockCheck(void *proc, LOCK *findlock)
waitProc = (PROC *) MAKE_PTR(waitProc->links.prev);
continue;
}
+
/*
- * If he isn't blocked by me and we request non-conflicting
- * lock modes - no deadlock here because of he isn't
- * blocked by me in any sence (explicitle or implicitly).
- * Note that we don't do like test if !first_run
- * (when thisProc is holder and non-waiter on lock) and so
- * we call DeadLockCheck below for every waitProc in
- * thisProc->lockQueue, even for waitProc-s un-blocked
- * by thisProc. Should we? This could save us some time...
+ * If he isn't blocked by me and we request
+ * non-conflicting lock modes - no deadlock here because
+ * of he isn't blocked by me in any sence (explicitle or
+ * implicitly). Note that we don't do like test if
+ * !first_run (when thisProc is holder and non-waiter on
+ * lock) and so we call DeadLockCheck below for every
+ * waitProc in thisProc->lockQueue, even for waitProc-s
+ * un-blocked by thisProc. Should we? This could save us
+ * some time...
*/
- if (!(lockctl->conflictTab[waitProc->token] & MyProc->holdLock) &&
+ if (!(lockctl->conflictTab[waitProc->token] & MyProc->holdLock) &&
!(lockctl->conflictTab[waitProc->token] & (1 << MyProc->token)))
{
waitProc = (PROC *) MAKE_PTR(waitProc->links.prev);
@@ -1689,7 +1692,8 @@ DeadLockCheck(void *proc, LOCK *findlock)
}
/*
- * Look in lockQueue of this waitProc, if didn't do this before.
+ * Look in lockQueue of this waitProc, if didn't do this
+ * before.
*/
for (j = 0; j < nprocs; j++)
{
@@ -1703,9 +1707,9 @@ DeadLockCheck(void *proc, LOCK *findlock)
if (DeadLockCheck(waitProc, findlock))
{
- LOCKMETHODCTL *lockctl =
- LockMethodTable[DEFAULT_LOCKMETHOD]->ctl;
- int holdLock;
+ LOCKMETHODCTL *lockctl =
+ LockMethodTable[DEFAULT_LOCKMETHOD]->ctl;
+ int holdLock;
/*
* Ok, but is waitProc waiting for me (thisProc) ?
@@ -1715,14 +1719,16 @@ DeadLockCheck(void *proc, LOCK *findlock)
Assert(first_run);
holdLock = thisProc->holdLock;
}
- else /* should we cache holdLock ? */
+ else
+/* should we cache holdLock ? */
{
- int lm, tmpMask = 2;
+ int lm,
+ tmpMask = 2;
Assert(xidLook->nHolding > 0);
- for (holdLock = 0, lm = 1;
- lm <= lockctl->numLockModes;
- lm++, tmpMask <<= 1)
+ for (holdLock = 0, lm = 1;
+ lm <= lockctl->numLockModes;
+ lm++, tmpMask <<= 1)
{
if (xidLook->holders[lm] > 0)
holdLock |= tmpMask;
@@ -1731,6 +1737,7 @@ DeadLockCheck(void *proc, LOCK *findlock)
}
if (lockctl->conflictTab[waitProc->token] & holdLock)
{
+
/*
* Last attempt to avoid deadlock - try to wakeup
* myself.
@@ -1751,6 +1758,7 @@ DeadLockCheck(void *proc, LOCK *findlock)
}
return true;
}
+
/*
* Hell! Is he blocked by any (other) holder ?
*/
@@ -1760,21 +1768,24 @@ DeadLockCheck(void *proc, LOCK *findlock)
waitProc->xid,
NULL) != STATUS_OK)
{
+
/*
* Blocked by others - no deadlock...
*/
#ifdef DEADLOCK_DEBUG
- LOCK_PRINT("DeadLockCheck: blocked by others",
- lock, waitProc->token);
+ LOCK_PRINT("DeadLockCheck: blocked by others",
+ lock, waitProc->token);
#endif
waitProc = (PROC *) MAKE_PTR(waitProc->links.prev);
continue;
}
+
/*
* Well - wakeup this guy! This is the case of
- * implicit blocking: thisProc blocked someone who blocked
- * waitProc by the fact that he (someone) is already
- * waiting for lock (we do this for anti-starving).
+ * implicit blocking: thisProc blocked someone who
+ * blocked waitProc by the fact that he/someone is
+ * already waiting for lock. We do this for
+ * anti-starving.
*/
GrantLock(lock, waitProc->token);
waitQueue->size--;
@@ -1785,7 +1796,7 @@ DeadLockCheck(void *proc, LOCK *findlock)
waitProc = (PROC *) MAKE_PTR(waitProc->links.prev);
}
-nxtl:;
+nxtl: ;
if (done)
break;
SHMQueueFirst(&xidLook->queue, (Pointer *) &tmp, &tmp->queue);
@@ -1832,7 +1843,7 @@ LockOwners(LOCKMETHOD lockmethod, LOCKTAG *locktag)
if (is_user_lock)
{
TPRINTF(TRACE_USERLOCKS, "LockOwners: user lock tag [%u]",
- locktag->objId.blkno;,
+ locktag->objId.blkno;
}
#endif
@@ -1981,6 +1992,7 @@ LockOwners(LOCKMETHOD lockmethod, LOCKTAG *locktag)
return array;
}
+
#endif
#ifdef DEADLOCK_DEBUG
diff --git a/src/backend/storage/lmgr/multi.c b/src/backend/storage/lmgr/multi.c
index 38e2d194d65..e60ba613ee8 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.28 1999/03/28 20:32:25 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/multi.c,v 1.29 1999/05/25 16:11:22 momjian Exp $
*
* NOTES:
* (1) The lock.c module assumes that the caller here is doing
@@ -170,6 +170,7 @@ MultiLockTuple(LockInfo lockinfo, ItemPointer tidPtr, LOCKMODE lockmode)
tag.tupleId = *tidPtr;
return MultiAcquire(MultiTableId, &tag, lockmode, TUPLE_LEVEL);
}
+
#endif
/*
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
index 4eb97b8a6a8..3c0b96713ad 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.55 1999/05/13 15:55:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.56 1999/05/25 16:11:23 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.55 1999/05/13 15:55:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.56 1999/05/25 16:11:23 momjian Exp $
*/
#include <sys/time.h>
#include <unistd.h>
@@ -150,18 +150,20 @@ InitProcGlobal(IPCKey key, int maxBackends)
for (i = 0; i < MAX_PROC_SEMS / PROC_NSEMS_PER_SET; i++)
ProcGlobal->freeSemMap[i] = 0;
- /* Arrange to delete semas on exit --- set this up now so that
- * we will clean up if pre-allocation fails...
+ /*
+ * Arrange to delete semas on exit --- set this up now so that we
+ * will clean up if pre-allocation fails...
*/
on_shmem_exit(ProcFreeAllSemaphores, NULL);
- /* Pre-create the semaphores for the first maxBackends processes,
+ /*
+ * Pre-create the semaphores for the first maxBackends processes,
* unless we are running as a standalone backend.
*/
if (key != PrivateIPCKey)
{
for (i = 0;
- i < (maxBackends+PROC_NSEMS_PER_SET-1) / PROC_NSEMS_PER_SET;
+ i < (maxBackends + PROC_NSEMS_PER_SET - 1) / PROC_NSEMS_PER_SET;
i++)
{
IPCKey semKey = ProcGlobal->currKey + i;
@@ -266,10 +268,11 @@ InitProcess(IPCKey key)
ProcGetNewSemKeyAndNum(&semKey, &semNum);
- /* Note: because of the pre-allocation done in InitProcGlobal,
- * this call should always attach to an existing semaphore.
- * It will (try to) create a new group of semaphores only if
- * the postmaster tries to start more backends than it said it would.
+ /*
+ * Note: because of the pre-allocation done in InitProcGlobal,
+ * this call should always attach to an existing semaphore. It
+ * will (try to) create a new group of semaphores only if the
+ * postmaster tries to start more backends than it said it would.
*/
semId = IpcSemaphoreCreate(semKey,
PROC_NSEMS_PER_SET,
@@ -489,7 +492,7 @@ ProcQueueInit(PROC_QUEUE *queue)
*/
int
ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
- LOCKMETHODCTL *lockctl,
+ LOCKMETHODCTL * lockctl,
int token, /* lockmode */
LOCK *lock)
{
@@ -534,23 +537,22 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
}
/* if he waits for me */
else if (lockctl->conflictTab[proc->token] & MyProc->holdLock)
- {
break;
- }
/* if conflicting locks requested */
else if (lockctl->conflictTab[proc->token] & myMask)
{
+
/*
- * If I request non self-conflicting lock and there
- * are others requesting the same lock just before me -
- * stay here.
+ * If I request non self-conflicting lock and there are others
+ * requesting the same lock just before me - stay here.
*/
if (!selfConflict && prevSame)
break;
}
+
/*
- * Last attempt to don't move any more: if we don't conflict
- * with rest waiters in queue.
+ * Last attempt to don't move any more: if we don't conflict with
+ * rest waiters in queue.
*/
else if (!(lockctl->conflictTab[token] & waitMask))
break;
@@ -558,7 +560,7 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
prevSame = (proc->token == token);
(aheadHolders[proc->token])++;
if (aheadHolders[proc->token] == lock->holders[proc->token])
- waitMask &= ~ (1 << proc->token);
+ waitMask &= ~(1 << proc->token);
proc = (PROC *) MAKE_PTR(proc->links.prev);
}
@@ -885,7 +887,7 @@ ProcGetNewSemKeyAndNum(IPCKey *key, int *semNum)
{
int i;
int32 *freeSemMap = ProcGlobal->freeSemMap;
- int32 fullmask = (1 << (PROC_NSEMS_PER_SET+1)) - 1;
+ int32 fullmask = (1 << (PROC_NSEMS_PER_SET + 1)) - 1;
/*
* we hold ProcStructLock when entering this routine. We scan through
@@ -906,8 +908,8 @@ ProcGetNewSemKeyAndNum(IPCKey *key, int *semNum)
{
/*
- * a free semaphore found. Mark it as allocated.
- * Also set the bit indicating whole set is allocated.
+ * a free semaphore found. Mark it as allocated. Also set
+ * the bit indicating whole set is allocated.
*/
freeSemMap[i] |= mask + (1 << PROC_NSEMS_PER_SET);
@@ -938,9 +940,10 @@ ProcFreeSem(IpcSemaphoreKey semKey, int semNum)
mask = ~(1 << semNum);
freeSemMap[i] &= mask;
- /* Formerly we'd release a semaphore set if it was now completely unused,
- * but now we keep the semaphores to ensure we won't run out when
- * starting new backends --- cf. InitProcGlobal. Note that the
+ /*
+ * Formerly we'd release a semaphore set if it was now completely
+ * unused, but now we keep the semaphores to ensure we won't run out
+ * when starting new backends --- cf. InitProcGlobal. Note that the
* PROC_NSEMS_PER_SET+1'st bit of the freeSemMap entry remains set to
* indicate it is still allocated; ProcFreeAllSemaphores() needs that.
*/
diff --git a/src/backend/storage/page/bufpage.c b/src/backend/storage/page/bufpage.c
index 69074ae2ce1..8c12a7652c5 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.21 1999/02/13 23:18:31 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.22 1999/05/25 16:11:25 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,7 +35,7 @@ static bool PageManagerShuffle = true; /* default is shuffle mode */
*/
/*
- * PageInit
+ * PageInit
* Initializes the contents of a page.
*/
void
@@ -56,7 +56,7 @@ PageInit(Page page, Size pageSize, Size specialSize)
}
/*
- * PageAddItem
+ * PageAddItem
* Adds item to the given page.
*
* Note:
@@ -174,7 +174,7 @@ PageAddItem(Page page,
}
/*
- * PageGetTempPage
+ * PageGetTempPage
* Get a temporary page in local memory for special processing
*/
Page
@@ -207,7 +207,7 @@ PageGetTempPage(Page page, Size specialSize)
}
/*
- * PageRestoreTempPage
+ * PageRestoreTempPage
* Copy temporary page back to permanent page after special processing
* and release the temporary page.
*/
@@ -246,7 +246,7 @@ itemidcompare(const void *itemidp1, const void *itemidp2)
}
/*
- * PageRepairFragmentation
+ * PageRepairFragmentation
* Frees fragmented space on a page.
*/
void
@@ -327,7 +327,7 @@ PageRepairFragmentation(Page page)
}
/*
- * PageGetFreeSpace
+ * PageGetFreeSpace
* Returns the size of the free (allocatable) space on a page.
*/
Size
@@ -346,7 +346,7 @@ PageGetFreeSpace(Page page)
}
/*
- * PageManagerModeSet
+ * PageManagerModeSet
*
* Sets mode to either: ShufflePageManagerMode (the default) or
* OverwritePageManagerMode. For use by access methods code
diff --git a/src/backend/storage/page/itemptr.c b/src/backend/storage/page/itemptr.c
index 9e1353df5ec..1ac32fd5454 100644
--- a/src/backend/storage/page/itemptr.c
+++ b/src/backend/storage/page/itemptr.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/page/itemptr.c,v 1.5 1999/02/13 23:18:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/page/itemptr.c,v 1.6 1999/05/25 16:11:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,7 +19,7 @@
#include "storage/bufpage.h"
/*
- * ItemPointerEquals
+ * ItemPointerEquals
* Returns true if both item pointers point to the same item,
* otherwise returns false.
*
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index 84fd67510dc..ce4fd6ab651 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.43 1999/05/17 06:38:41 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.44 1999/05/25 16:11:30 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -712,9 +712,9 @@ mdtruncate(Relation reln, int nblocks)
#ifndef LET_OS_MANAGE_FILESIZE
int curnblk,
- i,
- oldsegno,
- newsegno;
+ i,
+ oldsegno,
+ newsegno;
char fname[NAMEDATALEN];
char tname[NAMEDATALEN + 10];
@@ -724,13 +724,15 @@ mdtruncate(Relation reln, int nblocks)
StrNCpy(fname, RelationGetRelationName(reln)->data, NAMEDATALEN);
- if (newsegno < oldsegno) {
- for (i = (newsegno + 1);; i++) {
+ if (newsegno < oldsegno)
+ {
+ for (i = (newsegno + 1);; i++)
+ {
sprintf(tname, "%s.%d", fname, i);
if (FileNameUnlink(tname) < 0)
break;
}
- }
+ }
#endif
fd = RelationGetFile(reln);
diff --git a/src/backend/storage/smgr/mm.c b/src/backend/storage/smgr/mm.c
index 2d5c1cdc4d8..5bce97f93a2 100644
--- a/src/backend/storage/smgr/mm.c
+++ b/src/backend/storage/smgr/mm.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/smgr/Attic/mm.c,v 1.15 1999/03/06 21:17:50 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/smgr/Attic/mm.c,v 1.16 1999/05/25 16:11:32 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -569,15 +569,15 @@ MMShmemSize()
* first compute space occupied by the (dbid,relid,blkno) hash table
*/
size += hash_estimate_size(MMNBUFFERS,
- 0, /* MMHashEntry includes key */
- sizeof(MMHashEntry));
+ 0, /* MMHashEntry includes key */
+ sizeof(MMHashEntry));
/*
* now do the same for the rel hash table
*/
size += hash_estimate_size(MMNRELATIONS,
- 0, /* MMRelHashEntry includes key */
- sizeof(MMRelHashEntry));
+ 0, /* MMRelHashEntry includes key */
+ sizeof(MMRelHashEntry));
/*
* finally, add in the memory block we use directly
diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c
index 175cfa0f53d..25644d088b2 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.23 1999/04/23 19:37:42 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v 1.24 1999/05/25 16:11:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -79,6 +79,7 @@ static bool smgrwo[] = {
false, /* main memory */
#endif
};
+
#endif
static int NSmgr = lengthof(smgrsw);
@@ -408,4 +409,5 @@ smgriswo(int16 smgrno)
return smgrwo[smgrno];
}
+
#endif
diff --git a/src/backend/tcop/dest.c b/src/backend/tcop/dest.c
index b564ac65aa6..dce9425e197 100644
--- a/src/backend/tcop/dest.c
+++ b/src/backend/tcop/dest.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/dest.c,v 1.29 1999/04/28 22:17:58 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/dest.c,v 1.30 1999/05/25 16:11:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -60,17 +60,17 @@ static char CommandInfo[32] = {0};
* ----------------
*/
static void
-donothingReceive (HeapTuple tuple, TupleDesc typeinfo, DestReceiver* self)
+donothingReceive(HeapTuple tuple, TupleDesc typeinfo, DestReceiver * self)
{
}
static void
-donothingSetup (DestReceiver* self, TupleDesc typeinfo)
+donothingSetup(DestReceiver * self, TupleDesc typeinfo)
{
}
static void
-donothingCleanup (DestReceiver* self)
+donothingCleanup(DestReceiver * self)
{
}
@@ -149,9 +149,11 @@ BeginCommand(char *pname,
if (operation == CMD_SELECT && !isIntoRel)
{
StringInfoData buf;
+
pq_beginmessage(&buf);
- pq_sendbyte(&buf, 'T'); /* tuple descriptor message type */
- pq_sendint(&buf, natts, 2); /* # of attributes in tuples */
+ pq_sendbyte(&buf, 'T'); /* tuple descriptor message type */
+ pq_sendint(&buf, natts, 2); /* # of attributes in
+ * tuples */
for (i = 0; i < natts; ++i)
{
@@ -215,35 +217,35 @@ BeginCommand(char *pname,
* DestToFunction - return appropriate receiver function set for dest
* ----------------
*/
-DestReceiver*
+DestReceiver *
DestToFunction(CommandDest dest)
{
switch (dest)
{
- case Remote:
+ case Remote:
/* printtup wants a dynamically allocated DestReceiver */
return printtup_create_DR();
break;
case RemoteInternal:
- return & printtup_internalDR;
+ return &printtup_internalDR;
break;
case Local:
- return & be_printtupDR;
+ return &be_printtupDR;
break;
case Debug:
- return & debugtupDR;
+ return &debugtupDR;
break;
case SPI:
- return & spi_printtupDR;
+ return &spi_printtupDR;
break;
case None:
default:
- return & donothingDR;
+ return &donothingDR;
break;
}
@@ -251,7 +253,7 @@ DestToFunction(CommandDest dest)
* never gets here, but DECstation lint appears to be stupid...
*/
- return & donothingDR;
+ return &donothingDR;
}
/* ----------------
@@ -330,13 +332,13 @@ NullCommand(CommandDest dest)
{
switch (dest)
{
- case RemoteInternal:
- case Remote:
+ case RemoteInternal:
+ case Remote:
/* ----------------
* tell the fe that we saw an empty query string
* ----------------
*/
- pq_putbytes("I", 2); /* note we send I and \0 */
+ pq_putbytes("I", 2);/* note we send I and \0 */
break;
case Local:
@@ -362,8 +364,8 @@ ReadyForQuery(CommandDest dest)
{
switch (dest)
{
- case RemoteInternal:
- case Remote:
+ case RemoteInternal:
+ case Remote:
if (PG_PROTOCOL_MAJOR(FrontendProtocol) >= 2)
pq_putbytes("Z", 1);
/* Flush output at end of cycle in any case. */
@@ -383,7 +385,7 @@ UpdateCommandInfo(int operation, Oid lastoid, uint32 tuples)
{
switch (operation)
{
- case CMD_INSERT:
+ case CMD_INSERT:
if (tuples > 1)
lastoid = InvalidOid;
sprintf(CommandInfo, " %u %u", lastoid, tuples);
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index ab29054aa77..fbafe1e6bd8 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.115 1999/05/22 17:47:49 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.116 1999/05/25 16:11:40 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -141,7 +141,7 @@ static bool IsEmptyQuery = false;
char relname[80]; /* current relation name */
/* note: these declarations had better match tcopprot.h */
-DLLIMPORT sigjmp_buf Warn_restart;
+DLLIMPORT sigjmp_buf Warn_restart;
bool InError;
extern int NBuffers;
@@ -389,7 +389,8 @@ List *
pg_parse_and_plan(char *query_string, /* string to execute */
Oid *typev, /* argument types */
int nargs, /* number of arguments */
- List **queryListP, /* returned pointer to the parse trees */
+ List **queryListP, /* returned pointer to the parse
+ * trees */
CommandDest dest, /* where results should go */
bool aclOverride)
{
@@ -404,17 +405,17 @@ pg_parse_and_plan(char *query_string, /* string to execute */
if (DebugPrintQuery)
{
if (DebugPrintQuery > 3)
- {
+ {
/* Print the query string as is if query debug level > 3 */
- TPRINTF(TRACE_QUERY, "query: %s", query_string);
+ TPRINTF(TRACE_QUERY, "query: %s", query_string);
}
else
{
/* Print condensed query string to fit in one log line */
char buff[MAX_QUERY_SIZE + 1];
char c,
- *s,
- *d;
+ *s,
+ *d;
int n,
is_space = 1;
@@ -462,21 +463,24 @@ pg_parse_and_plan(char *query_string, /* string to execute */
/* ----------------
* (2) rewrite the queries, as necessary
*
- * rewritten queries are collected in new_list. Note there may be
- * more or fewer than in the original list.
+ * rewritten queries are collected in new_list. Note there may be
+ * more or fewer than in the original list.
* ----------------
*/
new_list = NIL;
- foreach (querytree_list_item, querytree_list)
+ foreach(querytree_list_item, querytree_list)
{
querytree = (Query *) lfirst(querytree_list_item);
if (DebugPrintParse || DebugPPrintParse)
{
- if (DebugPPrintParse) {
+ if (DebugPPrintParse)
+ {
TPRINTF(TRACE_PRETTY_PARSE, "parser outputs:");
nodeDisplay(querytree);
- } else {
+ }
+ else
+ {
TPRINTF(TRACE_PARSE, "parser outputs:");
printf("\n%s\n\n", nodeToString(querytree));
}
@@ -502,7 +506,7 @@ pg_parse_and_plan(char *query_string, /* string to execute */
*/
if (aclOverride)
{
- foreach (querytree_list_item, querytree_list)
+ foreach(querytree_list_item, querytree_list)
{
List *l;
@@ -522,19 +526,22 @@ pg_parse_and_plan(char *query_string, /* string to execute */
if (DebugPrintRewrittenParsetree || DebugPPrintRewrittenParsetree)
{
- if (DebugPPrintRewrittenParsetree) {
+ if (DebugPPrintRewrittenParsetree)
+ {
TPRINTF(TRACE_PRETTY_REWRITTEN, "after rewriting:");
- foreach (querytree_list_item, querytree_list)
+ foreach(querytree_list_item, querytree_list)
{
querytree = (Query *) lfirst(querytree_list_item);
nodeDisplay(querytree);
printf("\n");
}
- } else {
+ }
+ else
+ {
TPRINTF(TRACE_REWRITTEN, "after rewriting:");
- foreach (querytree_list_item, querytree_list)
+ foreach(querytree_list_item, querytree_list)
{
querytree = (Query *) lfirst(querytree_list_item);
printf("\n%s\n\n", nodeToString(querytree));
@@ -542,7 +549,7 @@ pg_parse_and_plan(char *query_string, /* string to execute */
}
}
- foreach (querytree_list_item, querytree_list)
+ foreach(querytree_list_item, querytree_list)
{
querytree = (Query *) lfirst(querytree_list_item);
@@ -594,16 +601,20 @@ pg_parse_and_plan(char *query_string, /* string to execute */
*/
if (DebugPrintPlan || DebugPPrintPlan)
{
- if (DebugPPrintPlan) {
+ if (DebugPPrintPlan)
+ {
TPRINTF(TRACE_PRETTY_PLAN, "plan:");
nodeDisplay(plan);
- } else {
+ }
+ else
+ {
TPRINTF(TRACE_PLAN, "plan:");
printf("\n%s\n\n", nodeToString(plan));
}
}
#endif
}
+
/*
* If the command is an utility append a null plan. This is needed
* to keep the plan_list aligned with the querytree_list or the
@@ -670,14 +681,16 @@ pg_exec_query_dest(char *query_string, /* string to execute */
/* OK, do it to it! */
- /* NOTE: we do not use "foreach" here because we want to be sure
- * the list pointers have been advanced before the query is executed.
- * We need to do that because VACUUM has a nasty little habit of doing
+ /*
+ * NOTE: we do not use "foreach" here because we want to be sure the
+ * list pointers have been advanced before the query is executed. We
+ * need to do that because VACUUM has a nasty little habit of doing
* CommitTransactionCommand at startup, and that will release the
* memory holding our parse/plan lists :-(. This needs a better
* solution --- currently, the code will crash if someone submits
* "vacuum; something-else" in a single query string. But memory
- * allocation needs redesigned anyway, so this will have to do for now.
+ * allocation needs redesigned anyway, so this will have to do for
+ * now.
*/
while (querytree_list)
@@ -717,10 +730,13 @@ pg_exec_query_dest(char *query_string, /* string to execute */
*/
if (DebugPrintPlan || DebugPPrintPlan)
{
- if (DebugPPrintPlan) {
+ if (DebugPPrintPlan)
+ {
TPRINTF(TRACE_PRETTY_PLAN, "plan:");
nodeDisplay(plan);
- } else {
+ }
+ else
+ {
TPRINTF(TRACE_PLAN, "plan:");
printf("\n%s\n\n", nodeToString(plan));
}
@@ -730,7 +746,7 @@ pg_exec_query_dest(char *query_string, /* string to execute */
SetQuerySnapshot();
/*
- * execute the plan
+ * execute the plan
*/
if (ShowExecutorStats)
ResetUsage();
@@ -762,13 +778,13 @@ pg_exec_query_dest(char *query_string, /* string to execute */
/* --------------------------------
* signal handler routines used in PostgresMain()
*
- * handle_warn() catches SIGQUIT. It forces control back to the main
+ * handle_warn() catches SIGQUIT. It forces control back to the main
* loop, just as if an internal error (elog(ERROR,...)) had occurred.
* elog() used to actually use kill(2) to induce a SIGQUIT to get here!
* But that's not 100% reliable on some systems, so now it does its own
- * siglongjmp() instead.
+ * siglongjmp() instead.
* We still provide the signal catcher so that an error quit can be
- * forced externally. This should be done only with great caution,
+ * forced externally. This should be done only with great caution,
* however, since an asynchronous signal could leave the system in
* who-knows-what inconsistent state.
*
@@ -832,6 +848,7 @@ QueryCancelHandler(SIGNAL_ARGS)
void
CancelQuery(void)
{
+
/*
* QueryCancel flag will be reset in main loop, which we reach by
* longjmp from elog().
@@ -1150,7 +1167,8 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
{
IsUnderPostmaster = true;
DBName = optarg;
- secure = false; /* subsequent switches are NOT secure */
+ secure = false; /* subsequent switches are NOT
+ * secure */
}
break;
@@ -1238,7 +1256,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
break;
case 'x':
-#ifdef NOT_USED /* planner/xfunc.h */
+#ifdef NOT_USED /* planner/xfunc.h */
/*
* control joey hellerstein's expensive function
@@ -1326,7 +1344,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
fprintf(stderr, "%s does not know where to find the database system "
"data. You must specify the directory that contains the "
"database system either by specifying the -D invocation "
- "option or by setting the PGDATA environment variable.\n\n",
+ "option or by setting the PGDATA environment variable.\n\n",
argv[0]);
proc_exit(1);
}
@@ -1479,10 +1497,13 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
pqsignal(SIGINT, QueryCancelHandler); /* cancel current query */
pqsignal(SIGQUIT, handle_warn); /* handle error */
pqsignal(SIGTERM, die);
- pqsignal(SIGPIPE, SIG_IGN); /* ignore failure to write to frontend */
- /* Note: if frontend closes connection, we will notice it and exit cleanly
- * when control next returns to outer loop. This seems safer than forcing
- * exit in the midst of output during who-knows-what operation...
+ pqsignal(SIGPIPE, SIG_IGN); /* ignore failure to write to frontend */
+
+ /*
+ * Note: if frontend closes connection, we will notice it and exit
+ * cleanly when control next returns to outer loop. This seems safer
+ * than forcing exit in the midst of output during who-knows-what
+ * operation...
*/
pqsignal(SIGUSR1, quickdie);
pqsignal(SIGUSR2, Async_NotifyHandler); /* flush also sinval cache */
@@ -1493,6 +1514,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
PG_PROTOCOL_MAJOR(FrontendProtocol) >= 2)
{
StringInfoData buf;
+
pq_beginmessage(&buf);
pq_sendbyte(&buf, 'K');
pq_sendint(&buf, (int32) MyProcPid, sizeof(int32));
@@ -1504,7 +1526,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
if (!IsUnderPostmaster)
{
puts("\nPOSTGRES backend interactive interface ");
- puts("$Revision: 1.115 $ $Date: 1999/05/22 17:47:49 $\n");
+ puts("$Revision: 1.116 $ $Date: 1999/05/25 16:11:40 $\n");
}
/* ----------------
@@ -1542,14 +1564,14 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
/* ----------------
* (1) tell the frontend we're ready for a new query.
*
- * Note: this includes fflush()'ing the last of the prior output.
+ * Note: this includes fflush()'ing the last of the prior output.
* ----------------
*/
ReadyForQuery(whereToSendOutput);
/* ----------------
* (2) deal with pending asynchronous NOTIFY from other backends,
- * and enable async.c's signal handler to execute NOTIFY directly.
+ * and enable async.c's signal handler to execute NOTIFY directly.
* ----------------
*/
QueryCancel = false; /* forget any earlier CANCEL signal */
diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c
index 97e8663e7d1..83c400188f9 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.22 1999/03/23 05:41:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.23 1999/05/25 16:11:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,7 +41,7 @@
static char *CreateOperationTag(int operationType);
static void ProcessQueryDesc(QueryDesc *queryDesc, Node *limoffset,
- Node *limcount);
+ Node *limcount);
/* ----------------------------------------------------------------
@@ -374,5 +374,5 @@ ProcessQuery(Query *parsetree,
}
else
ProcessQueryDesc(queryDesc, parsetree->limitOffset,
- parsetree->limitCount);
+ parsetree->limitCount);
}
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index a7fb1ed3a3f..38099254bf3 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.60 1999/05/22 19:49:42 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.61 1999/05/25 16:11:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -616,7 +616,7 @@ ProcessUtility(Node *parsetree,
PS_SET_STATUS(commandTag = "LOAD");
CHECK_IF_ABORTED();
- closeAllVfds(); /* probably not necessary... */
+ closeAllVfds(); /* probably not necessary... */
load_file(stmt->filename);
}
break;
@@ -653,6 +653,7 @@ ProcessUtility(Node *parsetree,
break;
#ifdef NOT_USED
+
/*
* ******************************** Tioga-related statements *******************************
*/
diff --git a/src/backend/tioga/Varray.c b/src/backend/tioga/Varray.c
index 944b7766d8a..c211686c742 100644
--- a/src/backend/tioga/Varray.c
+++ b/src/backend/tioga/Varray.c
@@ -1,6 +1,6 @@
/* ************************************************************************
*
- * Varray.c
+ * Varray.c
*
* routines to provide a generic set of functions to handle variable sized
* arrays. originally by Jiang Wu
diff --git a/src/backend/tioga/tgRecipe.h b/src/backend/tioga/tgRecipe.h
index 70ed561c0ec..858d195cfa6 100644
--- a/src/backend/tioga/tgRecipe.h
+++ b/src/backend/tioga/tgRecipe.h
@@ -11,7 +11,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: tgRecipe.h,v 1.8 1999/02/13 23:18:55 momjian Exp $
+ * $Id: tgRecipe.h,v 1.9 1999/05/25 16:11:46 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,6 +35,7 @@ typedef struct
*
*
*
+ *
* geo-decls.h */
#endif /* TIOGA_FRONTEND */
@@ -114,7 +115,7 @@ typedef struct _tgrecipe
{
TgElement elmValue; /* "inherits" TgElement attributes. */
Arr_TgNodePtr *allNodes; /* array of all nodes for this recipe. */
- Arr_TgNodePtr *rootNodes; /* array of root nodes for this recipe.
+ Arr_TgNodePtr *rootNodes; /* array of root nodes for this recipe.
* root nodes are nodes with no parents */
Arr_TgNodePtr *eyes; /* array of pointers for the browser nodes
* recipe, execution of recipe starts by
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index 2ca61704076..b1fc5574981 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.35 1999/05/12 12:47:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.36 1999/05/25 16:11:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,7 +34,7 @@ static char *aclparse(char *s, AclItem *aip, unsigned *modechg);
/*
* getid
* Consumes the first alphanumeric string (identifier) found in string
- * 's', ignoring any leading white space. If it finds a double quote
+ * 's', ignoring any leading white space. If it finds a double quote
* it returns the word inside the quotes.
*
* RETURNS:
@@ -48,7 +48,7 @@ getid(char *s, char *n)
{
unsigned len;
char *id;
- int in_quotes = 0;
+ int in_quotes = 0;
Assert(s && n);
@@ -63,7 +63,7 @@ getid(char *s, char *n)
for (id = s, len = 0; isalnum(*s) || *s == '_' || in_quotes; ++len, ++s)
{
- if (in_quotes && *s == '"')
+ if (in_quotes && *s == '"')
{
len--;
in_quotes = 0;
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index 41f02797a7f..b0e59e3ff08 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.42 1999/05/10 00:45:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.43 1999/05/25 16:11:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -200,7 +200,7 @@ array_in(char *string, /* input array in external form */
/* array not a large object */
dataPtr = (char *) _ReadArrayStr(p, nitems, ndim, dim, &inputproc, typelem,
typmod, typdelim, typlen, typbyval, typalign,
- &nbytes);
+ &nbytes);
nbytes += ARR_OVERHEAD(ndim);
retval = (ArrayType *) palloc(nbytes);
MemSet(retval, 0, nbytes);
@@ -246,7 +246,7 @@ array_in(char *string, /* input array in external form */
}
/*-----------------------------------------------------------------------------
- * _ArrayCount
+ * _ArrayCount
* Counts the number of dimensions and the *dim array for an array string.
* The syntax for array input is C-like nested curly braces
*-----------------------------------------------------------------------------
@@ -1284,19 +1284,19 @@ array_assgn(ArrayType *array,
* Map an arbitrary function to an array and return a new array with
* same dimensions and the source elements transformed by fn().
*/
-ArrayType *
+ArrayType *
array_map(ArrayType *v,
Oid type,
- char * (*fn)(),
+ char *(*fn) (),
Oid retType,
int nargs,
...)
{
- ArrayType *result;
- void *args[4];
- char **values;
- char *elt;
- int *dim;
+ ArrayType *result;
+ void *args[4];
+ char **values;
+ char *elt;
+ int *dim;
int ndim;
int nitems;
int i;
@@ -1308,26 +1308,23 @@ array_map(ArrayType *v,
char typdelim;
Oid typelem;
Oid proc;
- char typalign;
- char *s;
- char *p;
+ char typalign;
+ char *s;
+ char *p;
va_list ap;
/* Large objects not yet supported */
- if (ARR_IS_LO(v) == true) {
+ if (ARR_IS_LO(v) == true)
elog(ERROR, "array_map: large objects not supported");
- }
/* Check nargs */
- if ((nargs < 0) || (nargs > 4)) {
+ if ((nargs < 0) || (nargs > 4))
elog(ERROR, "array_map: invalid nargs: %d", nargs);
- }
/* Copy extra args to local variable */
va_start(ap, nargs);
- for (i=0; i<nargs; i++) {
+ for (i = 0; i < nargs; i++)
args[i] = (void *) va_arg(ap, char *);
- }
va_end(ap);
/* Lookup source and result types. Unneeded variables are reused. */
@@ -1336,14 +1333,13 @@ array_map(ArrayType *v,
system_cache_lookup(retType, false, &typlen, &typbyval,
&typdelim, &typelem, &proc, &typalign);
- ndim = ARR_NDIM(v);
- dim = ARR_DIMS(v);
+ ndim = ARR_NDIM(v);
+ dim = ARR_DIMS(v);
nitems = getNitems(ndim, dim);
/* Check for empty array */
- if (nitems <= 0) {
+ if (nitems <= 0)
return v;
- }
/* Allocate temporary array for new values */
values = (char **) palloc(nitems * sizeof(char *));
@@ -1351,64 +1347,74 @@ array_map(ArrayType *v,
/* Loop over source data */
s = (char *) ARR_DATA_PTR(v);
- for (i=0; i<nitems; i++) {
+ for (i = 0; i < nitems; i++)
+ {
/* Get source element */
- if (inp_typbyval) {
- switch (inp_typlen) {
- case 1:
- elt = (char *) ((int) (*(char *) s));
- break;
- case 2:
- elt = (char *) ((int) (*(int16 *) s));
- break;
- case 3:
- case 4:
- default:
- elt = (char *) (*(int32 *) s);
- break;
+ if (inp_typbyval)
+ {
+ switch (inp_typlen)
+ {
+ case 1:
+ elt = (char *) ((int) (*(char *) s));
+ break;
+ case 2:
+ elt = (char *) ((int) (*(int16 *) s));
+ break;
+ case 3:
+ case 4:
+ default:
+ elt = (char *) (*(int32 *) s);
+ break;
}
s += inp_typlen;
- } else {
+ }
+ else
+ {
elt = s;
- if (inp_typlen > 0) {
+ if (inp_typlen > 0)
s += inp_typlen;
- } else {
+ else
s += INTALIGN(*(int32 *) s);
- }
}
/*
- * Apply the given function to source elt and extra args.
- * nargs is the number of extra args taken by fn().
+ * Apply the given function to source elt and extra args. nargs is
+ * the number of extra args taken by fn().
*/
- switch (nargs) {
- case 0:
- p = (char *) (*fn) (elt);
- break;
- case 1:
- p = (char *) (*fn) (elt, args[0]);
- break;
- case 2:
- p = (char *) (*fn) (elt, args[0], args[1]);
- break;
- case 3:
- p = (char *) (*fn) (elt, args[0], args[1], args[2]);
- break;
- case 4:
- default:
- p = (char *) (*fn) (elt, args[0], args[1], args[2], args[3]);
- break;
+ switch (nargs)
+ {
+ case 0:
+ p = (char *) (*fn) (elt);
+ break;
+ case 1:
+ p = (char *) (*fn) (elt, args[0]);
+ break;
+ case 2:
+ p = (char *) (*fn) (elt, args[0], args[1]);
+ break;
+ case 3:
+ p = (char *) (*fn) (elt, args[0], args[1], args[2]);
+ break;
+ case 4:
+ default:
+ p = (char *) (*fn) (elt, args[0], args[1], args[2], args[3]);
+ break;
}
/* Update values and total result size */
- if (typbyval) {
+ if (typbyval)
+ {
values[i] = (char *) p;
nbytes += typlen;
- } else {
- int len;
+ }
+ else
+ {
+ int len;
+
len = ((typlen > 0) ? typlen : INTALIGN(*(int32 *) p));
/* Needed because _CopyArrayEls tries to pfree items */
- if (p == elt) {
+ if (p == elt)
+ {
p = (char *) palloc(len);
memcpy(p, elt, len);
}
diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c
index a6e9711a463..9f74645d38a 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.27 1998/10/12 04:07:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.28 1999/05/25 16:11:52 momjian Exp $
*/
#include <stdio.h>
@@ -681,8 +681,8 @@ cash_words_out(Cash *value)
Cash m1;
Cash m2;
Cash m3;
- text *result;
-
+ text *result;
+
/* work with positive numbers */
if (*value < 0)
{
diff --git a/src/backend/utils/adt/char.c b/src/backend/utils/adt/char.c
index 2984555af02..4c6e3711065 100644
--- a/src/backend/utils/adt/char.c
+++ b/src/backend/utils/adt/char.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.21 1999/02/13 23:19:05 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.22 1999/05/25 16:11:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -163,10 +163,10 @@ text_char(text *arg1)
text *
char_text(int8 arg1)
{
- text *result;
+ text *result;
- result = palloc(VARHDRSZ+1);
- VARSIZE(result) = VARHDRSZ+1;
+ result = palloc(VARHDRSZ + 1);
+ VARSIZE(result) = VARHDRSZ + 1;
*(VARDATA(result)) = arg1;
return result;
diff --git a/src/backend/utils/adt/chunk.c b/src/backend/utils/adt/chunk.c
index eb692526f89..a9a49fe940e 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.19 1999/02/13 23:19:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/chunk.c,v 1.20 1999/05/25 16:11:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -115,7 +115,7 @@ _ChunkArray(int fd,
}
/*--------------------------------------------------------------------------
- * GetChunkSize
+ * GetChunkSize
* given an access pattern and array dimensionality etc, this program
* returns the dimensions of the chunk in "d"
*-----------------------------------------------------------------------
@@ -160,7 +160,7 @@ GetChunkSize(FILE *fd,
}
/*-------------------------------------------------------------------------
- * _FindBestChunk
+ * _FindBestChunk
* This routine does most of the number crunching to compute the
* optimal chunk shape.
* Called by GetChunkSize
@@ -213,7 +213,7 @@ _FindBestChunk(int size,
}
/*----------------------------------------------------------------------
- * get_next
+ * get_next
* Called by _GetBestChunk to get the next tuple in the lexicographic order
*---------------------------------------------------------------------
*/
@@ -420,7 +420,7 @@ seek_and_read(int pos, int size, char *buff, int fp, int from)
#endif /* LOARRAY */
/*----------------------------------------------------------------------------
- * _ReadChunkArray
+ * _ReadChunkArray
* returns the subarray specified bu the range indices "st" and "endp"
* from the chunked array stored in file "fp"
*---------------------------------------------------------------------------
@@ -620,7 +620,7 @@ _ReadChunkArray(int *st,
}
/*------------------------------------------------------------------------
- * _ReadChunkArray1El
+ * _ReadChunkArray1El
* returns one element of the chunked array as specified by the index "st"
* the chunked file descriptor is "fp"
*-------------------------------------------------------------------------
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index e582ebc2c65..7ad18a067e4 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.31 1999/03/14 16:44:01 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.32 1999/05/25 16:11:56 momjian Exp $
*
* NOTES
* This code is actually (almost) unused.
@@ -988,6 +988,7 @@ isreltime(char *str)
return 0;
} /* isreltime() */
+
#endif
#ifdef NOT_USED
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index aad1cec4eb0..84163583ef8 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.32 1999/04/26 04:42:48 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.33 1999/05/25 16:11:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -311,7 +311,7 @@ abstime_date(AbsoluteTime abstime)
* and then convert again to try to get the time zones correct.
*/
static int
-date2tm(DateADT dateVal, int *tzp, struct tm *tm, double *fsec, char **tzn)
+date2tm(DateADT dateVal, int *tzp, struct tm * tm, double *fsec, char **tzn)
{
struct tm *tx;
time_t utime;
@@ -358,7 +358,7 @@ date2tm(DateADT dateVal, int *tzp, struct tm *tm, double *fsec, char **tzn)
/* tm_gmtoff is Sun/DEC-ism */
*tzp = -(tm->tm_gmtoff);
if (tzn != NULL)
- *tzn = (char *)tm->tm_zone;
+ *tzn = (char *) tm->tm_zone;
#elif defined(HAVE_INT_TIMEZONE)
#ifdef __CYGWIN__
*tzp = (tm->tm_isdst ? (_timezone - 3600) : _timezone);
@@ -393,13 +393,13 @@ date2tm(DateADT dateVal, int *tzp, struct tm *tm, double *fsec, char **tzn)
#ifdef DATEDEBUG
#if defined(HAVE_TM_ZONE)
- printf("date2tm- %d.%02d.%02d %02d:%02d:%02.0f (%d %s) dst=%d\n",
- tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, (double) tm->tm_sec,
- *tzp, tm->tm_zone, tm->tm_isdst);
+ printf("date2tm- %d.%02d.%02d %02d:%02d:%02.0f (%d %s) dst=%d\n",
+ tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, (double) tm->tm_sec,
+ *tzp, tm->tm_zone, tm->tm_isdst);
#elif defined(HAVE_INT_TIMEZONE)
- printf("date2tm- %d.%02d.%02d %02d:%02d:%02.0f (%d %s %s) dst=%d\n",
- tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, (double) tm->tm_sec,
- *tzp, tzname[0], tzname[1], tm->tm_isdst);
+ printf("date2tm- %d.%02d.%02d %02d:%02d:%02.0f (%d %s %s) dst=%d\n",
+ tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, (double) tm->tm_sec,
+ *tzp, tzname[0], tzname[1], tm->tm_isdst);
#endif
#endif
diff --git a/src/backend/utils/adt/dt.c b/src/backend/utils/adt/dt.c
index a055a03df80..9fb75cb5687 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.70 1999/05/01 17:14:56 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.71 1999/05/25 16:12:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,9 +34,9 @@
static int DecodeDate(char *str, int fmask, int *tmask, struct tm * tm);
static int DecodeNumber(int flen, char *field,
- int fmask, int *tmask, struct tm * tm, double *fsec, int *is2digits);
+ int fmask, int *tmask, struct tm * tm, double *fsec, int *is2digits);
static int DecodeNumberField(int len, char *str,
- int fmask, int *tmask, struct tm * tm, double *fsec, int *is2digits);
+ int fmask, int *tmask, struct tm * tm, double *fsec, int *is2digits);
static int DecodeSpecial(int field, char *lowtoken, int *val);
static int DecodeTime(char *str, int fmask, int *tmask,
struct tm * tm, double *fsec);
@@ -55,9 +55,9 @@ static int tm2timespan(struct tm * tm, double fsec, TimeSpan *span);
#define USE_DATE_CACHE 1
#define ROUND_ALL 0
-int day_tab[2][13] = {
+int day_tab[2][13] = {
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0},
- {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0}};
+{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0}};
char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
@@ -2090,7 +2090,7 @@ static datetkn datetktbl[] = {
{"idlw", TZ, NEG(72)}, /* Intl. Date Line, West */
{LATE, RESERV, DTK_LATE}, /* "infinity" reserved for "late time" */
{INVALID, RESERV, DTK_INVALID},
- /* "invalid" reserved for invalid time */
+ /* "invalid" reserved for invalid time */
{"ist", TZ, 12}, /* Israel */
{"it", TZ, 21}, /* Iran Time */
{"jan", MONTH, 1},
@@ -2438,7 +2438,7 @@ datetime2tm(DateTime dt, int *tzp, struct tm * tm, double *fsec, char **tzn)
*tzp = -(tm->tm_gmtoff); /* tm_gmtoff is Sun/DEC-ism */
if (tzn != NULL)
- *tzn = (char *)tm->tm_zone;
+ *tzn = (char *) tm->tm_zone;
#elif defined(HAVE_INT_TIMEZONE)
#ifdef __CYGWIN__
*tzp = (tm->tm_isdst ? (_timezone - 3600) : _timezone);
@@ -2833,8 +2833,10 @@ DecodeDateTime(char **field, int *ftype, int nf,
case DTK_NUMBER:
flen = strlen(field[i]);
- /* long numeric string and either no date or no time read yet?
- * then interpret as a concatenated date or time... */
+ /*
+ * long numeric string and either no date or no time read
+ * yet? then interpret as a concatenated date or time...
+ */
if ((flen > 4) && !((fmask & DTK_DATE_M) && (fmask & DTK_TIME_M)))
{
if (DecodeNumberField(flen, field[i], fmask, &tmask, tm, fsec, &is2digits) != 0)
@@ -2926,10 +2928,14 @@ DecodeDateTime(char **field, int *ftype, int nf,
#ifdef DATEDEBUG
printf("DecodeDateTime- month field %s value is %d\n", field[i], val);
#endif
- /* already have a (numeric) month? then see if we can substitute... */
- if ((fmask & DTK_M(MONTH)) && (! haveTextMonth)
- && (!(fmask & DTK_M(DAY)))
- && ((tm->tm_mon >= 1) && (tm->tm_mon <= 31)))
+
+ /*
+ * already have a (numeric) month? then see if we
+ * can substitute...
+ */
+ if ((fmask & DTK_M(MONTH)) && (!haveTextMonth)
+ && (!(fmask & DTK_M(DAY)))
+ && ((tm->tm_mon >= 1) && (tm->tm_mon <= 31)))
{
tm->tm_mday = tm->tm_mon;
tmask = DTK_M(DAY);
@@ -2942,7 +2948,11 @@ DecodeDateTime(char **field, int *ftype, int nf,
break;
case DTZMOD:
- /* daylight savings time modifier (solves "MET DST" syntax) */
+
+ /*
+ * daylight savings time modifier (solves "MET
+ * DST" syntax)
+ */
tmask |= DTK_M(DTZ);
tm->tm_isdst = 1;
if (tzp == NULL)
@@ -3010,7 +3020,7 @@ DecodeDateTime(char **field, int *ftype, int nf,
if (tm->tm_year > 0)
tm->tm_year = -(tm->tm_year - 1);
else
- elog(ERROR,"Inconsistant use of year %04d and 'BC'", tm->tm_year);
+ elog(ERROR, "Inconsistant use of year %04d and 'BC'", tm->tm_year);
}
else if (is2digits)
{
@@ -3039,18 +3049,22 @@ DecodeDateTime(char **field, int *ftype, int nf,
if ((fmask & DTK_DATE_M) != DTK_DATE_M)
return ((fmask & DTK_TIME_M) == DTK_TIME_M) ? 1 : -1;
- /* check for valid day of month, now that we know for sure the month and year... */
+ /*
+ * check for valid day of month, now that we know for sure the
+ * month and year...
+ */
if ((tm->tm_mday < 1)
|| (tm->tm_mday > day_tab[isleap(tm->tm_year)][tm->tm_mon - 1]))
return -1;
/* timezone not specified? then find local timezone if possible */
if (((fmask & DTK_DATE_M) == DTK_DATE_M)
- && (tzp != NULL) && (!(fmask & DTK_M(TZ))))
+ && (tzp != NULL) && (!(fmask & DTK_M(TZ))))
{
+
/*
- * daylight savings time modifier but no standard timezone? then
- * error
+ * daylight savings time modifier but no standard timezone?
+ * then error
*/
if (fmask & DTK_M(DTZMOD))
return -1;
@@ -3066,7 +3080,8 @@ DecodeDateTime(char **field, int *ftype, int nf,
tm->tm_mon += 1;
#if defined(HAVE_TM_ZONE)
- *tzp = -(tm->tm_gmtoff); /* tm_gmtoff is Sun/DEC-ism */
+ *tzp = -(tm->tm_gmtoff); /* tm_gmtoff is
+ * Sun/DEC-ism */
#elif defined(HAVE_INT_TIMEZONE)
#ifdef __CYGWIN__
*tzp = ((tm->tm_isdst > 0) ? (_timezone - 3600) : _timezone);
@@ -3077,7 +3092,7 @@ DecodeDateTime(char **field, int *ftype, int nf,
#error USE_POSIX_TIME is defined but neither HAVE_TM_ZONE or HAVE_INT_TIMEZONE are defined
#endif
-#else /* !USE_POSIX_TIME */
+#else /* !USE_POSIX_TIME */
*tzp = CTimeZone;
#endif
}
@@ -3214,8 +3229,8 @@ DecodeTimeOnly(char **field, int *ftype, int nf, int *dtype, struct tm * tm, dou
tm->tm_hour += 12;
if (((tm->tm_hour < 0) || (tm->tm_hour > 23))
- || ((tm->tm_min < 0) || (tm->tm_min > 59))
- || ((tm->tm_sec < 0) || ((tm->tm_sec + *fsec) >= 60)))
+ || ((tm->tm_min < 0) || (tm->tm_min > 59))
+ || ((tm->tm_sec < 0) || ((tm->tm_sec + *fsec) >= 60)))
return -1;
if ((fmask & DTK_TIME_M) != DTK_TIME_M)
@@ -3344,7 +3359,7 @@ DecodeDate(char *str, int fmask, int *tmask, struct tm * tm)
if (tm->tm_year > 0)
tm->tm_year = -(tm->tm_year - 1);
else
- elog(ERROR,"Inconsistant use of year %04d and 'BC'", tm->tm_year);
+ elog(ERROR, "Inconsistant use of year %04d and 'BC'", tm->tm_year);
}
else if (is2digits)
{
@@ -3449,11 +3464,12 @@ DecodeNumber(int flen, char *str, int fmask,
&tm->tm_year, &tm->tm_mon, &tm->tm_mday);
}
- /* Enough digits to be unequivocal year?
- * Used to test for 4 digits or more,
- * but we now test first for a three-digit doy
- * so anything bigger than two digits had better be
- * an explicit year. - thomas 1999-01-09
+
+ /*
+ * Enough digits to be unequivocal year? Used to test for 4 digits or
+ * more, but we now test first for a three-digit doy so anything
+ * bigger than two digits had better be an explicit year. - thomas
+ * 1999-01-09
*/
else if (flen > 2)
{
@@ -3464,7 +3480,7 @@ DecodeNumber(int flen, char *str, int fmask,
/* already have a year? then see if we can substitute... */
if ((fmask & DTK_M(YEAR)) && (!(fmask & DTK_M(DAY)))
- && ((tm->tm_year >= 1) && (tm->tm_year <= 31)))
+ && ((tm->tm_year >= 1) && (tm->tm_year <= 31)))
{
tm->tm_mday = tm->tm_year;
*tmask = DTK_M(DAY);
@@ -3543,7 +3559,7 @@ DecodeNumber(int flen, char *str, int fmask,
*/
static int
DecodeNumberField(int len, char *str, int fmask,
- int *tmask, struct tm * tm, double *fsec, int *is2digits)
+ int *tmask, struct tm * tm, double *fsec, int *is2digits)
{
char *cp;
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index 5e4e20d257f..5f2a4f15232 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.41 1999/04/20 00:26:32 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.42 1999/05/25 16:12:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -955,12 +955,12 @@ i2tof(int16 num)
text *
float8_text(float64 num)
{
- text *result;
- int len;
- char *str;
+ text *result;
+ int len;
+ char *str;
str = float8out(num);
- len = (strlen(str)+VARHDRSZ);
+ len = (strlen(str) + VARHDRSZ);
result = palloc(len);
@@ -978,9 +978,9 @@ float8_text(float64 num)
float64
text_float8(text *string)
{
- float64 result;
- int len;
- char *str;
+ float64 result;
+ int len;
+ char *str;
len = (VARSIZE(string) - VARHDRSZ);
str = palloc(len + 1);
@@ -1000,12 +1000,12 @@ text_float8(text *string)
text *
float4_text(float32 num)
{
- text *result;
- int len;
- char *str;
+ text *result;
+ int len;
+ char *str;
str = float4out(num);
- len = (strlen(str)+VARHDRSZ);
+ len = (strlen(str) + VARHDRSZ);
result = palloc(len);
@@ -1023,9 +1023,9 @@ float4_text(float32 num)
float32
text_float4(text *string)
{
- float32 result;
- int len;
- char *str;
+ float32 result;
+ int len;
+ char *str;
len = (VARSIZE(string) - VARHDRSZ);
str = palloc(len + 1);
@@ -1154,7 +1154,8 @@ dpow(float64 arg1, float64 arg2)
#endif
*result = (float64data) pow(tmp1, tmp2);
#ifndef finite
- if (errno != 0) /* on some machines both EDOM & ERANGE can occur */
+ if (errno != 0) /* on some machines both EDOM & ERANGE can
+ * occur */
#else
if (!finite(*result))
#endif
diff --git a/src/backend/utils/adt/inet_net_ntop.c b/src/backend/utils/adt/inet_net_ntop.c
index 8c185dc83ca..11a0cb9363a 100644
--- a/src/backend/utils/adt/inet_net_ntop.c
+++ b/src/backend/utils/adt/inet_net_ntop.c
@@ -16,7 +16,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_net_ntop.c,v 1.5 1999/05/25 05:29:38 momjian Exp $";
+static const char rcsid[] = "$Id: inet_net_ntop.c,v 1.6 1999/05/25 16:12:04 momjian Exp $";
#endif
@@ -40,9 +40,9 @@ static const char rcsid[] = "$Id: inet_net_ntop.c,v 1.5 1999/05/25 05:29:38 momj
#endif
static char *inet_net_ntop_ipv4(const u_char *src, int bits,
- char *dst, size_t size);
+ char *dst, size_t size);
static char *inet_cidr_ntop_ipv4(const u_char *src, int bits,
- char *dst, size_t size);
+ char *dst, size_t size);
/*
* char *
@@ -59,7 +59,7 @@ inet_cidr_ntop(int af, const void *src, int bits, char *dst, size_t size)
{
switch (af)
{
- case AF_INET:
+ case AF_INET:
return (inet_cidr_ntop_ipv4(src, bits, dst, size));
default:
errno = EAFNOSUPPORT;
@@ -162,7 +162,7 @@ inet_net_ntop(int af, const void *src, int bits, char *dst, size_t size)
{
switch (af)
{
- case AF_INET:
+ case AF_INET:
return (inet_net_ntop_ipv4(src, bits, dst, size));
default:
errno = EAFNOSUPPORT;
@@ -186,10 +186,11 @@ inet_net_ntop(int af, const void *src, int bits, char *dst, size_t size)
static char *
inet_net_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size)
{
- char *odst = dst;
- char *t;
- size_t len = 4;
- int b, tb;
+ char *odst = dst;
+ char *t;
+ size_t len = 4;
+ int b,
+ tb;
if (bits < 0 || bits > 32)
{
@@ -218,7 +219,7 @@ inet_net_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size)
*dst++ = '.';
*dst = '\0';
}
- size -= (size_t)(dst - t);
+ size -= (size_t) (dst - t);
}
/* don't print masklen if 32 bits */
@@ -232,7 +233,7 @@ inet_net_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size)
return (odst);
- emsgsize:
+emsgsize:
errno = EMSGSIZE;
return (NULL);
}
diff --git a/src/backend/utils/adt/inet_net_pton.c b/src/backend/utils/adt/inet_net_pton.c
index ae3036c3ca6..bcc9ff681a2 100644
--- a/src/backend/utils/adt/inet_net_pton.c
+++ b/src/backend/utils/adt/inet_net_pton.c
@@ -16,7 +16,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_net_pton.c,v 1.7 1999/02/03 21:17:27 momjian Exp $";
+static const char rcsid[] = "$Id: inet_net_pton.c,v 1.8 1999/05/25 16:12:05 momjian Exp $";
#endif
@@ -58,8 +58,8 @@ static int inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size);
* Paul Vixie (ISC), June 1996
*
* Changes:
- * I added the inet_cidr_pton function (also from Paul) and changed
- * the names to reflect their current use.
+ * I added the inet_cidr_pton function (also from Paul) and changed
+ * the names to reflect their current use.
*
*/
int
@@ -67,10 +67,10 @@ inet_net_pton(int af, const char *src, void *dst, size_t size)
{
switch (af)
{
- case AF_INET:
+ case AF_INET:
return size == -1 ?
- inet_net_pton_ipv4(src, dst) :
- inet_cidr_pton_ipv4(src, dst, size);
+ inet_net_pton_ipv4(src, dst) :
+ inet_cidr_pton_ipv4(src, dst, size);
default:
errno = EAFNOSUPPORT;
return (-1);
@@ -108,14 +108,16 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size)
ch = *src++;
if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
- && isascii(src[1]) && isxdigit(src[1])) {
+ && isascii(src[1]) && isxdigit(src[1]))
+ {
/* Hexadecimal: Eat nybble string. */
if (size <= 0)
goto emsgsize;
dirty = 0;
tmp = 0;
- src++; /* skip x or X. */
- while ((ch = *src++) != '\0' && isascii(ch) && isxdigit(ch)) {
+ src++; /* skip x or X. */
+ while ((ch = *src++) != '\0' && isascii(ch) && isxdigit(ch))
+ {
if (isupper(ch))
ch = tolower(ch);
n = strchr(xdigits, ch) - xdigits;
@@ -124,14 +126,16 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size)
tmp = n;
else
tmp = (tmp << 4) | n;
- if (++dirty == 2) {
+ if (++dirty == 2)
+ {
if (size-- <= 0)
goto emsgsize;
*dst++ = (u_char) tmp;
dirty = 0;
}
}
- if (dirty) { /* Odd trailing nybble? */
+ if (dirty)
+ { /* Odd trailing nybble? */
if (size-- <= 0)
goto emsgsize;
*dst++ = (u_char) (tmp << 4);
@@ -234,27 +238,30 @@ emsgsize:
/*
* int
* inet_net_pton(af, src, dst, *bits)
- * convert network address from presentation to network format.
- * accepts inet_pton()'s input for this "af" plus trailing "/CIDR".
- * "dst" is assumed large enough for its "af". "bits" is set to the
- * /CIDR prefix length, which can have defaults (like /32 for IPv4).
+ * convert network address from presentation to network format.
+ * accepts inet_pton()'s input for this "af" plus trailing "/CIDR".
+ * "dst" is assumed large enough for its "af". "bits" is set to the
+ * /CIDR prefix length, which can have defaults (like /32 for IPv4).
* return:
- * -1 if an error occurred (inspect errno; ENOENT means bad format).
- * 0 if successful conversion occurred.
- * note:
- * 192.5.5.1/28 has a nonzero host part, which means it isn't a network
- * as called for by inet_cidr_pton() but it can be a host address with
- * an included netmask.
+ * -1 if an error occurred (inspect errno; ENOENT means bad format).
+ * 0 if successful conversion occurred.
+ * note:
+ * 192.5.5.1/28 has a nonzero host part, which means it isn't a network
+ * as called for by inet_cidr_pton() but it can be a host address with
+ * an included netmask.
* author:
- * Paul Vixie (ISC), October 1998
+ * Paul Vixie (ISC), October 1998
*/
static int
inet_net_pton_ipv4(const char *src, u_char *dst)
{
static const char digits[] = "0123456789";
const u_char *odst = dst;
- int n, ch, tmp, bits;
- size_t size = 4;
+ int n,
+ ch,
+ tmp,
+ bits;
+ size_t size = 4;
/* Get the mantissa. */
while (ch = *src++, (isascii(ch) && isdigit(ch)))
@@ -283,7 +290,7 @@ inet_net_pton_ipv4(const char *src, u_char *dst)
if (ch == '/' && isascii(src[0]) && isdigit(src[0]) && dst > odst)
{
/* CIDR width specifier. Nothing can follow it. */
- ch = *src++; /* Skip over the /. */
+ ch = *src++; /* Skip over the /. */
bits = 0;
do
{
@@ -325,11 +332,11 @@ inet_net_pton_ipv4(const char *src, u_char *dst)
return bits;
- enoent:
+enoent:
errno = ENOENT;
return (-1);
- emsgsize:
+emsgsize:
errno = EMSGSIZE;
return (-1);
}
diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c
index 11363ba6459..289aed674ba 100644
--- a/src/backend/utils/adt/int8.c
+++ b/src/backend/utils/adt/int8.c
@@ -44,21 +44,22 @@ int8in(char *str)
if (!PointerIsValid(str))
elog(ERROR, "Bad (null) int8 external representation", NULL);
- /* Do our own scan, rather than relying on sscanf which might be
+ /*
+ * Do our own scan, rather than relying on sscanf which might be
* broken for long long. NOTE: this will not detect int64 overflow...
* but sscanf doesn't either...
*/
- while (*ptr && isspace(*ptr)) /* skip leading spaces */
+ while (*ptr && isspace(*ptr)) /* skip leading spaces */
ptr++;
- if (*ptr == '-') /* handle sign */
+ if (*ptr == '-') /* handle sign */
sign = -1, ptr++;
else if (*ptr == '+')
ptr++;
- if (! isdigit(*ptr)) /* require at least one digit */
+ if (!isdigit(*ptr)) /* require at least one digit */
elog(ERROR, "Bad int8 external representation '%s'", str);
- while (*ptr && isdigit(*ptr)) /* process digits */
+ while (*ptr && isdigit(*ptr)) /* process digits */
tmp = tmp * 10 + (*ptr++ - '0');
- if (*ptr) /* trailing junk? */
+ if (*ptr) /* trailing junk? */
elog(ERROR, "Bad int8 external representation '%s'", str);
*result = (sign < 0) ? -tmp : tmp;
@@ -70,7 +71,7 @@ int8in(char *str)
/* int8out()
*/
char *
-int8out(int64 *val)
+int8out(int64 * val)
{
char *result;
@@ -99,37 +100,37 @@ int8out(int64 *val)
* Is val1 relop val2?
*/
bool
-int8eq(int64 *val1, int64 *val2)
+int8eq(int64 * val1, int64 * val2)
{
return *val1 == *val2;
} /* int8eq() */
bool
-int8ne(int64 *val1, int64 *val2)
+int8ne(int64 * val1, int64 * val2)
{
return *val1 != *val2;
} /* int8ne() */
bool
-int8lt(int64 *val1, int64 *val2)
+int8lt(int64 * val1, int64 * val2)
{
return *val1 < *val2;
} /* int8lt() */
bool
-int8gt(int64 *val1, int64 *val2)
+int8gt(int64 * val1, int64 * val2)
{
return *val1 > *val2;
} /* int8gt() */
bool
-int8le(int64 *val1, int64 *val2)
+int8le(int64 * val1, int64 * val2)
{
return *val1 <= *val2;
} /* int8le() */
bool
-int8ge(int64 *val1, int64 *val2)
+int8ge(int64 * val1, int64 * val2)
{
return *val1 >= *val2;
} /* int8ge() */
@@ -139,37 +140,37 @@ int8ge(int64 *val1, int64 *val2)
* Is 64-bit val1 relop 32-bit val2?
*/
bool
-int84eq(int64 *val1, int32 val2)
+int84eq(int64 * val1, int32 val2)
{
return *val1 == val2;
} /* int84eq() */
bool
-int84ne(int64 *val1, int32 val2)
+int84ne(int64 * val1, int32 val2)
{
return *val1 != val2;
} /* int84ne() */
bool
-int84lt(int64 *val1, int32 val2)
+int84lt(int64 * val1, int32 val2)
{
return *val1 < val2;
} /* int84lt() */
bool
-int84gt(int64 *val1, int32 val2)
+int84gt(int64 * val1, int32 val2)
{
return *val1 > val2;
} /* int84gt() */
bool
-int84le(int64 *val1, int32 val2)
+int84le(int64 * val1, int32 val2)
{
return *val1 <= val2;
} /* int84le() */
bool
-int84ge(int64 *val1, int32 val2)
+int84ge(int64 * val1, int32 val2)
{
return *val1 >= val2;
} /* int84ge() */
@@ -179,37 +180,37 @@ int84ge(int64 *val1, int32 val2)
* Is 32-bit val1 relop 64-bit val2?
*/
bool
-int48eq(int32 val1, int64 *val2)
+int48eq(int32 val1, int64 * val2)
{
return val1 == *val2;
} /* int48eq() */
bool
-int48ne(int32 val1, int64 *val2)
+int48ne(int32 val1, int64 * val2)
{
return val1 != *val2;
} /* int48ne() */
bool
-int48lt(int32 val1, int64 *val2)
+int48lt(int32 val1, int64 * val2)
{
return val1 < *val2;
} /* int48lt() */
bool
-int48gt(int32 val1, int64 *val2)
+int48gt(int32 val1, int64 * val2)
{
return val1 > *val2;
} /* int48gt() */
bool
-int48le(int32 val1, int64 *val2)
+int48le(int32 val1, int64 * val2)
{
return val1 <= *val2;
} /* int48le() */
bool
-int48ge(int32 val1, int64 *val2)
+int48ge(int32 val1, int64 * val2)
{
return val1 >= *val2;
} /* int48ge() */
@@ -220,7 +221,7 @@ int48ge(int32 val1, int64 *val2)
*---------------------------------------------------------*/
int64 *
-int8um(int64 *val)
+int8um(int64 * val)
{
int64 temp = 0;
int64 *result = palloc(sizeof(int64));
@@ -235,7 +236,7 @@ int8um(int64 *val)
int64 *
-int8pl(int64 *val1, int64 *val2)
+int8pl(int64 * val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -248,7 +249,7 @@ int8pl(int64 *val1, int64 *val2)
} /* int8pl() */
int64 *
-int8mi(int64 *val1, int64 *val2)
+int8mi(int64 * val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -261,7 +262,7 @@ int8mi(int64 *val1, int64 *val2)
} /* int8mi() */
int64 *
-int8mul(int64 *val1, int64 *val2)
+int8mul(int64 * val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -274,7 +275,7 @@ int8mul(int64 *val1, int64 *val2)
} /* int8mul() */
int64 *
-int8div(int64 *val1, int64 *val2)
+int8div(int64 * val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -287,7 +288,7 @@ int8div(int64 *val1, int64 *val2)
} /* int8div() */
int64 *
-int8larger(int64 *val1, int64 *val2)
+int8larger(int64 * val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -300,7 +301,7 @@ int8larger(int64 *val1, int64 *val2)
} /* int8larger() */
int64 *
-int8smaller(int64 *val1, int64 *val2)
+int8smaller(int64 * val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -314,7 +315,7 @@ int8smaller(int64 *val1, int64 *val2)
int64 *
-int84pl(int64 *val1, int32 val2)
+int84pl(int64 * val1, int32 val2)
{
int64 *result = palloc(sizeof(int64));
@@ -327,7 +328,7 @@ int84pl(int64 *val1, int32 val2)
} /* int84pl() */
int64 *
-int84mi(int64 *val1, int32 val2)
+int84mi(int64 * val1, int32 val2)
{
int64 *result = palloc(sizeof(int64));
@@ -340,7 +341,7 @@ int84mi(int64 *val1, int32 val2)
} /* int84mi() */
int64 *
-int84mul(int64 *val1, int32 val2)
+int84mul(int64 * val1, int32 val2)
{
int64 *result = palloc(sizeof(int64));
@@ -353,7 +354,7 @@ int84mul(int64 *val1, int32 val2)
} /* int84mul() */
int64 *
-int84div(int64 *val1, int32 val2)
+int84div(int64 * val1, int32 val2)
{
int64 *result = palloc(sizeof(int64));
@@ -367,7 +368,7 @@ int84div(int64 *val1, int32 val2)
int64 *
-int48pl(int32 val1, int64 *val2)
+int48pl(int32 val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -380,7 +381,7 @@ int48pl(int32 val1, int64 *val2)
} /* int48pl() */
int64 *
-int48mi(int32 val1, int64 *val2)
+int48mi(int32 val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -393,7 +394,7 @@ int48mi(int32 val1, int64 *val2)
} /* int48mi() */
int64 *
-int48mul(int32 val1, int64 *val2)
+int48mul(int32 val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -406,7 +407,7 @@ int48mul(int32 val1, int64 *val2)
} /* int48mul() */
int64 *
-int48div(int32 val1, int64 *val2)
+int48div(int32 val1, int64 * val2)
{
int64 *result = palloc(sizeof(int64));
@@ -434,7 +435,7 @@ int48(int32 val)
} /* int48() */
int32
-int84(int64 *val)
+int84(int64 * val)
{
int32 result;
@@ -442,6 +443,7 @@ int84(int64 *val)
elog(ERROR, "Invalid (null) int64, can't convert int8 to int4", NULL);
#if NOT_USED
+
/*
* Hmm. This conditional always tests true on my i686/linux box. It's
* a gcc compiler bug, or I'm missing something obvious, which is more
@@ -449,8 +451,8 @@ int84(int64 *val)
*/
if ((*val < INT_MIN) || (*val > INT_MAX))
#endif
- if ((*val < (-pow(2, 31) + 1)) || (*val > (pow(2, 31) - 1)))
- elog(ERROR, "int8 conversion to int4 is out of range", NULL);
+ if ((*val < (-pow(2, 31) + 1)) || (*val > (pow(2, 31) - 1)))
+ elog(ERROR, "int8 conversion to int4 is out of range", NULL);
result = *val;
@@ -471,7 +473,7 @@ int28 (int16 val)
} /* int28() */
int16
-int82(int64 *val)
+int82(int64 * val)
{
int16 result;
@@ -489,7 +491,7 @@ int82(int64 *val)
#endif
float64
-i8tod(int64 *val)
+i8tod(int64 * val)
{
float64 result = palloc(sizeof(float64data));
@@ -533,9 +535,9 @@ text_int8(text *str)
elog(ERROR, "Bad (null) int8 external representation", NULL);
len = (VARSIZE(str) - VARHDRSZ);
- s = palloc(len+1);
+ s = palloc(len + 1);
memmove(s, VARDATA(str), len);
- *(s+len) = '\0';
+ *(s + len) = '\0';
return int8in(s);
} /* text_int8() */
@@ -544,7 +546,7 @@ text_int8(text *str)
/* int8_text()
*/
text *
-int8_text(int64 *val)
+int8_text(int64 * val)
{
text *result;
@@ -564,4 +566,3 @@ int8_text(int64 *val)
return result;
} /* int8out() */
-
diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c
index 6057fa2f154..14fc5314d0c 100644
--- a/src/backend/utils/adt/like.c
+++ b/src/backend/utils/adt/like.c
@@ -23,7 +23,7 @@
#include "utils/builtins.h" /* where the function declarations go */
#include "mb/pg_wchar.h"
-static int like(pg_wchar *text, pg_wchar *p);
+static int like(pg_wchar * text, pg_wchar * p);
/*
* interface routines called by the function manager
@@ -38,7 +38,7 @@ static int like(pg_wchar *text, pg_wchar *p);
charlen - the length of the string
*/
static bool
-fixedlen_like(char *s, struct varlena *p, int charlen)
+fixedlen_like(char *s, struct varlena * p, int charlen)
{
pg_wchar *sterm,
*pterm;
@@ -83,7 +83,7 @@ fixedlen_like(char *s, struct varlena *p, int charlen)
}
bool
-namelike(NameData *n, struct varlena *p)
+namelike(NameData *n, struct varlena * p)
{
if (!n)
return FALSE;
@@ -91,13 +91,13 @@ namelike(NameData *n, struct varlena *p)
}
bool
-namenlike(NameData *s, struct varlena *p)
+namenlike(NameData *s, struct varlena * p)
{
return !namelike(s, p);
}
bool
-textlike(struct varlena *s, struct varlena *p)
+textlike(struct varlena * s, struct varlena * p)
{
if (!s)
return FALSE;
@@ -105,13 +105,13 @@ textlike(struct varlena *s, struct varlena *p)
}
bool
-textnlike(struct varlena *s, struct varlena *p)
+textnlike(struct varlena * s, struct varlena * p)
{
return !textlike(s, p);
}
-/* $Revision: 1.23 $
+/* $Revision: 1.24 $
** "like.c" A first attempt at a LIKE operator for Postgres95.
**
** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.
@@ -146,11 +146,11 @@ textnlike(struct varlena *s, struct varlena *p)
** Match text and p, return LIKE_TRUE, LIKE_FALSE, or LIKE_ABORT.
*/
static int
-DoMatch(pg_wchar *text, pg_wchar *p)
+DoMatch(pg_wchar * text, pg_wchar * p)
{
int matched;
- for (; *p && *text; text++, p++)
+ for (; *p && *text; text ++, p++)
{
switch (*p)
{
@@ -159,7 +159,7 @@ DoMatch(pg_wchar *text, pg_wchar *p)
p++;
/* FALLTHROUGH */
default:
- if (*text != *p)
+ if (*text !=*p)
return LIKE_FALSE;
break;
case '_':
@@ -177,16 +177,16 @@ DoMatch(pg_wchar *text, pg_wchar *p)
{
/* Optimization to prevent most recursion */
if ((*text == *p ||
- *p == '\\' || *p == '%' || *p == '_') &&
+ *p == '\\' || *p == '%' || *p == '_') &&
(matched = DoMatch(text, p)) != LIKE_FALSE)
return matched;
- text++;
+ text ++;
}
return LIKE_ABORT;
}
}
- if (*text != '\0')
+ if (*text !='\0')
return LIKE_ABORT;
else
{
@@ -203,7 +203,7 @@ DoMatch(pg_wchar *text, pg_wchar *p)
** User-level routine. Returns TRUE or FALSE.
*/
static int
-like(pg_wchar *text, pg_wchar *p)
+like(pg_wchar * text, pg_wchar * p)
{
if (p[0] == '%' && p[1] == '\0')
return TRUE;
diff --git a/src/backend/utils/adt/mac.c b/src/backend/utils/adt/mac.c
index 957292af8ea..48dd19db94b 100644
--- a/src/backend/utils/adt/mac.c
+++ b/src/backend/utils/adt/mac.c
@@ -1,7 +1,7 @@
/*
* PostgreSQL type definitions for MAC addresses.
*
- * $Id: mac.c,v 1.7 1999/03/22 05:00:57 momjian Exp $
+ * $Id: mac.c,v 1.8 1999/05/25 16:12:08 momjian Exp $
*/
#include <stdio.h>
@@ -13,119 +13,119 @@
#include <utils/inet.h>
manufacturer manufacturers[] = {
- {0x00, 0x00, 0x0C, "Cisco"},
- {0x00, 0x00, 0x0E, "Fujitsu"},
- {0x00, 0x00, 0x0F, "NeXT"},
- {0x00, 0x00, 0x10, "Sytek"},
- {0x00, 0x00, 0x1D, "Cabletron"},
- {0x00, 0x00, 0x20, "DIAB"},
- {0x00, 0x00, 0x22, "Visual Technology"},
- {0x00, 0x00, 0x2A, "TRW"},
- {0x00, 0x00, 0x32, "GPT Limited"},
- {0x00, 0x00, 0x5A, "S & Koch"},
- {0x00, 0x00, 0x5E, "IANA"},
- {0x00, 0x00, 0x65, "Network General"},
- {0x00, 0x00, 0x6B, "MIPS"},
- {0x00, 0x00, 0x77, "MIPS"},
- {0x00, 0x00, 0x7A, "Ardent"},
- {0x00, 0x00, 0x89, "Cayman Systems"},
- {0x00, 0x00, 0x93, "Proteon"},
- {0x00, 0x00, 0x9F, "Ameristar Technology"},
- {0x00, 0x00, 0xA2, "Wellfleet"},
- {0x00, 0x00, 0xA3, "Network Application Technology"},
- {0x00, 0x00, 0xA6, "Network General"},
- {0x00, 0x00, 0xA7, "NCD"},
- {0x00, 0x00, 0xA9, "Network Systems"},
- {0x00, 0x00, 0xAA, "Xerox"},
- {0x00, 0x00, 0xB3, "CIMLinc"},
- {0x00, 0x00, 0xB7, "Dove Fastnet"},
- {0x00, 0x00, 0xBC, "Allen-Bradley"},
- {0x00, 0x00, 0xC0, "Western Digital"},
- {0x00, 0x00, 0xC5, "Farallon"},
- {0x00, 0x00, 0xC6, "Hewlett-Packard"},
- {0x00, 0x00, 0xC8, "Altos"},
- {0x00, 0x00, 0xC9, "Emulex"},
- {0x00, 0x00, 0xD7, "Dartmouth College"},
- {0x00, 0x00, 0xD8, "3Com (?)"},
- {0x00, 0x00, 0xDD, "Gould"},
- {0x00, 0x00, 0xDE, "Unigraph"},
- {0x00, 0x00, 0xE2, "Acer Counterpoint"},
- {0x00, 0x00, 0xEF, "Alantec"},
- {0x00, 0x00, 0xFD, "High Level Hardware"},
- {0x00, 0x01, 0x02, "BBN internal usage"},
- {0x00, 0x20, 0xAF, "3Com"},
- {0x00, 0x17, 0x00, "Kabel"},
- {0x00, 0x80, 0x64, "Wyse Technology"},
- {0x00, 0x80, 0x2B, "IMAC (?)"},
- {0x00, 0x80, 0x2D, "Xylogics, Inc."},
- {0x00, 0x80, 0x8C, "Frontier Software Development"},
- {0x00, 0x80, 0xC2, "IEEE 802.1 Committee"},
- {0x00, 0x80, 0xD3, "Shiva"},
- {0x00, 0xAA, 0x00, "Intel"},
- {0x00, 0xDD, 0x00, "Ungermann-Bass"},
- {0x00, 0xDD, 0x01, "Ungermann-Bass"},
- {0x02, 0x07, 0x01, "Racal InterLan"},
- {0x02, 0x04, 0x06, "BBN internal usage"},
- {0x02, 0x60, 0x86, "Satelcom MegaPac"},
- {0x02, 0x60, 0x8C, "3Com"},
- {0x02, 0xCF, 0x1F, "CMC"},
- {0x08, 0x00, 0x02, "3Com"},
- {0x08, 0x00, 0x03, "ACC"},
- {0x08, 0x00, 0x05, "Symbolics"},
- {0x08, 0x00, 0x08, "BBN"},
- {0x08, 0x00, 0x09, "Hewlett-Packard"},
- {0x08, 0x00, 0x0A, "Nestar Systems"},
- {0x08, 0x00, 0x0B, "Unisys"},
- {0x08, 0x00, 0x11, "Tektronix"},
- {0x08, 0x00, 0x14, "Excelan"},
- {0x08, 0x00, 0x17, "NSC"},
- {0x08, 0x00, 0x1A, "Data General"},
- {0x08, 0x00, 0x1B, "Data General"},
- {0x08, 0x00, 0x1E, "Apollo"},
- {0x08, 0x00, 0x20, "Sun"},
- {0x08, 0x00, 0x22, "NBI"},
- {0x08, 0x00, 0x25, "CDC"},
- {0x08, 0x00, 0x26, "Norsk Data"},
- {0x08, 0x00, 0x27, "PCS Computer Systems GmbH"},
- {0x08, 0x00, 0x28, "Texas Instruments"},
- {0x08, 0x00, 0x2B, "DEC"},
- {0x08, 0x00, 0x2E, "Metaphor"},
- {0x08, 0x00, 0x2F, "Prime Computer"},
- {0x08, 0x00, 0x36, "Intergraph"},
- {0x08, 0x00, 0x37, "Fujitsu-Xerox"},
- {0x08, 0x00, 0x38, "Bull"},
- {0x08, 0x00, 0x39, "Spider Systems"},
- {0x08, 0x00, 0x41, "DCA Digital Comm. Assoc."},
- {0x08, 0x00, 0x45, "Xylogics (?)"},
- {0x08, 0x00, 0x46, "Sony"},
- {0x08, 0x00, 0x47, "Sequent"},
- {0x08, 0x00, 0x49, "Univation"},
- {0x08, 0x00, 0x4C, "Encore"},
- {0x08, 0x00, 0x4E, "BICC"},
- {0x08, 0x00, 0x56, "Stanford University"},
- {0x08, 0x00, 0x58, "DECsystem 20 (?)"},
- {0x08, 0x00, 0x5A, "IBM"},
- {0x08, 0x00, 0x67, "Comdesign"},
- {0x08, 0x00, 0x68, "Ridge"},
- {0x08, 0x00, 0x69, "Silicon Graphics"},
- {0x08, 0x00, 0x6E, "Concurrent"},
- {0x08, 0x00, 0x75, "DDE"},
- {0x08, 0x00, 0x7C, "Vitalink"},
- {0x08, 0x00, 0x80, "XIOS"},
- {0x08, 0x00, 0x86, "Imagen/QMS"},
- {0x08, 0x00, 0x87, "Xyplex"},
- {0x08, 0x00, 0x89, "Kinetics"},
- {0x08, 0x00, 0x8B, "Pyramid"},
- {0x08, 0x00, 0x8D, "XyVision"},
- {0x08, 0x00, 0x90, "Retix Inc"},
- {0x48, 0x44, 0x53, "HDS (?)"},
- {0x80, 0x00, 0x10, "AT&T"},
- {0xAA, 0x00, 0x00, "DEC"},
- {0xAA, 0x00, 0x01, "DEC"},
- {0xAA, 0x00, 0x02, "DEC"},
- {0xAA, 0x00, 0x03, "DEC"},
- {0xAA, 0x00, 0x04, "DEC"},
- {0x00, 0x00, 0x00, NULL}
+ {0x00, 0x00, 0x0C, "Cisco"},
+ {0x00, 0x00, 0x0E, "Fujitsu"},
+ {0x00, 0x00, 0x0F, "NeXT"},
+ {0x00, 0x00, 0x10, "Sytek"},
+ {0x00, 0x00, 0x1D, "Cabletron"},
+ {0x00, 0x00, 0x20, "DIAB"},
+ {0x00, 0x00, 0x22, "Visual Technology"},
+ {0x00, 0x00, 0x2A, "TRW"},
+ {0x00, 0x00, 0x32, "GPT Limited"},
+ {0x00, 0x00, 0x5A, "S & Koch"},
+ {0x00, 0x00, 0x5E, "IANA"},
+ {0x00, 0x00, 0x65, "Network General"},
+ {0x00, 0x00, 0x6B, "MIPS"},
+ {0x00, 0x00, 0x77, "MIPS"},
+ {0x00, 0x00, 0x7A, "Ardent"},
+ {0x00, 0x00, 0x89, "Cayman Systems"},
+ {0x00, 0x00, 0x93, "Proteon"},
+ {0x00, 0x00, 0x9F, "Ameristar Technology"},
+ {0x00, 0x00, 0xA2, "Wellfleet"},
+ {0x00, 0x00, 0xA3, "Network Application Technology"},
+ {0x00, 0x00, 0xA6, "Network General"},
+ {0x00, 0x00, 0xA7, "NCD"},
+ {0x00, 0x00, 0xA9, "Network Systems"},
+ {0x00, 0x00, 0xAA, "Xerox"},
+ {0x00, 0x00, 0xB3, "CIMLinc"},
+ {0x00, 0x00, 0xB7, "Dove Fastnet"},
+ {0x00, 0x00, 0xBC, "Allen-Bradley"},
+ {0x00, 0x00, 0xC0, "Western Digital"},
+ {0x00, 0x00, 0xC5, "Farallon"},
+ {0x00, 0x00, 0xC6, "Hewlett-Packard"},
+ {0x00, 0x00, 0xC8, "Altos"},
+ {0x00, 0x00, 0xC9, "Emulex"},
+ {0x00, 0x00, 0xD7, "Dartmouth College"},
+ {0x00, 0x00, 0xD8, "3Com (?)"},
+ {0x00, 0x00, 0xDD, "Gould"},
+ {0x00, 0x00, 0xDE, "Unigraph"},
+ {0x00, 0x00, 0xE2, "Acer Counterpoint"},
+ {0x00, 0x00, 0xEF, "Alantec"},
+ {0x00, 0x00, 0xFD, "High Level Hardware"},
+ {0x00, 0x01, 0x02, "BBN internal usage"},
+ {0x00, 0x20, 0xAF, "3Com"},
+ {0x00, 0x17, 0x00, "Kabel"},
+ {0x00, 0x80, 0x64, "Wyse Technology"},
+ {0x00, 0x80, 0x2B, "IMAC (?)"},
+ {0x00, 0x80, 0x2D, "Xylogics, Inc."},
+ {0x00, 0x80, 0x8C, "Frontier Software Development"},
+ {0x00, 0x80, 0xC2, "IEEE 802.1 Committee"},
+ {0x00, 0x80, 0xD3, "Shiva"},
+ {0x00, 0xAA, 0x00, "Intel"},
+ {0x00, 0xDD, 0x00, "Ungermann-Bass"},
+ {0x00, 0xDD, 0x01, "Ungermann-Bass"},
+ {0x02, 0x07, 0x01, "Racal InterLan"},
+ {0x02, 0x04, 0x06, "BBN internal usage"},
+ {0x02, 0x60, 0x86, "Satelcom MegaPac"},
+ {0x02, 0x60, 0x8C, "3Com"},
+ {0x02, 0xCF, 0x1F, "CMC"},
+ {0x08, 0x00, 0x02, "3Com"},
+ {0x08, 0x00, 0x03, "ACC"},
+ {0x08, 0x00, 0x05, "Symbolics"},
+ {0x08, 0x00, 0x08, "BBN"},
+ {0x08, 0x00, 0x09, "Hewlett-Packard"},
+ {0x08, 0x00, 0x0A, "Nestar Systems"},
+ {0x08, 0x00, 0x0B, "Unisys"},
+ {0x08, 0x00, 0x11, "Tektronix"},
+ {0x08, 0x00, 0x14, "Excelan"},
+ {0x08, 0x00, 0x17, "NSC"},
+ {0x08, 0x00, 0x1A, "Data General"},
+ {0x08, 0x00, 0x1B, "Data General"},
+ {0x08, 0x00, 0x1E, "Apollo"},
+ {0x08, 0x00, 0x20, "Sun"},
+ {0x08, 0x00, 0x22, "NBI"},
+ {0x08, 0x00, 0x25, "CDC"},
+ {0x08, 0x00, 0x26, "Norsk Data"},
+ {0x08, 0x00, 0x27, "PCS Computer Systems GmbH"},
+ {0x08, 0x00, 0x28, "Texas Instruments"},
+ {0x08, 0x00, 0x2B, "DEC"},
+ {0x08, 0x00, 0x2E, "Metaphor"},
+ {0x08, 0x00, 0x2F, "Prime Computer"},
+ {0x08, 0x00, 0x36, "Intergraph"},
+ {0x08, 0x00, 0x37, "Fujitsu-Xerox"},
+ {0x08, 0x00, 0x38, "Bull"},
+ {0x08, 0x00, 0x39, "Spider Systems"},
+ {0x08, 0x00, 0x41, "DCA Digital Comm. Assoc."},
+ {0x08, 0x00, 0x45, "Xylogics (?)"},
+ {0x08, 0x00, 0x46, "Sony"},
+ {0x08, 0x00, 0x47, "Sequent"},
+ {0x08, 0x00, 0x49, "Univation"},
+ {0x08, 0x00, 0x4C, "Encore"},
+ {0x08, 0x00, 0x4E, "BICC"},
+ {0x08, 0x00, 0x56, "Stanford University"},
+ {0x08, 0x00, 0x58, "DECsystem 20 (?)"},
+ {0x08, 0x00, 0x5A, "IBM"},
+ {0x08, 0x00, 0x67, "Comdesign"},
+ {0x08, 0x00, 0x68, "Ridge"},
+ {0x08, 0x00, 0x69, "Silicon Graphics"},
+ {0x08, 0x00, 0x6E, "Concurrent"},
+ {0x08, 0x00, 0x75, "DDE"},
+ {0x08, 0x00, 0x7C, "Vitalink"},
+ {0x08, 0x00, 0x80, "XIOS"},
+ {0x08, 0x00, 0x86, "Imagen/QMS"},
+ {0x08, 0x00, 0x87, "Xyplex"},
+ {0x08, 0x00, 0x89, "Kinetics"},
+ {0x08, 0x00, 0x8B, "Pyramid"},
+ {0x08, 0x00, 0x8D, "XyVision"},
+ {0x08, 0x00, 0x90, "Retix Inc"},
+ {0x48, 0x44, 0x53, "HDS (?)"},
+ {0x80, 0x00, 0x10, "AT&T"},
+ {0xAA, 0x00, 0x00, "DEC"},
+ {0xAA, 0x00, 0x01, "DEC"},
+ {0xAA, 0x00, 0x02, "DEC"},
+ {0xAA, 0x00, 0x03, "DEC"},
+ {0xAA, 0x00, 0x04, "DEC"},
+ {0x00, 0x00, 0x00, NULL}
};
/*
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index 11f70819420..dbbc54c3f82 100644
--- a/src/backend/utils/adt/nabstime.c
+++ b/src/backend/utils/adt/nabstime.c
@@ -4,7 +4,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: nabstime.c,v 1.54 1999/04/26 04:42:49 ishii Exp $
+ * $Id: nabstime.c,v 1.55 1999/05/25 16:12:09 momjian Exp $
*
*/
#include <stdio.h>
@@ -64,13 +64,18 @@ GetCurrentAbsoluteTime(void)
CDayLight = (tm->tm_isdst > 0);
#ifdef NOT_USED
+
/*
* XXX is there a better way to get local timezone string w/o
* tzname? - tgl 97/03/18
*/
strftime(CTZName, MAXTZLEN, "%Z", tm);
#endif
- /* XXX FreeBSD man pages indicate that this should work - thomas 1998-12-12 */
+
+ /*
+ * XXX FreeBSD man pages indicate that this should work - thomas
+ * 1998-12-12
+ */
strcpy(CTZName, tm->tm_zone);
#elif defined(HAVE_INT_TIMEZONE)
@@ -79,10 +84,10 @@ GetCurrentAbsoluteTime(void)
CDayLight = tm->tm_isdst;
CTimeZone =
#ifdef __CYGWIN32__
- (tm->tm_isdst ? (_timezone - 3600) : _timezone);
+ (tm->tm_isdst ? (_timezone - 3600) : _timezone);
#else
- (tm->tm_isdst ? (timezone - 3600) : timezone);
-#endif
+ (tm->tm_isdst ? (timezone - 3600) : timezone);
+#endif
strcpy(CTZName, tzname[tm->tm_isdst]);
#else
#error USE_POSIX_TIME defined but no time zone available
@@ -91,8 +96,9 @@ GetCurrentAbsoluteTime(void)
CTimeZone = tb.timezone * 60;
CDayLight = (tb.dstflag != 0);
- /* XXX does this work to get the local timezone string in V7?
- * - tgl 97/03/18
+ /*
+ * XXX does this work to get the local timezone string in V7? -
+ * tgl 97/03/18
*/
strftime(CTZName, MAXTZLEN, "%Z", localtime(&now));
#endif
@@ -389,6 +395,7 @@ AbsoluteTimeIsAfter(AbsoluteTime time1, AbsoluteTime time2)
return time1 > time2;
}
+
#endif
/* abstime_finite()
diff --git a/src/backend/utils/adt/name.c b/src/backend/utils/adt/name.c
index d49eb9cb23c..1780df2c427 100644
--- a/src/backend/utils/adt/name.c
+++ b/src/backend/utils/adt/name.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.17 1999/02/13 23:19:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.18 1999/05/25 16:12:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -161,6 +161,7 @@ namecmp(Name n1, Name n2)
{
return strncmp(n1->data, n2->data, NAMEDATALEN);
}
+
#endif
int
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 12f28ccce76..cd86ec6f3d5 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -3,7 +3,7 @@
* is for IP V4 CIDR notation, but prepared for V6: just
* add the necessary bits where the comments indicate.
*
- * $Id: network.c,v 1.8 1999/04/15 02:20:50 thomas Exp $
+ * $Id: network.c,v 1.9 1999/05/25 16:12:11 momjian Exp $
* Jon Postel RIP 16 Oct 1998
*/
@@ -52,7 +52,7 @@ network_in(char *src, int type)
if (!src)
return NULL;
-
+
dst = palloc(VARHDRSZ + sizeof(inet_struct));
if (dst == NULL)
elog(ERROR, "unable to allocate memory in network_in()");
@@ -60,7 +60,7 @@ network_in(char *src, int type)
/* First, try for an IP V4 address: */
ip_family(dst) = AF_INET;
bits = inet_net_pton(ip_family(dst), src, &ip_v4addr(dst),
- type ? ip_addrsize(dst) : -1);
+ type ? ip_addrsize(dst) : -1);
if ((bits < 0) || (bits > 32))
/* Go for an IPV6 address here, before faulting out: */
elog(ERROR, "could not parse \"%s\"", src);
@@ -102,10 +102,10 @@ inet_out(inet *src)
/* It's an IP V4 address: */
if (ip_type(src))
dst = inet_cidr_ntop(AF_INET, &ip_v4addr(src), ip_bits(src),
- tmp, sizeof(tmp));
+ tmp, sizeof(tmp));
else
dst = inet_net_ntop(AF_INET, &ip_v4addr(src), ip_bits(src),
- tmp, sizeof(tmp));
+ tmp, sizeof(tmp));
if (dst == NULL)
elog(ERROR, "unable to print address (%s)", strerror(errno));
@@ -222,7 +222,7 @@ network_sub(inet *a1, inet *a2)
{
if (!PointerIsValid(a1) || !PointerIsValid(a2))
return FALSE;
-
+
if ((ip_family(a1) == AF_INET) && (ip_family(a2) == AF_INET))
{
return ((ip_bits(a1) > ip_bits(a2))
@@ -370,7 +370,7 @@ network_broadcast(inet *ip)
if (ip_family(ip) == AF_INET)
{
/* It's an IP V4 address: */
- int addr;
+ int addr;
unsigned long mask = 0xffffffff;
if (ip_bits(ip) < 32)
@@ -402,7 +402,7 @@ network_network(inet *ip)
{
text *ret;
int len;
- char tmp[sizeof("255.255.255.255/32")];
+ char tmp[sizeof("255.255.255.255/32")];
if (!PointerIsValid(ip))
return NULL;
@@ -410,8 +410,8 @@ network_network(inet *ip)
if (ip_family(ip) == AF_INET)
{
/* It's an IP V4 address: */
- int addr = htonl(ntohl(ip_v4addr(ip)) & (0xffffffff << (32 - ip_bits(ip))));
-
+ int addr = htonl(ntohl(ip_v4addr(ip)) & (0xffffffff << (32 - ip_bits(ip))));
+
if (inet_cidr_ntop(AF_INET, &addr, ip_bits(ip), tmp, sizeof(tmp)) == NULL)
elog(ERROR, "unable to print network (%s)", strerror(errno));
diff --git a/src/backend/utils/adt/not_in.c b/src/backend/utils/adt/not_in.c
index 62a76c83692..7082b0d007e 100644
--- a/src/backend/utils/adt/not_in.c
+++ b/src/backend/utils/adt/not_in.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.15 1999/03/15 03:24:32 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.16 1999/05/25 16:12:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,18 +47,16 @@ int4notin(int32 not_in_arg, char *relation_and_attr)
int attrid;
char *relation,
*attribute;
- char my_copy[NAMEDATALEN*2+2];
+ char my_copy[NAMEDATALEN * 2 + 2];
Datum value;
strncpy(my_copy, relation_and_attr, sizeof(my_copy));
- my_copy[sizeof(my_copy)-1] = '\0';
+ my_copy[sizeof(my_copy) - 1] = '\0';
relation = (char *) strtok(my_copy, ".");
attribute = (char *) strtok(NULL, ".");
if (attribute == NULL)
- {
elog(ERROR, "int4notin: must provide relationname.attributename");
- }
/* Open the relation and get a relation descriptor */
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index b1a86986ac0..e9e5a28c363 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -5,7 +5,7 @@
*
* 1998 Jan Wieck
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.13 1999/05/10 18:17:44 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.14 1999/05/25 16:12:14 momjian Exp $
*
* ----------
*/
@@ -41,10 +41,10 @@
#define NUMERIC_MAX_FREEBUFS 20
#ifndef MIN
-# define MIN(a,b) (((a)<(b)) ? (a) : (b))
+#define MIN(a,b) (((a)<(b)) ? (a) : (b))
#endif
#ifndef MAX
-# define MAX(a,b) (((a)>(b)) ? (a) : (b))
+#define MAX(a,b) (((a)>(b)) ? (a) : (b))
#endif
#ifndef NAN
@@ -56,52 +56,54 @@
* Local data types
* ----------
*/
-typedef unsigned char NumericDigit;
+typedef unsigned char NumericDigit;
-typedef struct NumericDigitBuf {
- struct NumericDigitBuf *prev;
- struct NumericDigitBuf *next;
- int size;
-} NumericDigitBuf;
+typedef struct NumericDigitBuf
+{
+ struct NumericDigitBuf *prev;
+ struct NumericDigitBuf *next;
+ int size;
+} NumericDigitBuf;
-typedef struct NumericVar {
- int ndigits;
- int weight;
- int rscale;
- int dscale;
- int sign;
- NumericDigitBuf *buf;
- NumericDigit *digits;
-} NumericVar;
+typedef struct NumericVar
+{
+ int ndigits;
+ int weight;
+ int rscale;
+ int dscale;
+ int sign;
+ NumericDigitBuf *buf;
+ NumericDigit *digits;
+} NumericVar;
/* ----------
* Local data
* ----------
*/
-static NumericDigitBuf *digitbuf_freelist = NULL;
-static NumericDigitBuf *digitbuf_usedlist = NULL;
-static int digitbuf_nfree = 0;
-static int global_rscale = NUMERIC_MIN_RESULT_SCALE;
+static NumericDigitBuf *digitbuf_freelist = NULL;
+static NumericDigitBuf *digitbuf_usedlist = NULL;
+static int digitbuf_nfree = 0;
+static int global_rscale = NUMERIC_MIN_RESULT_SCALE;
/* ----------
* Some preinitialized variables we need often
* ----------
*/
-static NumericDigit const_zero_data[1] = {0};
-static NumericVar const_zero =
- {0, 0, 0, 0, NUMERIC_POS, NULL, const_zero_data};
+static NumericDigit const_zero_data[1] = {0};
+static NumericVar const_zero =
+{0, 0, 0, 0, NUMERIC_POS, NULL, const_zero_data};
-static NumericDigit const_one_data[1] = {1};
-static NumericVar const_one =
- {1, 0, 0, 0, NUMERIC_POS, NULL, const_one_data};
+static NumericDigit const_one_data[1] = {1};
+static NumericVar const_one =
+{1, 0, 0, 0, NUMERIC_POS, NULL, const_one_data};
-static NumericDigit const_two_data[1] = {2};
-static NumericVar const_two =
- {1, 0, 0, 0, NUMERIC_POS, NULL, const_two_data};
+static NumericDigit const_two_data[1] = {2};
+static NumericVar const_two =
+{1, 0, 0, 0, NUMERIC_POS, NULL, const_two_data};
-static NumericVar const_nan =
- {0, 0, 0, 0, NUMERIC_NAN, NULL, NULL};
+static NumericVar const_nan =
+{0, 0, 0, 0, NUMERIC_NAN, NULL, NULL};
@@ -112,44 +114,45 @@ static NumericVar const_nan =
#ifdef NUMERIC_DEBUG
static void dump_numeric(char *str, Numeric num);
-static void dump_var(char *str, NumericVar *var);
+static void dump_var(char *str, NumericVar * var);
+
#else
#define dump_numeric(s,n)
#define dump_var(s,v)
#endif
static NumericDigitBuf *digitbuf_alloc(int size);
-static void digitbuf_free(NumericDigitBuf *buf);
+static void digitbuf_free(NumericDigitBuf * buf);
#define init_var(v) memset(v,0,sizeof(NumericVar))
-static void free_var(NumericVar *var);
+static void free_var(NumericVar * var);
static void free_allvars(void);
-static void set_var_from_str(char *str, NumericVar *dest);
-static void set_var_from_num(Numeric value, NumericVar *dest);
-static void set_var_from_var(NumericVar *value, NumericVar *dest);
-static Numeric make_result(NumericVar *var);
+static void set_var_from_str(char *str, NumericVar * dest);
+static void set_var_from_num(Numeric value, NumericVar * dest);
+static void set_var_from_var(NumericVar * value, NumericVar * dest);
+static Numeric make_result(NumericVar * var);
-static void apply_typmod(NumericVar *var, int32 typmod);
+static void apply_typmod(NumericVar * var, int32 typmod);
-static int cmp_var(NumericVar *var1, NumericVar *var2);
-static void add_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
-static void sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
-static void mul_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
-static void div_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
-static void mod_var(NumericVar *var1, NumericVar *var2, NumericVar *result);
-static void ceil_var(NumericVar *var, NumericVar *result);
-static void floor_var(NumericVar *var, NumericVar *result);
+static int cmp_var(NumericVar * var1, NumericVar * var2);
+static void add_var(NumericVar * var1, NumericVar * var2, NumericVar * result);
+static void sub_var(NumericVar * var1, NumericVar * var2, NumericVar * result);
+static void mul_var(NumericVar * var1, NumericVar * var2, NumericVar * result);
+static void div_var(NumericVar * var1, NumericVar * var2, NumericVar * result);
+static void mod_var(NumericVar * var1, NumericVar * var2, NumericVar * result);
+static void ceil_var(NumericVar * var, NumericVar * result);
+static void floor_var(NumericVar * var, NumericVar * result);
-static void sqrt_var(NumericVar *arg, NumericVar *result);
-static void exp_var(NumericVar *arg, NumericVar *result);
-static void ln_var(NumericVar *arg, NumericVar *result);
-static void log_var(NumericVar *base, NumericVar *num, NumericVar *result);
-static void power_var(NumericVar *base, NumericVar *exp, NumericVar *result);
+static void sqrt_var(NumericVar * arg, NumericVar * result);
+static void exp_var(NumericVar * arg, NumericVar * result);
+static void ln_var(NumericVar * arg, NumericVar * result);
+static void log_var(NumericVar * base, NumericVar * num, NumericVar * result);
+static void power_var(NumericVar * base, NumericVar * exp, NumericVar * result);
-static int cmp_abs(NumericVar *var1, NumericVar *var2);
-static void add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result);
-static void sub_abs(NumericVar *var1, NumericVar *var2, NumericVar *result);
+static int cmp_abs(NumericVar * var1, NumericVar * var2);
+static void add_abs(NumericVar * var1, NumericVar * var2, NumericVar * result);
+static void sub_abs(NumericVar * var1, NumericVar * var2, NumericVar * result);
@@ -216,8 +219,8 @@ numeric_in(char *str, int dummy, int32 typmod)
char *
numeric_out(Numeric num)
{
- char *str;
- char *cp;
+ char *str;
+ char *cp;
NumericVar x;
int i;
int d;
@@ -257,7 +260,7 @@ numeric_out(Numeric num)
*/
str = palloc(x.dscale + MAX(0, x.weight) + 5);
cp = str;
-
+
/* ----------
* Output a dash for negative values
* ----------
@@ -272,8 +275,8 @@ numeric_out(Numeric num)
*/
if (x.dscale < x.rscale && (x.dscale + x.weight + 1) < x.ndigits)
{
- int j;
- int carry;
+ int j;
+ int carry;
j = x.dscale + x.weight + 1;
carry = (x.digits[j] > 4) ? 1 : 0;
@@ -342,7 +345,7 @@ numeric_out(Numeric num)
*
* This is a special function called by the Postgres database system
* before a value is stored in a tuples attribute. The precision and
- * scale of the attribute have to be applied on the value.
+ * scale of the attribute have to be applied on the value.
* ----------
*/
Numeric
@@ -374,9 +377,9 @@ numeric(Numeric num, int32 typmod)
* copy of the input value
* ----------
*/
- if (typmod < (int32)(VARHDRSZ))
+ if (typmod < (int32) (VARHDRSZ))
{
- new = (Numeric)palloc(num->varlen);
+ new = (Numeric) palloc(num->varlen);
memcpy(new, num, num->varlen);
return new;
}
@@ -387,7 +390,7 @@ numeric(Numeric num, int32 typmod)
*/
tmp_typmod = typmod - VARHDRSZ;
precision = (tmp_typmod >> 16) & 0xffff;
- scale = tmp_typmod & 0xffff;
+ scale = tmp_typmod & 0xffff;
maxweight = precision - scale;
/* ----------
@@ -398,11 +401,11 @@ numeric(Numeric num, int32 typmod)
*/
if (num->n_weight < maxweight && scale >= num->n_rscale)
{
- new = (Numeric)palloc(num->varlen);
+ new = (Numeric) palloc(num->varlen);
memcpy(new, num, num->varlen);
new->n_rscale = scale;
- new->n_sign_dscale = NUMERIC_SIGN(new) |
- ((uint16)scale & ~NUMERIC_SIGN_MASK);
+ new->n_sign_dscale = NUMERIC_SIGN(new) |
+ ((uint16) scale & ~NUMERIC_SIGN_MASK);
return new;
}
@@ -454,7 +457,7 @@ numeric_abs(Numeric num)
* Do it the easy way directly on the packed format
* ----------
*/
- res = (Numeric)palloc(num->varlen);
+ res = (Numeric) palloc(num->varlen);
memcpy(res, num, num->varlen);
res->n_sign_dscale = NUMERIC_POS | NUMERIC_DSCALE(num);
@@ -492,9 +495,7 @@ numeric_sign(Numeric num)
* ----------
*/
if (num->varlen == NUMERIC_HDRSZ)
- {
set_var_from_var(&const_zero, &result);
- }
else
{
/* ----------
@@ -523,7 +524,7 @@ Numeric
numeric_round(Numeric num, int32 scale)
{
int32 typmod;
- int precision;
+ int precision;
/* ----------
* Handle NULL
@@ -547,7 +548,7 @@ numeric_round(Numeric num, int32 scale)
{
free_allvars();
elog(ERROR, "illegal numeric scale %d - must be between 0 and %d",
- scale, NUMERIC_MAX_DISPLAY_SCALE);
+ scale, NUMERIC_MAX_DISPLAY_SCALE);
}
/* ----------
@@ -569,8 +570,8 @@ numeric_round(Numeric num, int32 scale)
Numeric
numeric_trunc(Numeric num, int32 scale)
{
- Numeric res;
- NumericVar arg;
+ Numeric res;
+ NumericVar arg;
/* ----------
* Handle NULL
@@ -594,7 +595,7 @@ numeric_trunc(Numeric num, int32 scale)
{
free_allvars();
elog(ERROR, "illegal numeric scale %d - must be between 0 and %d",
- scale, NUMERIC_MAX_DISPLAY_SCALE);
+ scale, NUMERIC_MAX_DISPLAY_SCALE);
}
/* ----------
@@ -609,9 +610,7 @@ numeric_trunc(Numeric num, int32 scale)
arg.ndigits = MIN(arg.ndigits, MAX(0, arg.weight + scale + 1));
while (arg.ndigits > 0 && arg.digits[arg.ndigits - 1] == 0)
- {
arg.ndigits--;
- }
/* ----------
* Return the truncated result
@@ -1085,7 +1084,7 @@ numeric_div(Numeric num1, Numeric num2)
* numeric.h):
*
* DR = MIN(MAX(D1 + D2, MIN_DISPLAY_SCALE))
- * SR = MIN(MAX(MAX(S1 + S2, MIN_RESULT_SCALE), DR + 4), MAX_RESULT_SCALE)
+ * SR = MIN(MAX(MAX(S1 + S2, MIN_RESULT_SCALE), DR + 4), MAX_RESULT_SCALE)
*
* By default, any result is computed with a minimum of 34 digits
* after the decimal point or at least with 4 digits more than
@@ -1094,7 +1093,7 @@ numeric_div(Numeric num1, Numeric num2)
*/
res_dscale = MAX(arg1.dscale + arg2.dscale, NUMERIC_MIN_DISPLAY_SCALE);
res_dscale = MIN(res_dscale, NUMERIC_MAX_DISPLAY_SCALE);
- global_rscale = MAX(arg1.rscale + arg2.rscale,
+ global_rscale = MAX(arg1.rscale + arg2.rscale,
NUMERIC_MIN_RESULT_SCALE);
global_rscale = MAX(global_rscale, res_dscale + 4);
global_rscale = MIN(global_rscale, NUMERIC_MAX_RESULT_SCALE);
@@ -1358,10 +1357,10 @@ numeric_larger(Numeric num1, Numeric num2)
Numeric
numeric_sqrt(Numeric num)
{
- Numeric res;
- NumericVar arg;
- NumericVar result;
- int res_dscale;
+ Numeric res;
+ NumericVar arg;
+ NumericVar result;
+ int res_dscale;
/* ----------
* Handle NULL
@@ -1415,10 +1414,10 @@ numeric_sqrt(Numeric num)
Numeric
numeric_exp(Numeric num)
{
- Numeric res;
- NumericVar arg;
- NumericVar result;
- int res_dscale;
+ Numeric res;
+ NumericVar arg;
+ NumericVar result;
+ int res_dscale;
/* ----------
* Handle NULL
@@ -1470,10 +1469,10 @@ numeric_exp(Numeric num)
Numeric
numeric_ln(Numeric num)
{
- Numeric res;
- NumericVar arg;
- NumericVar result;
- int res_dscale;
+ Numeric res;
+ NumericVar arg;
+ NumericVar result;
+ int res_dscale;
/* ----------
* Handle NULL
@@ -1525,11 +1524,11 @@ numeric_ln(Numeric num)
Numeric
numeric_log(Numeric num1, Numeric num2)
{
- Numeric res;
- NumericVar arg1;
- NumericVar arg2;
- NumericVar result;
- int res_dscale;
+ Numeric res;
+ NumericVar arg1;
+ NumericVar arg2;
+ NumericVar result;
+ int res_dscale;
/* ----------
* Handle NULL
@@ -1588,11 +1587,11 @@ numeric_log(Numeric num1, Numeric num2)
Numeric
numeric_power(Numeric num1, Numeric num2)
{
- Numeric res;
- NumericVar arg1;
- NumericVar arg2;
- NumericVar result;
- int res_dscale;
+ Numeric res;
+ NumericVar arg1;
+ NumericVar arg2;
+ NumericVar result;
+ int res_dscale;
/* ----------
* Handle NULL
@@ -1653,7 +1652,7 @@ int4_numeric(int32 val)
{
Numeric res;
NumericVar result;
- char *tmp;
+ char *tmp;
init_var(&result);
@@ -1671,7 +1670,7 @@ int4_numeric(int32 val)
int32
numeric_int4(Numeric num)
{
- char *tmp;
+ char *tmp;
int32 result;
if (num == NULL)
@@ -1717,7 +1716,7 @@ float8_numeric(float64 val)
float64
numeric_float8(Numeric num)
{
- char *tmp;
+ char *tmp;
float64 result;
if (num == NULL)
@@ -1725,7 +1724,7 @@ numeric_float8(Numeric num)
if (NUMERIC_IS_NAN(num))
{
- result = (float64)palloc(sizeof(float64data));
+ result = (float64) palloc(sizeof(float64data));
*result = NAN;
return result;
}
@@ -1743,7 +1742,7 @@ float4_numeric(float32 val)
{
Numeric res;
NumericVar result;
- char *tmp;
+ char *tmp;
if (val == NULL)
return NULL;
@@ -1767,7 +1766,7 @@ float4_numeric(float32 val)
float32
numeric_float4(Numeric num)
{
- char *tmp;
+ char *tmp;
float32 result;
if (num == NULL)
@@ -1775,7 +1774,7 @@ numeric_float4(Numeric num)
if (NUMERIC_IS_NAN(num))
{
- result = (float32)palloc(sizeof(float32data));
+ result = (float32) palloc(sizeof(float32data));
*result = NAN;
return result;
}
@@ -1805,26 +1804,28 @@ numeric_float4(Numeric num)
static void
dump_numeric(char *str, Numeric num)
{
- int i;
+ int i;
printf("%s: NUMERIC w=%d r=%d d=%d ", str, num->n_weight, num->n_rscale,
- NUMERIC_DSCALE(num));
+ NUMERIC_DSCALE(num));
switch (NUMERIC_SIGN(num))
{
- case NUMERIC_POS: printf("POS");
- break;
- case NUMERIC_NEG: printf("NEG");
- break;
- case NUMERIC_NAN: printf("NaN");
- break;
- default: printf("SIGN=0x%x", NUMERIC_SIGN(num));
- break;
+ case NUMERIC_POS:
+ printf("POS");
+ break;
+ case NUMERIC_NEG:
+ printf("NEG");
+ break;
+ case NUMERIC_NAN:
+ printf("NaN");
+ break;
+ default:
+ printf("SIGN=0x%x", NUMERIC_SIGN(num));
+ break;
}
for (i = 0; i < num->varlen - NUMERIC_HDRSZ; i++)
- {
printf(" %d %d", (num->n_data[i] >> 4) & 0x0f, num->n_data[i] & 0x0f);
- }
printf("\n");
}
@@ -1834,31 +1835,35 @@ dump_numeric(char *str, Numeric num)
* ----------
*/
static void
-dump_var(char *str, NumericVar *var)
+dump_var(char *str, NumericVar * var)
{
- int i;
+ int i;
printf("%s: VAR w=%d r=%d d=%d ", str, var->weight, var->rscale,
- var->dscale);
+ var->dscale);
switch (var->sign)
{
- case NUMERIC_POS: printf("POS");
- break;
- case NUMERIC_NEG: printf("NEG");
- break;
- case NUMERIC_NAN: printf("NaN");
- break;
- default: printf("SIGN=0x%x", var->sign);
- break;
+ case NUMERIC_POS:
+ printf("POS");
+ break;
+ case NUMERIC_NEG:
+ printf("NEG");
+ break;
+ case NUMERIC_NAN:
+ printf("NaN");
+ break;
+ default:
+ printf("SIGN=0x%x", var->sign);
+ break;
}
for (i = 0; i < var->ndigits; i++)
printf(" %d", var->digits[i]);
-
+
printf("\n");
}
-#endif /* NUMERIC_DEBUG */
+#endif /* NUMERIC_DEBUG */
/* ----------
@@ -1868,7 +1873,7 @@ dump_var(char *str, NumericVar *var)
* information (sign, scales etc.) and a digit buffer for the
* value itself. All the variable level functions are written in
* a style that makes it possible to give one and the same variable
- * as argument and result destination.
+ * as argument and result destination.
*
* The two functions below manage unused buffers in a free list
* as a try to reduce the number of malloc()/free() calls.
@@ -1877,8 +1882,8 @@ dump_var(char *str, NumericVar *var)
static NumericDigitBuf *
digitbuf_alloc(int size)
{
- NumericDigitBuf *buf;
- int asize;
+ NumericDigitBuf *buf;
+ int asize;
/* ----------
* Lookup the free list if there is a digit buffer of
@@ -1887,7 +1892,8 @@ digitbuf_alloc(int size)
*/
for (buf = digitbuf_freelist; buf != NULL; buf = buf->next)
{
- if (buf->size < size) continue;
+ if (buf->size < size)
+ continue;
/* ----------
* We found a free buffer that is big enough - remove it from
@@ -1930,7 +1936,7 @@ digitbuf_alloc(int size)
* ----------
*/
for (asize = NUMERIC_MIN_BUFSIZE; asize < size; asize *= 2);
- buf = (NumericDigitBuf *)malloc(sizeof(NumericDigitBuf) + asize);
+ buf = (NumericDigitBuf *) malloc(sizeof(NumericDigitBuf) + asize);
buf->size = asize;
/* ----------
@@ -1956,9 +1962,9 @@ digitbuf_alloc(int size)
* ----------
*/
static void
-digitbuf_free(NumericDigitBuf *buf)
+digitbuf_free(NumericDigitBuf * buf)
{
- NumericDigitBuf *smallest;
+ NumericDigitBuf *smallest;
if (buf == NULL)
return;
@@ -2042,12 +2048,12 @@ digitbuf_free(NumericDigitBuf *buf)
* ----------
*/
static void
-free_var(NumericVar *var)
+free_var(NumericVar * var)
{
if (var->buf != NULL)
{
digitbuf_free(var->buf);
- var->buf = NULL;
+ var->buf = NULL;
var->digits = NULL;
}
var->sign = NUMERIC_NAN;
@@ -2070,8 +2076,8 @@ free_var(NumericVar *var)
static void
free_allvars(void)
{
- NumericDigitBuf *buf;
- NumericDigitBuf *next;
+ NumericDigitBuf *buf;
+ NumericDigitBuf *next;
buf = digitbuf_usedlist;
while (buf != NULL)
@@ -2090,25 +2096,26 @@ free_allvars(void)
* ----------
*/
static void
-set_var_from_str(char *str, NumericVar *dest)
+set_var_from_str(char *str, NumericVar * dest)
{
- char *cp = str;
- bool have_dp = FALSE;
- int i = 1;
+ char *cp = str;
+ bool have_dp = FALSE;
+ int i = 1;
- while(*cp)
+ while (*cp)
{
- if (!isspace(*cp)) break;
+ if (!isspace(*cp))
+ break;
cp++;
}
digitbuf_free(dest->buf);
- dest->buf = digitbuf_alloc(strlen(cp) + 2);
- dest->digits = (NumericDigit *)(dest->buf) + sizeof(NumericDigitBuf);
+ dest->buf = digitbuf_alloc(strlen(cp) + 2);
+ dest->digits = (NumericDigit *) (dest->buf) + sizeof(NumericDigitBuf);
dest->digits[0] = 0;
- dest->weight = 0;
- dest->dscale = 0;
+ dest->weight = 0;
+ dest->dscale = 0;
switch (*cp)
{
@@ -2121,24 +2128,29 @@ set_var_from_str(char *str, NumericVar *dest)
case '6':
case '7':
case '8':
- case '9': dest->sign = NUMERIC_POS;
- break;
+ case '9':
+ dest->sign = NUMERIC_POS;
+ break;
- case '+': dest->sign = NUMERIC_POS;
- cp++;
- break;
+ case '+':
+ dest->sign = NUMERIC_POS;
+ cp++;
+ break;
- case '-': dest->sign = NUMERIC_NEG;
- cp++;
- break;
+ case '-':
+ dest->sign = NUMERIC_NEG;
+ cp++;
+ break;
- case '.': dest->sign = NUMERIC_POS;
- have_dp = TRUE;
- cp++;
- break;
+ case '.':
+ dest->sign = NUMERIC_POS;
+ have_dp = TRUE;
+ cp++;
+ break;
- default: free_allvars();
- elog(ERROR, "Bad numeric input format '%s'", str);
+ default:
+ free_allvars();
+ elog(ERROR, "Bad numeric input format '%s'", str);
}
if (*cp == '.')
@@ -2178,24 +2190,27 @@ set_var_from_str(char *str, NumericVar *dest)
case '6':
case '7':
case '8':
- case '9': dest->digits[i++] = *cp++ - '0';
- if (!have_dp)
- dest->weight++;
- else
- dest->dscale++;
- break;
-
- case '.': if (have_dp)
- {
- free_allvars();
- elog(ERROR, "Bad numeric input format '%s'", str);
- }
- have_dp = TRUE;
- cp++;
- break;
-
- default: free_allvars();
- elog(ERROR, "Bad numeric input format '%s'", str);
+ case '9':
+ dest->digits[i++] = *cp++ - '0';
+ if (!have_dp)
+ dest->weight++;
+ else
+ dest->dscale++;
+ break;
+
+ case '.':
+ if (have_dp)
+ {
+ free_allvars();
+ elog(ERROR, "Bad numeric input format '%s'", str);
+ }
+ have_dp = TRUE;
+ cp++;
+ break;
+
+ default:
+ free_allvars();
+ elog(ERROR, "Bad numeric input format '%s'", str);
}
}
dest->ndigits = i;
@@ -2223,18 +2238,18 @@ set_var_from_str(char *str, NumericVar *dest)
*
*/
static void
-set_var_from_num(Numeric num, NumericVar *dest)
+set_var_from_num(Numeric num, NumericVar * dest)
{
- NumericDigit *digit;
- int i;
- int n;
+ NumericDigit *digit;
+ int i;
+ int n;
n = num->varlen - NUMERIC_HDRSZ;
digitbuf_free(dest->buf);
dest->buf = digitbuf_alloc(n * 2 + 2);
- digit = ((NumericDigit *)(dest->buf)) + sizeof(NumericDigitBuf);
+ digit = ((NumericDigit *) (dest->buf)) + sizeof(NumericDigitBuf);
*digit++ = 0;
*digit++ = 0;
dest->digits = digit;
@@ -2243,7 +2258,7 @@ set_var_from_num(Numeric num, NumericVar *dest)
dest->weight = num->n_weight;
dest->rscale = num->n_rscale;
dest->dscale = NUMERIC_DSCALE(num);
- dest->sign = NUMERIC_SIGN(num);
+ dest->sign = NUMERIC_SIGN(num);
for (i = 0; i < n; i++)
{
@@ -2260,18 +2275,18 @@ set_var_from_num(Numeric num, NumericVar *dest)
* ----------
*/
static void
-set_var_from_var(NumericVar *value, NumericVar *dest)
+set_var_from_var(NumericVar * value, NumericVar * dest)
{
- NumericDigitBuf *newbuf;
- NumericDigit *newdigits;
+ NumericDigitBuf *newbuf;
+ NumericDigit *newdigits;
newbuf = digitbuf_alloc(value->ndigits);
- newdigits = ((NumericDigit *)newbuf) + sizeof(NumericDigitBuf);
+ newdigits = ((NumericDigit *) newbuf) + sizeof(NumericDigitBuf);
memcpy(newdigits, value->digits, value->ndigits);
digitbuf_free(dest->buf);
memcpy(dest, value, sizeof(NumericVar));
- dest->buf = newbuf;
+ dest->buf = newbuf;
dest->digits = newdigits;
}
@@ -2284,22 +2299,23 @@ set_var_from_var(NumericVar *value, NumericVar *dest)
* ----------
*/
static Numeric
-make_result(NumericVar *var)
+make_result(NumericVar * var)
{
- Numeric result;
- NumericDigit *digit = var->digits;
- int n;
- int weight = var->weight;
- int sign = var->sign;
- int i, j;
+ Numeric result;
+ NumericDigit *digit = var->digits;
+ int n;
+ int weight = var->weight;
+ int sign = var->sign;
+ int i,
+ j;
if (sign == NUMERIC_NAN)
{
- result = (Numeric)palloc(NUMERIC_HDRSZ);
+ result = (Numeric) palloc(NUMERIC_HDRSZ);
- result->varlen = NUMERIC_HDRSZ;
- result->n_weight = 0;
- result->n_rscale = 0;
+ result->varlen = NUMERIC_HDRSZ;
+ result->n_weight = 0;
+ result->n_rscale = 0;
result->n_sign_dscale = NUMERIC_NAN;
dump_numeric("make_result()", result);
@@ -2320,16 +2336,17 @@ make_result(NumericVar *var)
if (n == 0)
{
weight = 0;
- sign = NUMERIC_POS;
+ sign = NUMERIC_POS;
}
- result = (Numeric)palloc(NUMERIC_HDRSZ + (n + 1) / 2);
+ result = (Numeric) palloc(NUMERIC_HDRSZ + (n + 1) / 2);
result->varlen = NUMERIC_HDRSZ + (n + 1) / 2;
result->n_weight = weight;
result->n_rscale = var->rscale;
- result->n_sign_dscale = sign | ((uint16)(var->dscale) & ~NUMERIC_SIGN_MASK);
+ result->n_sign_dscale = sign | ((uint16) (var->dscale) & ~NUMERIC_SIGN_MASK);
- i = 0; j = 0;
+ i = 0;
+ j = 0;
while (j < n)
{
result->n_data[i] = digit[j++] << 4;
@@ -2351,33 +2368,33 @@ make_result(NumericVar *var)
* ----------
*/
static void
-apply_typmod(NumericVar *var, int32 typmod)
+apply_typmod(NumericVar * var, int32 typmod)
{
int precision;
int scale;
int maxweight;
int i;
- if (typmod < (int32)(VARHDRSZ))
+ if (typmod < (int32) (VARHDRSZ))
return;
typmod -= VARHDRSZ;
precision = (typmod >> 16) & 0xffff;
- scale = typmod & 0xffff;
+ scale = typmod & 0xffff;
maxweight = precision - scale;
if (var->weight >= maxweight)
{
free_allvars();
elog(ERROR, "overflow on numeric "
- "ABS(value) >= 10^%d for field with precision %d scale %d",
- var->weight, precision, scale);
+ "ABS(value) >= 10^%d for field with precision %d scale %d",
+ var->weight, precision, scale);
}
i = scale + var->weight + 1;
if (i >= 0 && var->ndigits > i)
{
- long carry = (var->digits[i] > 4) ? 1 : 0;
+ long carry = (var->digits[i] > 4) ? 1 : 0;
var->ndigits = i;
while (carry)
@@ -2395,9 +2412,7 @@ apply_typmod(NumericVar *var, int32 typmod)
}
}
else
- {
var->ndigits = MAX(0, MIN(i, var->ndigits));
- }
/* ----------
* Check for overflow again - rounding could have raised the
@@ -2408,8 +2423,8 @@ apply_typmod(NumericVar *var, int32 typmod)
{
free_allvars();
elog(ERROR, "overflow on numeric "
- "ABS(value) >= 10^%d for field with precision %d scale %d",
- var->weight, precision, scale);
+ "ABS(value) >= 10^%d for field with precision %d scale %d",
+ var->weight, precision, scale);
}
var->rscale = scale;
@@ -2424,7 +2439,7 @@ apply_typmod(NumericVar *var, int32 typmod)
* ----------
*/
static int
-cmp_var(NumericVar *var1, NumericVar *var2)
+cmp_var(NumericVar * var1, NumericVar * var2)
{
if (var1->ndigits == 0)
{
@@ -2463,7 +2478,7 @@ cmp_var(NumericVar *var1, NumericVar *var2)
* ----------
*/
static void
-add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
+add_var(NumericVar * var1, NumericVar * var2, NumericVar * result)
{
/* ----------
* Decide on the signs of the two variables what to do
@@ -2474,7 +2489,7 @@ add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
if (var2->sign == NUMERIC_POS)
{
/* ----------
- * Both are positive
+ * Both are positive
* result = +(ABS(var1) + ABS(var2))
* ----------
*/
@@ -2490,39 +2505,39 @@ add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
*/
switch (cmp_abs(var1, var2))
{
- case 0: /* ----------
- * ABS(var1) == ABS(var2)
- * result = ZERO
- * ----------
- */
- digitbuf_free(result->buf);
- result->buf = digitbuf_alloc(0);
- result->ndigits = 0;
- result->digits = ((NumericDigit *)(result->buf)) +
- sizeof(NumericDigitBuf);
- result->weight = 0;
- result->rscale = MAX(var1->rscale, var2->rscale);
- result->dscale = MAX(var1->dscale, var2->dscale);
- result->sign = NUMERIC_POS;
- break;
-
- case 1: /* ----------
- * ABS(var1) > ABS(var2)
- * result = +(ABS(var1) - ABS(var2))
- * ----------
- */
- sub_abs(var1, var2, result);
- result->sign = NUMERIC_POS;
- break;
-
- case -1: /* ----------
- * ABS(var1) < ABS(var2)
- * result = -(ABS(var2) - ABS(var1))
- * ----------
- */
- sub_abs(var2, var1, result);
- result->sign = NUMERIC_NEG;
- break;
+ case 0: /* ----------
+ * ABS(var1) == ABS(var2)
+ * result = ZERO
+ * ----------
+ */
+ digitbuf_free(result->buf);
+ result->buf = digitbuf_alloc(0);
+ result->ndigits = 0;
+ result->digits = ((NumericDigit *) (result->buf)) +
+ sizeof(NumericDigitBuf);
+ result->weight = 0;
+ result->rscale = MAX(var1->rscale, var2->rscale);
+ result->dscale = MAX(var1->dscale, var2->dscale);
+ result->sign = NUMERIC_POS;
+ break;
+
+ case 1: /* ----------
+ * ABS(var1) > ABS(var2)
+ * result = +(ABS(var1) - ABS(var2))
+ * ----------
+ */
+ sub_abs(var1, var2, result);
+ result->sign = NUMERIC_POS;
+ break;
+
+ case -1: /* ----------
+ * ABS(var1) < ABS(var2)
+ * result = -(ABS(var2) - ABS(var1))
+ * ----------
+ */
+ sub_abs(var2, var1, result);
+ result->sign = NUMERIC_NEG;
+ break;
}
}
}
@@ -2537,39 +2552,39 @@ add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
*/
switch (cmp_abs(var1, var2))
{
- case 0: /* ----------
- * ABS(var1) == ABS(var2)
- * result = ZERO
- * ----------
- */
- digitbuf_free(result->buf);
- result->buf = digitbuf_alloc(0);
- result->ndigits = 0;
- result->digits = ((NumericDigit *)(result->buf)) +
- sizeof(NumericDigitBuf);
- result->weight = 0;
- result->rscale = MAX(var1->rscale, var2->rscale);
- result->dscale = MAX(var1->dscale, var2->dscale);
- result->sign = NUMERIC_POS;
- break;
-
- case 1: /* ----------
- * ABS(var1) > ABS(var2)
- * result = -(ABS(var1) - ABS(var2))
- * ----------
- */
- sub_abs(var1, var2, result);
- result->sign = NUMERIC_NEG;
- break;
-
- case -1: /* ----------
- * ABS(var1) < ABS(var2)
- * result = +(ABS(var2) - ABS(var1))
- * ----------
- */
- sub_abs(var2, var1, result);
- result->sign = NUMERIC_POS;
- break;
+ case 0: /* ----------
+ * ABS(var1) == ABS(var2)
+ * result = ZERO
+ * ----------
+ */
+ digitbuf_free(result->buf);
+ result->buf = digitbuf_alloc(0);
+ result->ndigits = 0;
+ result->digits = ((NumericDigit *) (result->buf)) +
+ sizeof(NumericDigitBuf);
+ result->weight = 0;
+ result->rscale = MAX(var1->rscale, var2->rscale);
+ result->dscale = MAX(var1->dscale, var2->dscale);
+ result->sign = NUMERIC_POS;
+ break;
+
+ case 1: /* ----------
+ * ABS(var1) > ABS(var2)
+ * result = -(ABS(var1) - ABS(var2))
+ * ----------
+ */
+ sub_abs(var1, var2, result);
+ result->sign = NUMERIC_NEG;
+ break;
+
+ case -1: /* ----------
+ * ABS(var1) < ABS(var2)
+ * result = +(ABS(var2) - ABS(var1))
+ * ----------
+ */
+ sub_abs(var2, var1, result);
+ result->sign = NUMERIC_POS;
+ break;
}
}
else
@@ -2594,7 +2609,7 @@ add_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
static void
-sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
+sub_var(NumericVar * var1, NumericVar * var2, NumericVar * result)
{
/* ----------
* Decide on the signs of the two variables what to do
@@ -2621,39 +2636,39 @@ sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
*/
switch (cmp_abs(var1, var2))
{
- case 0: /* ----------
- * ABS(var1) == ABS(var2)
- * result = ZERO
- * ----------
- */
- digitbuf_free(result->buf);
- result->buf = digitbuf_alloc(0);
- result->ndigits = 0;
- result->digits = ((NumericDigit *)(result->buf)) +
- sizeof(NumericDigitBuf);
- result->weight = 0;
- result->rscale = MAX(var1->rscale, var2->rscale);
- result->dscale = MAX(var1->dscale, var2->dscale);
- result->sign = NUMERIC_POS;
- break;
-
- case 1: /* ----------
- * ABS(var1) > ABS(var2)
- * result = +(ABS(var1) - ABS(var2))
- * ----------
- */
- sub_abs(var1, var2, result);
- result->sign = NUMERIC_POS;
- break;
-
- case -1: /* ----------
- * ABS(var1) < ABS(var2)
- * result = -(ABS(var2) - ABS(var1))
- * ----------
- */
- sub_abs(var2, var1, result);
- result->sign = NUMERIC_NEG;
- break;
+ case 0: /* ----------
+ * ABS(var1) == ABS(var2)
+ * result = ZERO
+ * ----------
+ */
+ digitbuf_free(result->buf);
+ result->buf = digitbuf_alloc(0);
+ result->ndigits = 0;
+ result->digits = ((NumericDigit *) (result->buf)) +
+ sizeof(NumericDigitBuf);
+ result->weight = 0;
+ result->rscale = MAX(var1->rscale, var2->rscale);
+ result->dscale = MAX(var1->dscale, var2->dscale);
+ result->sign = NUMERIC_POS;
+ break;
+
+ case 1: /* ----------
+ * ABS(var1) > ABS(var2)
+ * result = +(ABS(var1) - ABS(var2))
+ * ----------
+ */
+ sub_abs(var1, var2, result);
+ result->sign = NUMERIC_POS;
+ break;
+
+ case -1: /* ----------
+ * ABS(var1) < ABS(var2)
+ * result = -(ABS(var2) - ABS(var1))
+ * ----------
+ */
+ sub_abs(var2, var1, result);
+ result->sign = NUMERIC_NEG;
+ break;
}
}
}
@@ -2668,39 +2683,39 @@ sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
*/
switch (cmp_abs(var1, var2))
{
- case 0: /* ----------
- * ABS(var1) == ABS(var2)
- * result = ZERO
- * ----------
- */
- digitbuf_free(result->buf);
- result->buf = digitbuf_alloc(0);
- result->ndigits = 0;
- result->digits = ((NumericDigit *)(result->buf)) +
- sizeof(NumericDigitBuf);
- result->weight = 0;
- result->rscale = MAX(var1->rscale, var2->rscale);
- result->dscale = MAX(var1->dscale, var2->dscale);
- result->sign = NUMERIC_POS;
- break;
-
- case 1: /* ----------
- * ABS(var1) > ABS(var2)
- * result = -(ABS(var1) - ABS(var2))
- * ----------
- */
- sub_abs(var1, var2, result);
- result->sign = NUMERIC_NEG;
- break;
-
- case -1: /* ----------
- * ABS(var1) < ABS(var2)
- * result = +(ABS(var2) - ABS(var1))
- * ----------
- */
- sub_abs(var2, var1, result);
- result->sign = NUMERIC_POS;
- break;
+ case 0: /* ----------
+ * ABS(var1) == ABS(var2)
+ * result = ZERO
+ * ----------
+ */
+ digitbuf_free(result->buf);
+ result->buf = digitbuf_alloc(0);
+ result->ndigits = 0;
+ result->digits = ((NumericDigit *) (result->buf)) +
+ sizeof(NumericDigitBuf);
+ result->weight = 0;
+ result->rscale = MAX(var1->rscale, var2->rscale);
+ result->dscale = MAX(var1->dscale, var2->dscale);
+ result->sign = NUMERIC_POS;
+ break;
+
+ case 1: /* ----------
+ * ABS(var1) > ABS(var2)
+ * result = -(ABS(var1) - ABS(var2))
+ * ----------
+ */
+ sub_abs(var1, var2, result);
+ result->sign = NUMERIC_NEG;
+ break;
+
+ case -1: /* ----------
+ * ABS(var1) < ABS(var2)
+ * result = +(ABS(var2) - ABS(var1))
+ * ----------
+ */
+ sub_abs(var2, var1, result);
+ result->sign = NUMERIC_POS;
+ break;
}
}
else
@@ -2725,17 +2740,20 @@ sub_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
static void
-mul_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
+mul_var(NumericVar * var1, NumericVar * var2, NumericVar * result)
{
- NumericDigitBuf *res_buf;
- NumericDigit *res_digits;
- int res_ndigits;
- int res_weight;
- int res_sign;
- int i, ri, i1, i2;
- long sum = 0;
-
- res_weight = var1->weight + var2->weight + 2;
+ NumericDigitBuf *res_buf;
+ NumericDigit *res_digits;
+ int res_ndigits;
+ int res_weight;
+ int res_sign;
+ int i,
+ ri,
+ i1,
+ i2;
+ long sum = 0;
+
+ res_weight = var1->weight + var2->weight + 2;
res_ndigits = var1->ndigits + var2->ndigits + 1;
if (var1->sign == var2->sign)
res_sign = NUMERIC_POS;
@@ -2743,7 +2761,7 @@ mul_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
res_sign = NUMERIC_NEG;
res_buf = digitbuf_alloc(res_ndigits);
- res_digits = ((NumericDigit *)res_buf) + sizeof(NumericDigitBuf);
+ res_digits = ((NumericDigit *) res_buf) + sizeof(NumericDigitBuf);
memset(res_digits, 0, res_ndigits);
ri = res_ndigits;
@@ -2782,23 +2800,21 @@ mul_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
res_ndigits--;
}
while (res_ndigits > 0 && res_digits[res_ndigits - 1] == 0)
- {
res_ndigits--;
- }
if (res_ndigits == 0)
{
- res_sign = NUMERIC_POS;
+ res_sign = NUMERIC_POS;
res_weight = 0;
}
digitbuf_free(result->buf);
- result->buf = res_buf;
- result->digits = res_digits;
+ result->buf = res_buf;
+ result->digits = res_digits;
result->ndigits = res_ndigits;
- result->weight = res_weight;
- result->rscale = global_rscale;
- result->sign = res_sign;
+ result->weight = res_weight;
+ result->rscale = global_rscale;
+ result->sign = res_sign;
}
@@ -2809,24 +2825,24 @@ mul_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
static void
-div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
-{
- NumericDigit *res_digits;
- int res_ndigits;
- int res_sign;
- int res_weight;
- NumericVar dividend;
- NumericVar divisor[10];
- int ndigits_tmp;
- int weight_tmp;
- int rscale_tmp;
- int ri;
- int i;
- long guess;
- long first_have;
- long first_div;
- int first_nextdigit;
- int stat = 0;
+div_var(NumericVar * var1, NumericVar * var2, NumericVar * result)
+{
+ NumericDigit *res_digits;
+ int res_ndigits;
+ int res_sign;
+ int res_weight;
+ NumericVar dividend;
+ NumericVar divisor[10];
+ int ndigits_tmp;
+ int weight_tmp;
+ int rscale_tmp;
+ int ri;
+ int i;
+ long guess;
+ long first_have;
+ long first_div;
+ int first_nextdigit;
+ int stat = 0;
/* ----------
* First of all division by zero check
@@ -2858,11 +2874,11 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
{
digitbuf_free(result->buf);
result->buf = digitbuf_alloc(0);
- result->digits = ((NumericDigit *)(result->buf)) + sizeof(NumericDigitBuf);
+ result->digits = ((NumericDigit *) (result->buf)) + sizeof(NumericDigitBuf);
result->ndigits = 0;
- result->weight = 0;
- result->rscale = global_rscale;
- result->sign = NUMERIC_POS;
+ result->weight = 0;
+ result->rscale = global_rscale;
+ result->sign = NUMERIC_POS;
return;
}
@@ -2872,21 +2888,19 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
*/
init_var(&dividend);
for (i = 1; i < 10; i++)
- {
init_var(&divisor[i]);
- }
/* ----------
* Make a copy of the divisor which has one leading zero digit
* ----------
*/
- divisor[1].ndigits = ndigits_tmp;
- divisor[1].rscale = var2->ndigits;
- divisor[1].sign = NUMERIC_POS;
- divisor[1].buf = digitbuf_alloc(ndigits_tmp);
- divisor[1].digits = ((NumericDigit *)(divisor[1].buf)) +
- sizeof(NumericDigitBuf);
+ divisor[1].ndigits = ndigits_tmp;
+ divisor[1].rscale = var2->ndigits;
+ divisor[1].sign = NUMERIC_POS;
+ divisor[1].buf = digitbuf_alloc(ndigits_tmp);
+ divisor[1].digits = ((NumericDigit *) (divisor[1].buf)) +
+ sizeof(NumericDigitBuf);
divisor[1].digits[0] = 0;
memcpy(&(divisor[1].digits[1]), var2->digits, ndigits_tmp - 1);
@@ -2895,11 +2909,11 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
dividend.ndigits = var1->ndigits;
- dividend.weight = 0;
- dividend.rscale = var1->ndigits;
- dividend.sign = NUMERIC_POS;
- dividend.buf = digitbuf_alloc(var1->ndigits);
- dividend.digits = ((NumericDigit *)(dividend.buf)) + sizeof(NumericDigitBuf);
+ dividend.weight = 0;
+ dividend.rscale = var1->ndigits;
+ dividend.sign = NUMERIC_POS;
+ dividend.buf = digitbuf_alloc(var1->ndigits);
+ dividend.digits = ((NumericDigit *) (dividend.buf)) + sizeof(NumericDigitBuf);
memcpy(dividend.digits, var1->digits, var1->ndigits);
/* ----------
@@ -2908,18 +2922,18 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
*/
digitbuf_free(result->buf);
result->buf = digitbuf_alloc(res_ndigits + 2);
- res_digits = ((NumericDigit *)(result->buf)) + sizeof(NumericDigitBuf);
+ res_digits = ((NumericDigit *) (result->buf)) + sizeof(NumericDigitBuf);
result->digits = res_digits;
result->ndigits = res_ndigits;
- result->weight = res_weight;
- result->rscale = global_rscale;
- result->sign = res_sign;
+ result->weight = res_weight;
+ result->rscale = global_rscale;
+ result->sign = res_sign;
res_digits[0] = 0;
first_div = divisor[1].digits[1] * 10;
if (ndigits_tmp > 2)
first_div += divisor[1].digits[2];
-
+
first_have = 0;
first_nextdigit = 0;
@@ -2941,13 +2955,13 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
{
if (divisor[guess].buf == NULL)
{
- int i;
- long sum = 0;
+ int i;
+ long sum = 0;
memcpy(&divisor[guess], &divisor[1], sizeof(NumericVar));
divisor[guess].buf = digitbuf_alloc(divisor[guess].ndigits);
- divisor[guess].digits = ((NumericDigit *)(divisor[guess].buf) +
- sizeof(NumericDigitBuf));
+ divisor[guess].digits = ((NumericDigit *) (divisor[guess].buf) +
+ sizeof(NumericDigitBuf));
for (i = divisor[1].ndigits - 1; i >= 0; i--)
{
sum += divisor[1].digits[i] * guess;
@@ -2960,7 +2974,8 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
divisor[guess].rscale = rscale_tmp;
stat = cmp_abs(&dividend, &divisor[guess]);
- if (stat >= 0) break;
+ if (stat >= 0)
+ break;
guess--;
}
@@ -2990,12 +3005,12 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
result->ndigits = ri + 1;
if (ri == res_ndigits + 1)
{
- long carry = (res_digits[ri] > 4) ? 1 : 0;
+ long carry = (res_digits[ri] > 4) ? 1 : 0;
result->ndigits = ri;
res_digits[ri] = 0;
- while(carry && ri > 0)
+ while (carry && ri > 0)
{
carry += res_digits[--ri];
res_digits[ri] = carry % 10;
@@ -3010,9 +3025,7 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
(result->ndigits)--;
}
while (result->ndigits > 0 && result->digits[result->ndigits - 1] == 0)
- {
(result->ndigits)--;
- }
if (result->ndigits == 0)
result->sign = NUMERIC_POS;
@@ -3033,10 +3046,10 @@ div_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
static void
-mod_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
+mod_var(NumericVar * var1, NumericVar * var2, NumericVar * result)
{
- NumericVar tmp;
- int save_global_rscale;
+ NumericVar tmp;
+ int save_global_rscale;
init_var(&tmp);
@@ -3070,9 +3083,9 @@ mod_var(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
static void
-ceil_var(NumericVar *var, NumericVar *result)
+ceil_var(NumericVar * var, NumericVar * result)
{
- NumericVar tmp;
+ NumericVar tmp;
init_var(&tmp);
set_var_from_var(var, &tmp);
@@ -3095,9 +3108,9 @@ ceil_var(NumericVar *var, NumericVar *result)
* ----------
*/
static void
-floor_var(NumericVar *var, NumericVar *result)
+floor_var(NumericVar * var, NumericVar * result)
{
- NumericVar tmp;
+ NumericVar tmp;
init_var(&tmp);
set_var_from_var(var, &tmp);
@@ -3119,14 +3132,14 @@ floor_var(NumericVar *var, NumericVar *result)
* ----------
*/
static void
-sqrt_var(NumericVar *arg, NumericVar *result)
+sqrt_var(NumericVar * arg, NumericVar * result)
{
- NumericVar tmp_arg;
- NumericVar tmp_val;
- NumericVar last_val;
- int res_rscale;
- int save_global_rscale;
- int stat;
+ NumericVar tmp_arg;
+ NumericVar tmp_val;
+ NumericVar last_val;
+ int res_rscale;
+ int save_global_rscale;
+ int stat;
save_global_rscale = global_rscale;
global_rscale += 8;
@@ -3137,7 +3150,7 @@ sqrt_var(NumericVar *arg, NumericVar *result)
{
set_var_from_var(&const_zero, result);
result->rscale = res_rscale;
- result->sign = NUMERIC_POS;
+ result->sign = NUMERIC_POS;
return;
}
@@ -3160,14 +3173,14 @@ sqrt_var(NumericVar *arg, NumericVar *result)
*/
digitbuf_free(result->buf);
result->buf = digitbuf_alloc(1);
- result->digits = ((NumericDigit *)(result->buf)) + sizeof(NumericDigitBuf);
+ result->digits = ((NumericDigit *) (result->buf)) + sizeof(NumericDigitBuf);
result->digits[0] = tmp_arg.digits[0] / 2;
if (result->digits[0] == 0)
result->digits[0] = 1;
result->ndigits = 1;
result->weight = tmp_arg.weight / 2;
result->rscale = res_rscale;
- result->sign = NUMERIC_POS;
+ result->sign = NUMERIC_POS;
for (;;)
{
@@ -3176,7 +3189,8 @@ sqrt_var(NumericVar *arg, NumericVar *result)
add_var(result, &tmp_val, result);
div_var(result, &const_two, result);
- if (cmp_var(&last_val, result) == 0) break;
+ if (cmp_var(&last_val, result) == 0)
+ break;
set_var_from_var(result, &last_val);
}
@@ -3196,18 +3210,18 @@ sqrt_var(NumericVar *arg, NumericVar *result)
* ----------
*/
static void
-exp_var(NumericVar *arg, NumericVar *result)
-{
- NumericVar x;
- NumericVar xpow;
- NumericVar ifac;
- NumericVar elem;
- NumericVar ni;
- int d;
- int i;
- int ndiv2 = 0;
- bool xneg = FALSE;
- int save_global_rscale;
+exp_var(NumericVar * arg, NumericVar * result)
+{
+ NumericVar x;
+ NumericVar xpow;
+ NumericVar ifac;
+ NumericVar elem;
+ NumericVar ni;
+ int d;
+ int i;
+ int ndiv2 = 0;
+ bool xneg = FALSE;
+ int save_global_rscale;
init_var(&x);
init_var(&xpow);
@@ -3239,7 +3253,7 @@ exp_var(NumericVar *arg, NumericVar *result)
global_rscale = global_rscale / 2 + save_global_rscale + 8;
- while(cmp_var(&x, &const_one) > 0)
+ while (cmp_var(&x, &const_one) > 0)
{
ndiv2++;
global_rscale++;
@@ -3290,15 +3304,15 @@ exp_var(NumericVar *arg, NumericVar *result)
* ----------
*/
static void
-ln_var(NumericVar *arg, NumericVar *result)
+ln_var(NumericVar * arg, NumericVar * result)
{
- NumericVar x;
- NumericVar xx;
- NumericVar ni;
- NumericVar elem;
- NumericVar fact;
- int i;
- int save_global_rscale;
+ NumericVar x;
+ NumericVar xx;
+ NumericVar ni;
+ NumericVar elem;
+ NumericVar fact;
+ int i;
+ int save_global_rscale;
if (cmp_var(arg, &const_zero) <= 0)
{
@@ -3368,7 +3382,7 @@ ln_var(NumericVar *arg, NumericVar *result)
* ----------
*/
static void
-log_var(NumericVar *base, NumericVar *num, NumericVar *result)
+log_var(NumericVar * base, NumericVar * num, NumericVar * result)
{
NumericVar ln_base;
NumericVar ln_num;
@@ -3379,10 +3393,10 @@ log_var(NumericVar *base, NumericVar *num, NumericVar *result)
init_var(&ln_num);
ln_var(base, &ln_base);
- ln_var(num, &ln_num);
+ ln_var(num, &ln_num);
global_rscale -= 8;
-
+
div_var(&ln_num, &ln_base, result);
free_var(&ln_num);
@@ -3397,7 +3411,7 @@ log_var(NumericVar *base, NumericVar *num, NumericVar *result)
* ----------
*/
static void
-power_var(NumericVar *base, NumericVar *exp, NumericVar *result)
+power_var(NumericVar * base, NumericVar * exp, NumericVar * result)
{
NumericVar ln_base;
NumericVar ln_num;
@@ -3415,7 +3429,7 @@ power_var(NumericVar *base, NumericVar *exp, NumericVar *result)
global_rscale = save_global_rscale;
exp_var(&ln_num, result);
-
+
free_var(&ln_num);
free_var(&ln_base);
@@ -3441,22 +3455,24 @@ power_var(NumericVar *base, NumericVar *exp, NumericVar *result)
* ----------
*/
static int
-cmp_abs(NumericVar *var1, NumericVar *var2)
+cmp_abs(NumericVar * var1, NumericVar * var2)
{
- int i1 = 0;
- int i2 = 0;
- int w1 = var1->weight;
- int w2 = var2->weight;
- int stat;
+ int i1 = 0;
+ int i2 = 0;
+ int w1 = var1->weight;
+ int w2 = var2->weight;
+ int stat;
while (w1 > w2 && i1 < var1->ndigits)
{
- if (var1->digits[i1++] != 0) return 1;
+ if (var1->digits[i1++] != 0)
+ return 1;
w1--;
}
while (w2 > w1 && i2 < var2->ndigits)
{
- if (var2->digits[i2++] != 0) return -1;
+ if (var2->digits[i2++] != 0)
+ return -1;
w2--;
}
@@ -3497,16 +3513,18 @@ cmp_abs(NumericVar *var1, NumericVar *var2)
* ----------
*/
static void
-add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
+add_abs(NumericVar * var1, NumericVar * var2, NumericVar * result)
{
- NumericDigitBuf *res_buf;
- NumericDigit *res_digits;
- int res_ndigits;
- int res_weight;
- int res_rscale;
- int res_dscale;
- int i, i1, i2;
- int carry = 0;
+ NumericDigitBuf *res_buf;
+ NumericDigit *res_digits;
+ int res_ndigits;
+ int res_weight;
+ int res_rscale;
+ int res_dscale;
+ int i,
+ i1,
+ i2;
+ int carry = 0;
res_weight = MAX(var1->weight, var2->weight) + 1;
res_rscale = MAX(var1->rscale, var2->rscale);
@@ -3514,7 +3532,7 @@ add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
res_ndigits = res_rscale + res_weight + 1;
res_buf = digitbuf_alloc(res_ndigits);
- res_digits = ((NumericDigit *)res_buf) + sizeof(NumericDigitBuf);
+ res_digits = ((NumericDigit *) res_buf) + sizeof(NumericDigitBuf);
i1 = res_rscale + var1->weight + 1;
i2 = res_rscale + var2->weight + 1;
@@ -3538,20 +3556,18 @@ add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
res_ndigits--;
}
while (res_ndigits > 0 && res_digits[res_ndigits - 1] == 0)
- {
res_ndigits--;
- }
if (res_ndigits == 0)
res_weight = 0;
digitbuf_free(result->buf);
result->ndigits = res_ndigits;
- result->buf = res_buf;
- result->digits = res_digits;
- result->weight = res_weight;
- result->rscale = res_rscale;
- result->dscale = res_dscale;
+ result->buf = res_buf;
+ result->digits = res_digits;
+ result->weight = res_weight;
+ result->rscale = res_rscale;
+ result->dscale = res_dscale;
}
@@ -3566,16 +3582,18 @@ add_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
* ----------
*/
static void
-sub_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
+sub_abs(NumericVar * var1, NumericVar * var2, NumericVar * result)
{
- NumericDigitBuf *res_buf;
- NumericDigit *res_digits;
- int res_ndigits;
- int res_weight;
- int res_rscale;
- int res_dscale;
- int i, i1, i2;
- int borrow = 0;
+ NumericDigitBuf *res_buf;
+ NumericDigit *res_digits;
+ int res_ndigits;
+ int res_weight;
+ int res_rscale;
+ int res_dscale;
+ int i,
+ i1,
+ i2;
+ int borrow = 0;
res_weight = var1->weight;
res_rscale = MAX(var1->rscale, var2->rscale);
@@ -3583,7 +3601,7 @@ sub_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
res_ndigits = res_rscale + res_weight + 1;
res_buf = digitbuf_alloc(res_ndigits);
- res_digits = ((NumericDigit *)res_buf) + sizeof(NumericDigitBuf);
+ res_digits = ((NumericDigit *) res_buf) + sizeof(NumericDigitBuf);
i1 = res_rscale + var1->weight + 1;
i2 = res_rscale + var2->weight + 1;
@@ -3615,20 +3633,16 @@ sub_abs(NumericVar *var1, NumericVar *var2, NumericVar *result)
res_ndigits--;
}
while (res_ndigits > 0 && res_digits[res_ndigits - 1] == 0)
- {
res_ndigits--;
- }
if (res_ndigits == 0)
res_weight = 0;
digitbuf_free(result->buf);
result->ndigits = res_ndigits;
- result->buf = res_buf;
- result->digits = res_digits;
- result->weight = res_weight;
- result->rscale = res_rscale;
- result->dscale = res_dscale;
+ result->buf = res_buf;
+ result->digits = res_digits;
+ result->weight = res_weight;
+ result->rscale = res_rscale;
+ result->dscale = res_dscale;
}
-
-
diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c
index 19a0f2d385b..413d0fadd88 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.29 1999/02/13 23:19:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.30 1999/05/25 16:12:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -55,17 +55,17 @@ pg_atoi(char *s, int size, int c)
Assert(s);
- errno = 0;
+ errno = 0;
/*
- * Some versions of strtol treat the empty string as an error. This
+ * Some versions of strtol treat the empty string as an error. This
* code will explicitly return 0 for an empty string.
*/
- if (s == (char *)NULL)
+ if (s == (char *) NULL)
elog(ERROR, "pg_atoi: NULL pointer!");
else if (*s == 0)
- l = (long)0;
+ l = (long) 0;
else
l = strtol(s, &badp, 10);
if (errno) /* strtol must set ERANGE */
diff --git a/src/backend/utils/adt/regproc.c b/src/backend/utils/adt/regproc.c
index 2e6276f4e2f..1db8ddcc057 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.36 1999/05/10 00:45:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.37 1999/05/25 16:12:17 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,9 +41,9 @@
int32
regprocin(char *pro_name_or_oid)
{
- HeapTuple proctup = NULL;
- HeapTupleData tuple;
- RegProcedure result = InvalidOid;
+ HeapTuple proctup = NULL;
+ HeapTupleData tuple;
+ RegProcedure result = InvalidOid;
if (pro_name_or_oid == NULL)
return InvalidOid;
@@ -52,6 +52,7 @@ regprocin(char *pro_name_or_oid)
if (!IsBootstrapProcessingMode())
{
+
/*
* we need to use the oid because there can be multiple entries
* with the same name. We accept int4eq_1323 and 1323.
@@ -76,23 +77,23 @@ regprocin(char *pro_name_or_oid)
RetrieveIndexResult indexRes;
Buffer buffer;
int matches = 0;
-
+
ScanKeyEntryInitialize(&skey[0],
(bits16) 0x0,
(AttrNumber) 1,
(RegProcedure) F_NAMEEQ,
PointerGetDatum(pro_name_or_oid));
-
+
hdesc = heap_openr(ProcedureRelationName);
idesc = index_openr(ProcedureNameIndex);
-
+
sd = index_beginscan(idesc, false, 1, skey);
while ((indexRes = index_getnext(sd, ForwardScanDirection)))
{
tuple.t_self = indexRes->heap_iptr;
heap_fetch(hdesc, SnapshotNow,
- &tuple,
- &buffer);
+ &tuple,
+ &buffer);
pfree(indexRes);
if (tuple.t_data != NULL)
{
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index b953567ad9c..62aab389012 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,7 +3,7 @@
* out of it's tuple
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.14 1999/05/25 08:49:33 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.15 1999/05/25 16:12:19 momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -57,16 +57,17 @@
#include "catalog/pg_opclass.h"
#include "fmgr.h"
-#define BUFSIZE 8192
+#define BUFSIZE 8192
/* ----------
* Local data types
* ----------
*/
-typedef struct QryHier {
- struct QryHier *parent;
- Query *query;
-} QryHier;
+typedef struct QryHier
+{
+ struct QryHier *parent;
+ Query *query;
+} QryHier;
/* ----------
@@ -90,7 +91,7 @@ static char *query_getopclass = "SELECT * FROM pg_opclass WHERE oid = $1";
*/
text *pg_get_ruledef(NameData *rname);
text *pg_get_viewdef(NameData *rname);
-text *pg_get_indexdef(Oid indexrelid);
+text *pg_get_indexdef(Oid indexrelid);
NameData *pg_get_userbyid(int4 uid);
@@ -100,16 +101,16 @@ NameData *pg_get_userbyid(int4 uid);
*/
static char *make_ruledef(HeapTuple ruletup, TupleDesc rulettc);
static char *make_viewdef(HeapTuple ruletup, TupleDesc rulettc);
-static char *get_query_def(Query *query, QryHier *parentqh);
-static char *get_select_query_def(Query *query, QryHier *qh);
-static char *get_insert_query_def(Query *query, QryHier *qh);
-static char *get_update_query_def(Query *query, QryHier *qh);
-static char *get_delete_query_def(Query *query, QryHier *qh);
-static char *get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix);
-static char *get_func_expr(QryHier *qh, int rt_index, Expr *expr, bool varprefix);
-static char *get_tle_expr(QryHier *qh, int rt_index, TargetEntry *tle, bool varprefix);
+static char *get_query_def(Query *query, QryHier * parentqh);
+static char *get_select_query_def(Query *query, QryHier * qh);
+static char *get_insert_query_def(Query *query, QryHier * qh);
+static char *get_update_query_def(Query *query, QryHier * qh);
+static char *get_delete_query_def(Query *query, QryHier * qh);
+static char *get_rule_expr(QryHier * qh, int rt_index, Node *node, bool varprefix);
+static char *get_func_expr(QryHier * qh, int rt_index, Expr *expr, bool varprefix);
+static char *get_tle_expr(QryHier * qh, int rt_index, TargetEntry *tle, bool varprefix);
static char *get_const_expr(Const *constval);
-static char *get_sublink_expr(QryHier *qh, int rt_index, Node *node, bool varprefix);
+static char *get_sublink_expr(QryHier * qh, int rt_index, Node *node, bool varprefix);
static char *get_relation_name(Oid relid);
static char *get_attribute_name(Oid relid, int2 attnum);
static bool check_if_rte_used(int rt_index, Node *node, int sup);
@@ -314,27 +315,27 @@ pg_get_viewdef(NameData *rname)
* only return the SELECT part of a view
* ----------
*/
-text *
+text *
pg_get_indexdef(Oid indexrelid)
{
- text *indexdef;
+ text *indexdef;
HeapTuple ht_idx;
HeapTuple ht_idxrel;
HeapTuple ht_indrel;
HeapTuple spi_tup;
TupleDesc spi_ttc;
- int spi_fno;
- Form_pg_index idxrec;
- Form_pg_class idxrelrec;
- Form_pg_class indrelrec;
+ int spi_fno;
+ Form_pg_index idxrec;
+ Form_pg_class idxrelrec;
+ Form_pg_class indrelrec;
Datum spi_args[1];
char spi_nulls[2];
- int spirc;
- int len;
- int keyno;
+ int spirc;
+ int len;
+ int keyno;
char buf[BUFSIZE];
char keybuf[BUFSIZE];
- char *sep;
+ char *sep;
/* ----------
* Connect to SPI manager
@@ -371,30 +372,30 @@ pg_get_indexdef(Oid indexrelid)
* ----------
*/
ht_idx = SearchSysCacheTuple(INDEXRELID,
- ObjectIdGetDatum(indexrelid), 0, 0, 0);
+ ObjectIdGetDatum(indexrelid), 0, 0, 0);
if (!HeapTupleIsValid(ht_idx))
elog(ERROR, "syscache lookup for index %u failed", indexrelid);
- idxrec = (Form_pg_index)GETSTRUCT(ht_idx);
+ idxrec = (Form_pg_index) GETSTRUCT(ht_idx);
/* ----------
* Fetch the pg_class tuple of the index relation
* ----------
*/
ht_idxrel = SearchSysCacheTuple(RELOID,
- ObjectIdGetDatum(idxrec->indexrelid), 0, 0, 0);
+ ObjectIdGetDatum(idxrec->indexrelid), 0, 0, 0);
if (!HeapTupleIsValid(ht_idxrel))
elog(ERROR, "syscache lookup for relid %u failed", idxrec->indexrelid);
- idxrelrec = (Form_pg_class)GETSTRUCT(ht_idxrel);
+ idxrelrec = (Form_pg_class) GETSTRUCT(ht_idxrel);
/* ----------
* Fetch the pg_class tuple of the indexed relation
* ----------
*/
ht_indrel = SearchSysCacheTuple(RELOID,
- ObjectIdGetDatum(idxrec->indrelid), 0, 0, 0);
+ ObjectIdGetDatum(idxrec->indrelid), 0, 0, 0);
if (!HeapTupleIsValid(ht_indrel))
elog(ERROR, "syscache lookup for relid %u failed", idxrec->indrelid);
- indrelrec = (Form_pg_class)GETSTRUCT(ht_indrel);
+ indrelrec = (Form_pg_class) GETSTRUCT(ht_indrel);
/* ----------
* Get the am name for the index relation
@@ -417,11 +418,11 @@ pg_get_indexdef(Oid indexrelid)
* ----------
*/
sprintf(buf, "CREATE %sINDEX \"%s\" ON \"%s\" USING %s (",
- idxrec->indisunique ? "UNIQUE " : "",
- nameout(&(idxrelrec->relname)),
- nameout(&(indrelrec->relname)),
- SPI_getvalue(spi_tup, spi_ttc, spi_fno));
-
+ idxrec->indisunique ? "UNIQUE " : "",
+ nameout(&(idxrelrec->relname)),
+ nameout(&(indrelrec->relname)),
+ SPI_getvalue(spi_tup, spi_ttc, spi_fno));
+
/* ----------
* Collect the indexed attributes
* ----------
@@ -445,7 +446,7 @@ pg_get_indexdef(Oid indexrelid)
strcat(keybuf, "oid");
else
strcat(keybuf, get_attribute_name(idxrec->indrelid,
- idxrec->indkey[keyno]));
+ idxrec->indkey[keyno]));
strcat(keybuf, "\"");
/* ----------
@@ -478,10 +479,10 @@ pg_get_indexdef(Oid indexrelid)
if (idxrec->indproc != InvalidOid)
{
HeapTuple proctup;
- Form_pg_proc procStruct;
+ Form_pg_proc procStruct;
proctup = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(idxrec->indproc), 0, 0, 0);
+ ObjectIdGetDatum(idxrec->indproc), 0, 0, 0);
if (!HeapTupleIsValid(proctup))
elog(ERROR, "cache lookup for proc %u failed", idxrec->indproc);
@@ -508,13 +509,11 @@ pg_get_indexdef(Oid indexrelid)
strcat(buf, "\"");
}
else
- /* ----------
- * For the others say 'attr opclass [, ...]'
- * ----------
- */
- {
+ /* ----------
+ * For the others say 'attr opclass [, ...]'
+ * ----------
+ */
strcat(buf, keybuf);
- }
/* ----------
* Finish
@@ -551,8 +550,8 @@ NameData *
pg_get_userbyid(int4 uid)
{
HeapTuple usertup;
- Form_pg_shadow user_rec;
- NameData *result;
+ Form_pg_shadow user_rec;
+ NameData *result;
/* ----------
* Allocate space for the result
@@ -566,16 +565,14 @@ pg_get_userbyid(int4 uid)
* ----------
*/
usertup = SearchSysCacheTuple(USESYSID,
- ObjectIdGetDatum(uid), 0, 0, 0);
+ ObjectIdGetDatum(uid), 0, 0, 0);
if (HeapTupleIsValid(usertup))
{
- user_rec = (Form_pg_shadow)GETSTRUCT(usertup);
+ user_rec = (Form_pg_shadow) GETSTRUCT(usertup);
StrNCpy(result->data, (&(user_rec->usename))->data, NAMEDATALEN);
}
else
- {
- sprintf((char *)result, "unknown (UID=%d)", uid);
- }
+ sprintf((char *) result, "unknown (UID=%d)", uid);
return result;
}
@@ -683,12 +680,12 @@ make_ruledef(HeapTuple ruletup, TupleDesc rulettc)
{
Node *qual;
Query *query;
- QryHier qh;
+ QryHier qh;
qual = stringToNode(ev_qual);
query = (Query *) lfirst(actions);
qh.parent = NULL;
- qh.query = query;
+ qh.query = query;
strcat(buf, " WHERE ");
strcat(buf, get_rule_expr(&qh, 0, qual, TRUE));
@@ -809,16 +806,16 @@ make_viewdef(HeapTuple ruletup, TupleDesc rulettc)
* ----------
*/
static char *
-get_query_def(Query *query, QryHier *parentqh)
+get_query_def(Query *query, QryHier * parentqh)
{
QryHier qh;
qh.parent = parentqh;
- qh.query = query;
+ qh.query = query;
switch (query->commandType)
{
- case CMD_SELECT:
+ case CMD_SELECT:
return get_select_query_def(query, &qh);
break;
@@ -853,7 +850,7 @@ get_query_def(Query *query, QryHier *parentqh)
* ----------
*/
static char *
-get_select_query_def(Query *query, QryHier *qh)
+get_select_query_def(Query *query, QryHier * qh)
{
char buf[BUFSIZE];
char *sep;
@@ -1023,7 +1020,7 @@ get_select_query_def(Query *query, QryHier *qh)
* ----------
*/
static char *
-get_insert_query_def(Query *query, QryHier *qh)
+get_insert_query_def(Query *query, QryHier * qh)
{
char buf[BUFSIZE];
char *sep;
@@ -1133,7 +1130,7 @@ get_insert_query_def(Query *query, QryHier *qh)
* ----------
*/
static char *
-get_update_query_def(Query *query, QryHier *qh)
+get_update_query_def(Query *query, QryHier * qh)
{
char buf[BUFSIZE];
char *sep;
@@ -1186,7 +1183,7 @@ get_update_query_def(Query *query, QryHier *qh)
* ----------
*/
static char *
-get_delete_query_def(Query *query, QryHier *qh)
+get_delete_query_def(Query *query, QryHier * qh)
{
char buf[BUFSIZE];
RangeTblEntry *rte;
@@ -1220,7 +1217,7 @@ get_delete_query_def(Query *query, QryHier *qh)
* ----------
*/
static char *
-get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
+get_rule_expr(QryHier * qh, int rt_index, Node *node, bool varprefix)
{
char buf[BUFSIZE];
@@ -1254,7 +1251,7 @@ get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
strcat(buf, aggref->aggname);
strcat(buf, "\"(");
strcat(buf, get_rule_expr(qh, rt_index,
- (Node *) (aggref->target), varprefix));
+ (Node *) (aggref->target), varprefix));
strcat(buf, ")");
return pstrdup(buf);
}
@@ -1263,15 +1260,15 @@ get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
case T_GroupClause:
{
GroupClause *grp = (GroupClause *) node;
- List *l;
- TargetEntry *tle = NULL;
+ List *l;
+ TargetEntry *tle = NULL;
foreach(l, qh->query->targetList)
{
- if (((TargetEntry *)lfirst(l))->resdom->resgroupref ==
- grp->tleGroupref)
+ if (((TargetEntry *) lfirst(l))->resdom->resgroupref ==
+ grp->tleGroupref)
{
- tle = (TargetEntry *)lfirst(l);
+ tle = (TargetEntry *) lfirst(l);
break;
}
}
@@ -1279,7 +1276,7 @@ get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
if (tle == NULL)
elog(ERROR, "GROUP BY expression not found in targetlist");
- return get_rule_expr(qh, rt_index, (Node *)tle, varprefix);
+ return get_rule_expr(qh, rt_index, (Node *) tle, varprefix);
}
break;
@@ -1358,9 +1355,10 @@ get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
{
Var *var = (Var *) node;
RangeTblEntry *rte;
- int sup = var->varlevelsup;
+ int sup = var->varlevelsup;
- while(sup-- > 0) qh = qh->parent;
+ while (sup-- > 0)
+ qh = qh->parent;
rte = (RangeTblEntry *) nth(var->varno - 1, qh->query->rtable);
@@ -1396,9 +1394,7 @@ get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
break;
case T_SubLink:
- {
return get_sublink_expr(qh, rt_index, node, varprefix);
- }
break;
case T_Const:
@@ -1421,7 +1417,7 @@ get_rule_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
* ----------
*/
static char *
-get_func_expr(QryHier *qh, int rt_index, Expr *expr, bool varprefix)
+get_func_expr(QryHier * qh, int rt_index, Expr *expr, bool varprefix)
{
char buf[BUFSIZE];
HeapTuple proctup;
@@ -1500,7 +1496,7 @@ get_func_expr(QryHier *qh, int rt_index, Expr *expr, bool varprefix)
* ----------
*/
static char *
-get_tle_expr(QryHier *qh, int rt_index, TargetEntry *tle, bool varprefix)
+get_tle_expr(QryHier * qh, int rt_index, TargetEntry *tle, bool varprefix)
{
HeapTuple proctup;
Form_pg_proc procStruct;
@@ -1609,14 +1605,14 @@ get_const_expr(Const *constval)
* ----------
*/
static char *
-get_sublink_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
+get_sublink_expr(QryHier * qh, int rt_index, Node *node, bool varprefix)
{
SubLink *sublink = (SubLink *) node;
Query *query = (Query *) (sublink->subselect);
- Expr *expr;
+ Expr *expr;
List *l;
char *sep;
- char buf[BUFSIZE];
+ char buf[BUFSIZE];
buf[0] = '\0';
@@ -1640,32 +1636,33 @@ get_sublink_expr(QryHier *qh, int rt_index, Node *node, bool varprefix)
strcat(buf, " ");
}
- switch (sublink->subLinkType) {
+ switch (sublink->subLinkType)
+ {
case EXISTS_SUBLINK:
strcat(buf, "EXISTS ");
break;
case ANY_SUBLINK:
- expr = (Expr *)lfirst(sublink->oper);
+ expr = (Expr *) lfirst(sublink->oper);
strcat(buf, get_opname(((Oper *) (expr->oper))->opno));
strcat(buf, " ANY ");
break;
case ALL_SUBLINK:
- expr = (Expr *)lfirst(sublink->oper);
+ expr = (Expr *) lfirst(sublink->oper);
strcat(buf, get_opname(((Oper *) (expr->oper))->opno));
strcat(buf, " ALL ");
break;
case EXPR_SUBLINK:
- expr = (Expr *)lfirst(sublink->oper);
+ expr = (Expr *) lfirst(sublink->oper);
strcat(buf, get_opname(((Oper *) (expr->oper))->opno));
strcat(buf, " ");
break;
default:
elog(ERROR, "unupported sublink type %d",
- sublink->subLinkType);
+ sublink->subLinkType);
break;
}
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 53310bf1b3e..fc65ddc3f97 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.27 1999/05/10 00:46:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.28 1999/05/25 16:12:20 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -393,6 +393,7 @@ btreesel(Oid operatorObjectId,
if (FunctionalSelectivity(nIndexKeys, attributeNumber))
{
+
/*
* Need to call the functions selectivity function here. For now
* simply assume it's 1/3 since functions don't currently have
@@ -437,6 +438,7 @@ btreenpage(Oid operatorObjectId,
if (FunctionalSelectivity(nIndexKeys, attributeNumber))
{
+
/*
* Need to call the functions selectivity function here. For now
* simply assume it's 1/3 since functions don't currently have
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 1233955c4fd..cb0982a52d8 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.45 1999/05/19 17:53:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.46 1999/05/25 16:12:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -82,7 +82,7 @@ bpcharin(char *s, int dummy, int32 atttypmod)
len = atttypmod - VARHDRSZ;
if (len > BLCKSZ - 128)
- elog(ERROR, "bpcharin: length of char() must be less than %d",BLCKSZ-128);
+ elog(ERROR, "bpcharin: length of char() must be less than %d", BLCKSZ - 128);
result = (char *) palloc(atttypmod);
VARSIZE(result) = atttypmod;
@@ -152,7 +152,7 @@ bpchar(char *s, int32 len)
rlen = len - VARHDRSZ;
if (rlen > BLCKSZ - 128)
- elog(ERROR, "bpchar: length of char() must be less than %d",BLCKSZ-128);
+ elog(ERROR, "bpchar: length of char() must be less than %d", BLCKSZ - 128);
#ifdef STRINGDEBUG
printf("bpchar- convert string length %d (%d) ->%d (%d)\n",
@@ -163,13 +163,15 @@ bpchar(char *s, int32 len)
VARSIZE(result) = len;
r = VARDATA(result);
#ifdef MULTIBYTE
- /* truncate multi-byte string in a way not to break
- multi-byte boundary */
- if (VARSIZE(s) > len) {
- slen = pg_mbcliplen(VARDATA(s), VARSIZE(s)-VARHDRSZ, rlen);
- } else {
+
+ /*
+ * truncate multi-byte string in a way not to break multi-byte
+ * boundary
+ */
+ if (VARSIZE(s) > len)
+ slen = pg_mbcliplen(VARDATA(s), VARSIZE(s) - VARHDRSZ, rlen);
+ else
slen = VARSIZE(s) - VARHDRSZ;
- }
#else
slen = VARSIZE(s) - VARHDRSZ;
#endif
@@ -206,7 +208,7 @@ bpchar(char *s, int32 len)
* Converts an array of char() type to a specific internal length.
* len is the length specified in () plus VARHDRSZ bytes.
*/
-ArrayType *
+ArrayType *
_bpchar(ArrayType *v, int32 len)
{
return array_map(v, BPCHAROID, bpchar, BPCHAROID, 1, len);
@@ -331,7 +333,7 @@ varcharin(char *s, int dummy, int32 atttypmod)
len = atttypmod; /* clip the string at max length */
if (len > BLCKSZ - 128)
- elog(ERROR, "varcharin: length of char() must be less than %d",BLCKSZ-128);
+ elog(ERROR, "varcharin: length of char() must be less than %d", BLCKSZ - 128);
result = (char *) palloc(len);
VARSIZE(result) = len;
@@ -390,15 +392,18 @@ varchar(char *s, int32 slen)
/* only reach here if we need to truncate string... */
#ifdef MULTIBYTE
- /* truncate multi-byte string in a way not to break
- multi-byte boundary */
+
+ /*
+ * truncate multi-byte string in a way not to break multi-byte
+ * boundary
+ */
len = pg_mbcliplen(VARDATA(s), slen - VARHDRSZ, slen - VARHDRSZ);
slen = len + VARHDRSZ;
#else
len = slen - VARHDRSZ;
#endif
- if (len > BLCKSZ-128)
+ if (len > BLCKSZ - 128)
elog(ERROR, "varchar: length of varchar() must be less than BLCKSZ-128");
result = (char *) palloc(slen);
@@ -412,7 +417,7 @@ varchar(char *s, int32 slen)
* Converts an array of varchar() type to the specified size.
* len is the length specified in () plus VARHDRSZ bytes.
*/
-ArrayType *
+ArrayType *
_varchar(ArrayType *v, int32 len)
{
return array_map(v, VARCHAROID, varchar, VARCHAROID, 1, len);
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 12095816fa1..b649ef225a3 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.47 1999/02/13 23:19:36 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.48 1999/05/25 16:12:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -314,7 +314,7 @@ textcat(text *t1, text *t2)
* - string length
*
* If the starting position is zero or less, then return from the start of the string
- * adjusting the length to be consistant with the "negative start" per SQL92.
+ * adjusting the length to be consistant with the "negative start" per SQL92.
* If the length is less than zero, return the remaining string.
*
* Note that the arguments operate on octet length,
@@ -352,11 +352,14 @@ text_substr(text *string, int32 m, int32 n)
m = 1;
n = 0;
}
- /* starting position before the start of the string?
- * then offset into the string per SQL92 spec... */
+
+ /*
+ * starting position before the start of the string? then offset into
+ * the string per SQL92 spec...
+ */
else if (m < 1)
{
- n += (m-1);
+ n += (m - 1);
m = 1;
}
@@ -588,10 +591,10 @@ text_ge(text *arg1, text *arg2)
text *
text_larger(text *arg1, text *arg2)
{
- text *result;
- text *temp;
+ text *result;
+ text *temp;
- temp = ((text_cmp(arg1, arg2) <= 0)? arg2: arg1);
+ temp = ((text_cmp(arg1, arg2) <= 0) ? arg2 : arg1);
/* Make a copy */
@@ -604,10 +607,10 @@ text_larger(text *arg1, text *arg2)
text *
text_smaller(text *arg1, text *arg2)
{
- text *result;
- text *temp;
+ text *result;
+ text *temp;
- temp = ((text_cmp(arg1, arg2) > 0)? arg2: arg1);
+ temp = ((text_cmp(arg1, arg2) > 0) ? arg2 : arg1);
/* Make a copy */
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 869df05df7c..80444d0a143 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.40 1999/05/10 00:46:03 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.41 1999/05/25 16:12:22 momjian Exp $
*
* Notes:
* XXX This needs to use exception.h to handle recovery when
@@ -196,6 +196,7 @@ CatalogCacheInitializeCache(struct catcache * cache,
if (cache->cc_key[i] > 0)
{
+
/*
* Yoiks. The implementation of the hashing code and the
* implementation of int28's are at loggerheads. The right
@@ -277,7 +278,7 @@ CatalogCacheSetId(CatCache *cacheInOutP, int id)
#endif
/* ----------------
- * comphash
+ * comphash
* Compute a hash value, somehow.
*
* XXX explain algorithm here.
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index 40155b36aa1..7cf66e22808 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/inval.c,v 1.22 1999/05/10 00:46:07 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/inval.c,v 1.23 1999/05/25 16:12:23 momjian Exp $
*
* Note - this code is real crufty...
*
@@ -106,7 +106,7 @@ InvalidationEntryAllocate(uint16 size)
}
/* --------------------------------
- * LocalInvalidRegister
+ * LocalInvalidRegister
* Returns a new local cache invalidation state containing a new entry.
* --------------------------------
*/
@@ -117,7 +117,7 @@ LocalInvalidRegister(LocalInvalid invalid,
Assert(PointerIsValid(entry));
((InvalidationUserData *) entry)->dataP[-1] =
- (InvalidationUserData *) invalid;
+ (InvalidationUserData *) invalid;
return entry;
}
@@ -504,7 +504,7 @@ InitLocalInvalidateData()
/*
- * DiscardInvalid
+ * DiscardInvalid
* Causes the invalidated cache state to be discarded.
*
* Note:
@@ -527,7 +527,7 @@ DiscardInvalid()
}
/*
- * RegisterInvalid
+ * RegisterInvalid
* Causes registration of invalidated state with other backends iff true.
*
* Note:
@@ -559,7 +559,7 @@ RegisterInvalid(bool send)
}
/*
- * RelationIdInvalidateHeapTuple
+ * RelationIdInvalidateHeapTuple
* Causes the given tuple in a relation to be invalidated.
*
* Note:
diff --git a/src/backend/utils/cache/rel.c b/src/backend/utils/cache/rel.c
index 0603f675520..f37a97b34f6 100644
--- a/src/backend/utils/cache/rel.c
+++ b/src/backend/utils/cache/rel.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/rel.c,v 1.4 1999/02/13 23:19:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/rel.c,v 1.5 1999/05/25 16:12:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -29,7 +29,7 @@
*/
/*
- * RelationGetIndexStrategy
+ * RelationGetIndexStrategy
* Returns index strategy for a relation.
*
* Note:
@@ -43,7 +43,7 @@ RelationGetIndexStrategy(Relation relation)
}
/*
- * RelationSetIndexSupport
+ * RelationSetIndexSupport
* Sets index strategy and support info for a relation.
*
* Note:
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 4affb0f6aec..f8c73b7b22c 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.61 1999/05/10 00:46:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.62 1999/05/25 16:12:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -396,7 +396,7 @@ scan_pg_rel_ind(RelationBuildDescInfo buildinfo)
switch (buildinfo.infotype)
{
case INFO_RELID:
- return_tuple = ClassOidIndexScan(pg_class_desc,buildinfo.i.info_id);
+ return_tuple = ClassOidIndexScan(pg_class_desc, buildinfo.i.info_id);
break;
case INFO_RELNAME:
@@ -707,20 +707,20 @@ RelationBuildRuleLock(Relation relation)
rule->event = (int) heap_getattr(pg_rewrite_tuple,
Anum_pg_rewrite_ev_type, pg_rewrite_tupdesc,
- &isnull) - 48;
+ &isnull) - 48;
rule->attrno = (int) heap_getattr(pg_rewrite_tuple,
Anum_pg_rewrite_ev_attr, pg_rewrite_tupdesc,
- &isnull);
+ &isnull);
rule->isInstead = !!heap_getattr(pg_rewrite_tuple,
- Anum_pg_rewrite_is_instead, pg_rewrite_tupdesc,
- &isnull);
+ Anum_pg_rewrite_is_instead, pg_rewrite_tupdesc,
+ &isnull);
ruleaction = heap_getattr(pg_rewrite_tuple,
- Anum_pg_rewrite_ev_action, pg_rewrite_tupdesc,
- &isnull);
+ Anum_pg_rewrite_ev_action, pg_rewrite_tupdesc,
+ &isnull);
rule_evqual_string = heap_getattr(pg_rewrite_tuple,
- Anum_pg_rewrite_ev_qual, pg_rewrite_tupdesc,
- &isnull);
+ Anum_pg_rewrite_ev_qual, pg_rewrite_tupdesc,
+ &isnull);
ruleaction = PointerGetDatum(textout((struct varlena *) DatumGetPointer(ruleaction)));
rule_evqual_string = PointerGetDatum(textout((struct varlena *) DatumGetPointer(rule_evqual_string)));
@@ -851,9 +851,7 @@ RelationBuildDesc(RelationBuildDescInfo buildinfo)
* ----------------
*/
if (OidIsValid(relam))
- {
relation->rd_am = (Form_pg_am) AccessMethodObjectIdGetForm(relam);
- }
/* ----------------
* initialize the tuple descriptor (relation->rd_att).
@@ -1331,13 +1329,13 @@ RelationForgetRelation(Oid rid)
MemoryContext oldcxt;
List *curr;
List *prev = NIL;
-
+
oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
-
+
foreach(curr, newlyCreatedRelns)
{
Relation reln = lfirst(curr);
-
+
Assert(reln != NULL && reln->rd_myxactonly);
if (RelationGetRelid(reln) == rid)
break;
@@ -1353,7 +1351,7 @@ RelationForgetRelation(Oid rid)
pfree(curr);
MemoryContextSwitchTo(oldcxt);
}
-
+
RelationFlushRelation(&relation, false);
}
}
@@ -1378,6 +1376,7 @@ RelationIdInvalidateRelationCacheByRelationId(Oid relationId)
*/
if (PointerIsValid(relation) && !relation->rd_myxactonly)
{
+
/*
* The boolean onlyFlushReferenceCountZero in RelationFlushReln()
* should be set to true when we are incrementing the command
@@ -1484,8 +1483,8 @@ RelationRegisterRelation(Relation relation)
/*
* we've just created the relation. It is invisible to anyone else
- * before the transaction is committed. Setting rd_myxactonly allows us
- * to use the local buffer manager for select/insert/etc before the
+ * before the transaction is committed. Setting rd_myxactonly allows
+ * us to use the local buffer manager for select/insert/etc before the
* end of transaction. (We also need to keep track of relations
* created during a transaction and does the necessary clean up at the
* end of the transaction.) - ay 3/95
@@ -1634,7 +1633,7 @@ AttrDefaultFetch(Relation relation)
Relation adrel;
Relation irel;
ScanKeyData skey;
- HeapTupleData tuple;
+ HeapTupleData tuple;
Form_pg_attrdef adform;
IndexScanDesc sd;
RetrieveIndexResult indexRes;
@@ -1722,7 +1721,7 @@ RelCheckFetch(Relation relation)
Relation rcrel;
Relation irel;
ScanKeyData skey;
- HeapTupleData tuple;
+ HeapTupleData tuple;
IndexScanDesc sd;
RetrieveIndexResult indexRes;
Name rcname;
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index bd583ac0ce6..6eb0ed3527d 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.24 1999/02/13 23:19:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.25 1999/05/25 16:12:23 momjian Exp $
*
* NOTES
* These routines allow the parser/planner/executor to perform
@@ -421,11 +421,11 @@ InitCatalogCache()
Assert(!PointerIsValid((Pointer) SysCache[cacheId]));
SysCache[cacheId] = InitSysCache(cacheinfo[cacheId].name,
- cacheinfo[cacheId].indname,
- cacheId,
- cacheinfo[cacheId].nkeys,
- cacheinfo[cacheId].key,
- cacheinfo[cacheId].iScanFunc);
+ cacheinfo[cacheId].indname,
+ cacheId,
+ cacheinfo[cacheId].nkeys,
+ cacheinfo[cacheId].key,
+ cacheinfo[cacheId].iScanFunc);
if (!PointerIsValid((char *) SysCache[cacheId]))
{
elog(ERROR,
@@ -492,11 +492,11 @@ SearchSysCacheTuple(int cacheId,/* cache selection code */
if (!PointerIsValid(SysCache[cacheId]))
{
SysCache[cacheId] = InitSysCache(cacheinfo[cacheId].name,
- cacheinfo[cacheId].indname,
- cacheId,
- cacheinfo[cacheId].nkeys,
- cacheinfo[cacheId].key,
- cacheinfo[cacheId].iScanFunc);
+ cacheinfo[cacheId].indname,
+ cacheId,
+ cacheinfo[cacheId].nkeys,
+ cacheinfo[cacheId].key,
+ cacheinfo[cacheId].iScanFunc);
if (!PointerIsValid(SysCache[cacheId]))
elog(ERROR,
"InitCatalogCache: Can't init cache %s(%d)",
diff --git a/src/backend/utils/cache/temprel.c b/src/backend/utils/cache/temprel.c
index 60c949fa434..9e9faaf8ab2 100644
--- a/src/backend/utils/cache/temprel.c
+++ b/src/backend/utils/cache/temprel.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/temprel.c,v 1.2 1999/02/13 23:19:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/temprel.c,v 1.3 1999/05/25 16:12:24 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,16 +47,16 @@ static List *temp_rels = NIL;
typedef struct TempTable
{
- char *user_relname;
+ char *user_relname;
HeapTuple pg_class_tuple;
-} TempTable;
+} TempTable;
void
create_temp_relation(char *relname, HeapTuple pg_class_tuple)
{
MemoryContext oldcxt;
- TempTable *temp_rel;
+ TempTable *temp_rel;
oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
@@ -65,7 +65,7 @@ create_temp_relation(char *relname, HeapTuple pg_class_tuple)
/* save user-supplied name */
strcpy(temp_rel->user_relname, relname);
-
+
temp_rel->pg_class_tuple = heap_copytuple(pg_class_tuple);
temp_rels = lcons(temp_rel, temp_rels);
@@ -76,24 +76,25 @@ create_temp_relation(char *relname, HeapTuple pg_class_tuple)
void
remove_all_temp_relations(void)
{
- List *l, *next;
+ List *l,
+ *next;
l = temp_rels;
while (l != NIL)
{
- TempTable *temp_rel = lfirst(l);
+ TempTable *temp_rel = lfirst(l);
Form_pg_class classtuple;
- classtuple = (Form_pg_class)GETSTRUCT(temp_rel->pg_class_tuple);
+ classtuple = (Form_pg_class) GETSTRUCT(temp_rel->pg_class_tuple);
- next = lnext(l); /* do this first, l is deallocated */
+ next = lnext(l); /* do this first, l is deallocated */
if (classtuple->relkind != RELKIND_INDEX)
{
- char relname[NAMEDATALEN];
+ char relname[NAMEDATALEN];
/* safe from deallocation */
- strcpy(relname, temp_rel->user_relname);
+ strcpy(relname, temp_rel->user_relname);
heap_destroy_with_catalog(relname);
}
else
@@ -109,15 +110,16 @@ remove_temp_relation(Oid relid)
{
MemoryContext oldcxt;
- List *l, *prev;
-
+ List *l,
+ *prev;
+
oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
prev = NIL;
l = temp_rels;
while (l != NIL)
{
- TempTable *temp_rel = lfirst(l);
+ TempTable *temp_rel = lfirst(l);
if (temp_rel->pg_class_tuple->t_data->t_oid == relid)
{
@@ -152,11 +154,11 @@ remove_temp_relation(Oid relid)
HeapTuple
get_temp_rel_by_name(char *user_relname)
{
- List *l;
+ List *l;
foreach(l, temp_rels)
{
- TempTable *temp_rel = lfirst(l);
+ TempTable *temp_rel = lfirst(l);
if (strcmp(temp_rel->user_relname, user_relname) == 0)
return temp_rel->pg_class_tuple;
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 588f378b5de..283cb01b1f9 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.44 1999/05/10 00:46:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.45 1999/05/25 16:12:24 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -55,7 +55,7 @@ static int Err_file = -1;
static int ElogDebugIndentLevel = 0;
/*
- * elog
+ * elog
* Old error logging function.
*/
void
@@ -167,7 +167,7 @@ elog(int lev, const char *fmt,...)
* front-end program, write to it first. This is important because
* there's a bug in the socket code on ultrix. If the front end has
* gone away (so the channel to it has been closed at the other end),
- * then writing here can cause this backend to exit without warning
+ * then writing here can cause this backend to exit without warning
* that is, write() does an exit(). In this case, our only hope of
* finding out what's going on is if Err_file was set to some disk
* log. This is a major pain.
@@ -190,26 +190,32 @@ elog(int lev, const char *fmt,...)
if (IsUnderPostmaster && lev > DEBUG)
{
/* notices are not errors, handle 'em differently */
- char msgtype;
+ char msgtype;
+
if (lev == NOTICE)
msgtype = 'N';
else
{
- /* Abort any COPY OUT in progress when an error is detected.
- * This hack is necessary because of poor design of copy protocol.
+
+ /*
+ * Abort any COPY OUT in progress when an error is detected.
+ * This hack is necessary because of poor design of copy
+ * protocol.
*/
pq_endcopyout(true);
msgtype = 'E';
}
/* exclude the timestamp from msg sent to frontend */
pq_puttextmessage(msgtype, line + TIMESTAMP_SIZE);
+
/*
* This flush is normally not necessary, since postgres.c will
* flush out waiting data when control returns to the main loop.
* But it seems best to leave it here, so that the client has some
- * clue what happened if the backend dies before getting back to the
- * main loop ... error/notice messages should not be a performance-
- * critical path anyway, so an extra flush won't hurt much ...
+ * clue what happened if the backend dies before getting back to
+ * the main loop ... error/notice messages should not be a
+ * performance- critical path anyway, so an extra flush won't hurt
+ * much ...
*/
pq_flush();
}
diff --git a/src/backend/utils/error/exc.c b/src/backend/utils/error/exc.c
index aa556a62471..7384847d18e 100644
--- a/src/backend/utils/error/exc.c
+++ b/src/backend/utils/error/exc.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/exc.c,v 1.24 1999/02/13 23:19:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/exc.c,v 1.25 1999/05/25 16:12:26 momjian Exp $
*
* NOTE
* XXX this code needs improvement--check for state violations and
@@ -48,7 +48,7 @@ extern char *ProgramName;
*/
/*
- * EnableExceptionHandling
+ * EnableExceptionHandling
* Enables/disables the exception handling system.
*
* Note:
diff --git a/src/backend/utils/error/excid.c b/src/backend/utils/error/excid.c
index bc92609e2b4..70842f3b565 100644
--- a/src/backend/utils/error/excid.c
+++ b/src/backend/utils/error/excid.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/excid.c,v 1.5 1999/02/13 23:19:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/excid.c,v 1.6 1999/05/25 16:12:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,19 +22,19 @@
/*
- * FailedAssertion
+ * FailedAssertion
* Indicates an Assert(...) failed.
*/
Exception FailedAssertion = {"Failed Assertion"};
/*
- * BadState
+ * BadState
* Indicates a function call request is inconsistent with module state.
*/
Exception BadState = {"Bad State for Function Call"};
/*
- * BadArg
+ * BadArg
* Indicates a function call argument or arguments is out-of-bounds.
*/
Exception BadArg = {"Bad Argument to Function Call"};
@@ -44,19 +44,19 @@ Exception BadArg = {"Bad Argument to Function Call"};
*****************************************************************************/
/*
- * BadAllocSize
+ * BadAllocSize
* Indicates that an allocation request is of unreasonable size.
*/
Exception BadAllocSize = {"Too Large Allocation Request"};
/*
- * ExhaustedMemory
+ * ExhaustedMemory
* Indicates an dynamic memory allocation failed.
*/
Exception ExhaustedMemory = {"Memory Allocation Failed"};
/*
- * Unimplemented
+ * Unimplemented
* Indicates a function call request requires unimplemented code.
*/
Exception Unimplemented = {"Unimplemented Functionality"};
diff --git a/src/backend/utils/error/format.c b/src/backend/utils/error/format.c
index dcc27cec024..f56e3f05b31 100644
--- a/src/backend/utils/error/format.c
+++ b/src/backend/utils/error/format.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/format.c,v 1.10 1999/02/13 23:19:49 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/format.c,v 1.11 1999/05/25 16:12:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -29,6 +29,7 @@ char *
form(const char *fmt,...)
{
va_list args;
+
va_start(args, fmt);
vsnprintf(FormBuf, FormMaxSize - 1, fmt, args);
va_end(args);
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 4b625bfc7c5..7d9b79575fd 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.25 1999/05/22 19:49:41 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.26 1999/05/25 16:12:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -237,14 +237,14 @@ void
load_file(char *filename)
{
DynamicFileList *file_scanner,
- *p;
+ *p;
struct stat stat_buf;
int done = 0;
/*
- * We need to do stat() in order to determine whether this is the
- * same file as a previously loaded file; it's also handy so as to
- * give a good error message if bogus file name given.
+ * We need to do stat() in order to determine whether this is the same
+ * file as a previously loaded file; it's also handy so as to give a
+ * good error message if bogus file name given.
*/
if (stat(filename, &stat_buf) == -1)
elog(ERROR, "LOAD: could not open file '%s': %m", filename);
@@ -292,4 +292,5 @@ trigger_dynamic(char *filename, char *funcname)
return trigger_fn;
}
+
#endif
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 09f9a161138..d5b24cf3410 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.27 1999/05/10 04:02:05 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.28 1999/05/25 16:12:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -81,8 +81,10 @@ fmgr_pl(char *arg0,...)
static char *
fmgr_untrusted(char *arg0,...)
{
- /* Currently these are unsupported. Someday we might do something like
- * forking a subprocess to execute 'em.
+
+ /*
+ * Currently these are unsupported. Someday we might do something
+ * like forking a subprocess to execute 'em.
*/
elog(ERROR, "Untrusted functions not supported.");
return NULL; /* keep compiler happy */
@@ -96,9 +98,11 @@ fmgr_untrusted(char *arg0,...)
static char *
fmgr_sql(char *arg0,...)
{
+
/*
- * XXX It'd be really nice to support SQL functions anywhere that builtins
- * are supported. What would we have to do? What pitfalls are there?
+ * XXX It'd be really nice to support SQL functions anywhere that
+ * builtins are supported. What would we have to do? What pitfalls
+ * are there?
*/
elog(ERROR, "SQL-language function not supported in this context.");
return NULL; /* keep compiler happy */
@@ -215,14 +219,18 @@ fmgr_info(Oid procedureId, FmgrInfo *finfo)
if ((fcp = fmgr_isbuiltin(procedureId)) != NULL)
{
- /* Fast path for builtin functions: don't bother consulting pg_proc */
+
+ /*
+ * Fast path for builtin functions: don't bother consulting
+ * pg_proc
+ */
finfo->fn_addr = fcp->func;
finfo->fn_nargs = fcp->nargs;
}
else
{
procedureTuple = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(procedureId),
+ ObjectIdGetDatum(procedureId),
0, 0, 0);
if (!HeapTupleIsValid(procedureTuple))
{
@@ -240,14 +248,16 @@ fmgr_info(Oid procedureId, FmgrInfo *finfo)
switch (language)
{
case INTERNALlanguageId:
+
/*
- * For an ordinary builtin function, we should never get here
- * because the isbuiltin() search above will have succeeded.
- * However, if the user has done a CREATE FUNCTION to create
- * an alias for a builtin function, we end up here. In that
- * case we have to look up the function by name. The name
- * of the internal function is stored in prosrc (it doesn't
- * have to be the same as the name of the alias!)
+ * For an ordinary builtin function, we should never get
+ * here because the isbuiltin() search above will have
+ * succeeded. However, if the user has done a CREATE
+ * FUNCTION to create an alias for a builtin function, we
+ * end up here. In that case we have to look up the
+ * function by name. The name of the internal function is
+ * stored in prosrc (it doesn't have to be the same as the
+ * name of the alias!)
*/
prosrc = textout(&(procedureStruct->prosrc));
finfo->fn_addr = fmgr_lookupByName(prosrc);
diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c
index dd601bee742..933533b7549 100644
--- a/src/backend/utils/hash/dynahash.c
+++ b/src/backend/utils/hash/dynahash.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/hash/dynahash.c,v 1.21 1999/03/07 23:03:32 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/hash/dynahash.c,v 1.22 1999/05/25 16:12:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -175,8 +175,10 @@ hash_create(int nelem, HASHCTL *info, int flags)
if (flags & HASH_SHARED_MEM)
{
- /* ctl structure is preallocated for shared memory tables.
- * Note that HASH_DIRSIZE had better be set as well.
+
+ /*
+ * ctl structure is preallocated for shared memory tables. Note
+ * that HASH_DIRSIZE had better be set as well.
*/
hashp->hctl = (HHDR *) info->hctl;
@@ -296,9 +298,9 @@ init_htab(HTAB *hashp, int nelem)
hctl = hashp->hctl;
/*
- * Divide number of elements by the fill factor to determine a
- * desired number of buckets. Allocate space for the next greater
- * power of two number of buckets
+ * Divide number of elements by the fill factor to determine a desired
+ * number of buckets. Allocate space for the next greater power of
+ * two number of buckets
*/
nelem = (nelem - 1) / hctl->ffactor + 1;
@@ -308,14 +310,15 @@ init_htab(HTAB *hashp, int nelem)
hctl->high_mask = (nbuckets << 1) - 1;
/*
- * Figure number of directory segments needed, round up to a power of 2
+ * Figure number of directory segments needed, round up to a power of
+ * 2
*/
nsegs = (nbuckets - 1) / hctl->ssize + 1;
nsegs = 1 << my_log2(nsegs);
/*
- * Make sure directory is big enough.
- * If pre-allocated directory is too small, choke (caller screwed up).
+ * Make sure directory is big enough. If pre-allocated directory is
+ * too small, choke (caller screwed up).
*/
if (nsegs > hctl->dsize)
{
@@ -371,12 +374,12 @@ init_htab(HTAB *hashp, int nelem)
long
hash_estimate_size(long num_entries, long keysize, long datasize)
{
- long size = 0;
- long nBuckets,
- nSegments,
- nDirEntries,
- nRecordAllocs,
- recordSize;
+ long size = 0;
+ long nBuckets,
+ nSegments,
+ nDirEntries,
+ nRecordAllocs,
+ recordSize;
/* estimate number of buckets wanted */
nBuckets = 1L << my_log2((num_entries - 1) / DEF_FFACTOR + 1);
@@ -388,7 +391,7 @@ hash_estimate_size(long num_entries, long keysize, long datasize)
nDirEntries <<= 1; /* dir_alloc doubles dsize at each call */
/* fixed control info */
- size += MAXALIGN(sizeof(HHDR)); /* but not HTAB, per above */
+ size += MAXALIGN(sizeof(HHDR)); /* but not HTAB, per above */
/* directory */
size += MAXALIGN(nDirEntries * sizeof(SEG_OFFSET));
/* segments */
@@ -665,8 +668,10 @@ hash_search(HTAB *hashp,
*/
if (++hctl->nkeys / (hctl->max_bucket + 1) > hctl->ffactor)
{
- /* NOTE: failure to expand table is not a fatal error,
- * it just means we have to run at higher fill factor than we wanted.
+
+ /*
+ * NOTE: failure to expand table is not a fatal error, it just
+ * means we have to run at higher fill factor than we wanted.
*/
expand_table(hashp);
}
@@ -778,7 +783,7 @@ expand_table(HTAB *hashp)
{
/* Allocate new segment if necessary -- could fail if dir full */
if (new_segnum >= hctl->dsize)
- if (! dir_realloc(hashp))
+ if (!dir_realloc(hashp))
return 0;
if (!(hashp->dir[new_segnum] = seg_alloc(hashp)))
return 0;
@@ -872,7 +877,7 @@ seg_alloc(HTAB *hashp)
SEG_OFFSET segOffset;
segp = (SEGMENT) hashp->alloc((unsigned long)
- sizeof(BUCKET_INDEX) * hashp->hctl->ssize);
+ sizeof(BUCKET_INDEX) * hashp->hctl->ssize);
if (!segp)
return 0;
@@ -917,8 +922,9 @@ bucket_alloc(HTAB *hashp)
lastIndex = hashp->hctl->freeBucketIndex;
hashp->hctl->freeBucketIndex = tmpIndex;
- /* initialize each bucket to point to the one behind it.
- * NOTE: loop sets last bucket incorrectly; we fix below.
+ /*
+ * initialize each bucket to point to the one behind it. NOTE: loop
+ * sets last bucket incorrectly; we fix below.
*/
for (i = 0; i < BUCKET_ALLOC_INCR; i++)
{
diff --git a/src/backend/utils/init/enbl.c b/src/backend/utils/init/enbl.c
index b772ba0d105..78c5ab10403 100644
--- a/src/backend/utils/init/enbl.c
+++ b/src/backend/utils/init/enbl.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/enbl.c,v 1.6 1999/02/13 23:19:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/enbl.c,v 1.7 1999/05/25 16:12:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -15,7 +15,7 @@
#include "utils/module.h" /* where the declarations go */
/*
- * BypassEnable
+ * BypassEnable
* False iff enable/disable processing is required given on and "*countP."
*
* Note:
diff --git a/src/backend/utils/init/findbe.c b/src/backend/utils/init/findbe.c
index ada3f65c412..783f8ac1b95 100644
--- a/src/backend/utils/init/findbe.c
+++ b/src/backend/utils/init/findbe.c
@@ -1,12 +1,12 @@
/*-------------------------------------------------------------------------
*
- * findbe.c
+ * findbe.c
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.13 1999/02/13 23:20:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.14 1999/05/25 16:12:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c
index 588cb060fdf..1d4225e5821 100644
--- a/src/backend/utils/init/globals.c
+++ b/src/backend/utils/init/globals.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.29 1999/05/22 17:47:46 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.30 1999/05/25 16:12:34 momjian Exp $
*
* NOTES
* Globals used all over the place should be declared here and not
@@ -46,6 +46,7 @@ struct Port *MyProcPort;
long MyCancelKey;
char *DataDir = NULL;
+
/*
* The PGDATA directory user says to use, or defaults to via environment
* variable. NULL if no option given and no environment variable set
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index ce6c4ca3210..86328bbd56e 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.28 1999/05/22 17:47:46 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.29 1999/05/25 16:12:35 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -40,7 +40,7 @@
#include "storage/ipc.h" /* for proc_exit */
/*
- * EnableAbortEnvVarName
+ * EnableAbortEnvVarName
* Enables system abort iff set to a non-empty string in environment.
*/
#define EnableAbortEnvVarName "POSTGRESABORT"
@@ -69,7 +69,7 @@ unsigned char RecodeBackTable[128];
*/
/*
- * ExitPostgres
+ * ExitPostgres
* Exit POSTGRES with a status code.
*
* Note:
@@ -89,7 +89,7 @@ ExitPostgres(ExitStatus status)
}
/*
- * AbortPostgres
+ * AbortPostgres
* Abort POSTGRES dumping core.
*
* Note:
@@ -138,6 +138,7 @@ StatusPostmasterExit(int status)
/* someday, do some real cleanup and then call the LISP exit */
proc_exit(status);
}
+
#endif
@@ -149,7 +150,7 @@ static ProcessingMode Mode = NoProcessing;
#ifdef NOT_USED
/*
- * IsNoProcessingMode
+ * IsNoProcessingMode
* True iff processing mode is NoProcessing.
*/
bool
@@ -157,10 +158,11 @@ IsNoProcessingMode()
{
return (bool) (Mode == NoProcessing);
}
+
#endif
/*
- * IsBootstrapProcessingMode
+ * IsBootstrapProcessingMode
* True iff processing mode is BootstrapProcessing.
*/
bool
@@ -170,7 +172,7 @@ IsBootstrapProcessingMode()
}
/*
- * IsInitProcessingMode
+ * IsInitProcessingMode
* True iff processing mode is InitProcessing.
*/
bool
@@ -180,7 +182,7 @@ IsInitProcessingMode()
}
/*
- * IsNormalProcessingMode
+ * IsNormalProcessingMode
* True iff processing mode is NormalProcessing.
*/
bool
@@ -190,7 +192,7 @@ IsNormalProcessingMode()
}
/*
- * SetProcessingMode
+ * SetProcessingMode
* Sets mode of processing as specified.
*
* Exceptions:
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index e93480da1db..0c2711483fb 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.39 1999/02/22 19:55:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.40 1999/05/25 16:12:36 momjian Exp $
*
* NOTES
* InitPostgres() is the function called from PostgresMain
@@ -143,7 +143,7 @@ InitMyDatabaseInfo(char *name)
/*
- * DoChdirAndInitDatabaseNameAndPath
+ * DoChdirAndInitDatabaseNameAndPath
* Set current directory to the database directory for the database
* named <name>.
* Also set global variables DatabasePath and DatabaseName to those
@@ -415,7 +415,7 @@ InitStdio()
}
/* --------------------------------
- * InitPostgres
+ * InitPostgres
* Initialize POSTGRES.
*
* Note:
diff --git a/src/backend/utils/mb/alt.c b/src/backend/utils/mb/alt.c
index 54f69cc594b..3d1439a5a3a 100644
--- a/src/backend/utils/mb/alt.c
+++ b/src/backend/utils/mb/alt.c
@@ -4,63 +4,69 @@
*
* Tatsuo Ishii
*
- * $Id: alt.c,v 1.1 1999/03/24 07:01:36 ishii Exp $
+ * $Id: alt.c,v 1.2 1999/05/25 16:12:38 momjian Exp $
*/
#include <stdio.h>
main()
{
- int i;
- char koitab[128],alttab[128];
- char buf[4096];
- int koi,alt;
+ int i;
+ char koitab[128],
+ alttab[128];
+ char buf[4096];
+ int koi,
+ alt;
- for (i=0;i<128;i++) {
- koitab[i] = alttab[i] = 0;
- }
+ for (i = 0; i < 128; i++)
+ koitab[i] = alttab[i] = 0;
- while (fgets(buf,sizeof(buf),stdin) != NULL) {
- if (*buf == '#') {
- continue;
- }
- sscanf(buf,"%d %d",&koi,&alt);
- if (koi < 128 || koi > 255 || alt < 128 || alt > 255) {
- fprintf(stderr,"invalid value %d\n",koi);
- exit(1);
- }
- koitab[koi-128] = alt;
- alttab[alt-128] = koi;
- }
+ while (fgets(buf, sizeof(buf), stdin) != NULL)
+ {
+ if (*buf == '#')
+ continue;
+ sscanf(buf, "%d %d", &koi, &alt);
+ if (koi < 128 || koi > 255 || alt < 128 || alt > 255)
+ {
+ fprintf(stderr, "invalid value %d\n", koi);
+ exit(1);
+ }
+ koitab[koi - 128] = alt;
+ alttab[alt - 128] = koi;
+ }
- i = 0;
- printf("static char koi2alt[] = {\n");
- while (i < 128) {
- int j = 0;
- while (j < 8) {
- printf("0x%02x",koitab[i++]);
- j++;
- if (i >= 128) {
- break;
- }
- printf(", ");
- }
- printf("\n");
- }
- printf("};\n");
+ i = 0;
+ printf("static char koi2alt[] = {\n");
+ while (i < 128)
+ {
+ int j = 0;
- i = 0;
- printf("static char alt2koi[] = {\n");
- while (i < 128) {
- int j = 0;
- while (j < 8) {
- printf("0x%02x",alttab[i++]);
- j++;
- if (i >= 128) {
- break;
- }
- printf(", ");
- }
- printf("\n");
- }
- printf("};\n");
+ while (j < 8)
+ {
+ printf("0x%02x", koitab[i++]);
+ j++;
+ if (i >= 128)
+ break;
+ printf(", ");
+ }
+ printf("\n");
+ }
+ printf("};\n");
+
+ i = 0;
+ printf("static char alt2koi[] = {\n");
+ while (i < 128)
+ {
+ int j = 0;
+
+ while (j < 8)
+ {
+ printf("0x%02x", alttab[i++]);
+ j++;
+ if (i >= 128)
+ break;
+ printf(", ");
+ }
+ printf("\n");
+ }
+ printf("};\n");
}
diff --git a/src/backend/utils/mb/big5.c b/src/backend/utils/mb/big5.c
index 105854d2479..d35ee71b9ff 100644
--- a/src/backend/utils/mb/big5.c
+++ b/src/backend/utils/mb/big5.c
@@ -4,344 +4,372 @@
* This program is partially copied from lv(Multilingual file viewer)
* and slightly modified. lv is written and copyrighted by NARITA Tomio
* (nrt@web.ad.jp).
- *
+ *
* 1999/1/15 Tatsuo Ishii
*
- * $Id: big5.c,v 1.1 1999/02/02 18:51:22 momjian Exp $
+ * $Id: big5.c,v 1.2 1999/05/25 16:12:40 momjian Exp $
*/
#include "mb/pg_wchar.h"
-typedef struct {
- unsigned short code, peer;
-} codes_t;
+typedef struct
+{
+ unsigned short code,
+ peer;
+} codes_t;
/* map Big5 Level 1 to CNS 11643-1992 Plane 1 */
-static codes_t big5Level1ToCnsPlane1[ 25 ] = { /* range */
- { 0xA140, 0x2121 },
- { 0xA1F6, 0x2258 },
- { 0xA1F7, 0x2257 },
- { 0xA1F8, 0x2259 },
- { 0xA2AF, 0x2421 },
- { 0xA3C0, 0x4221 },
- { 0xa3e1, 0x0000 },
- { 0xA440, 0x4421 },
- { 0xACFE, 0x5753 },
- { 0xacff, 0x0000 },
- { 0xAD40, 0x5323 },
- { 0xAFD0, 0x5754 },
- { 0xBBC8, 0x6B51 },
- { 0xBE52, 0x6B50 },
- { 0xBE53, 0x6F5C },
- { 0xC1AB, 0x7536 },
- { 0xC2CB, 0x7535 },
- { 0xC2CC, 0x7737 },
- { 0xC361, 0x782E },
- { 0xC3B9, 0x7865 },
- { 0xC3BA, 0x7864 },
- { 0xC3BB, 0x7866 },
- { 0xC456, 0x782D },
- { 0xC457, 0x7962 },
- { 0xc67f, 0x0000 }
+static codes_t big5Level1ToCnsPlane1[25] = { /* range */
+ {0xA140, 0x2121},
+ {0xA1F6, 0x2258},
+ {0xA1F7, 0x2257},
+ {0xA1F8, 0x2259},
+ {0xA2AF, 0x2421},
+ {0xA3C0, 0x4221},
+ {0xa3e1, 0x0000},
+ {0xA440, 0x4421},
+ {0xACFE, 0x5753},
+ {0xacff, 0x0000},
+ {0xAD40, 0x5323},
+ {0xAFD0, 0x5754},
+ {0xBBC8, 0x6B51},
+ {0xBE52, 0x6B50},
+ {0xBE53, 0x6F5C},
+ {0xC1AB, 0x7536},
+ {0xC2CB, 0x7535},
+ {0xC2CC, 0x7737},
+ {0xC361, 0x782E},
+ {0xC3B9, 0x7865},
+ {0xC3BA, 0x7864},
+ {0xC3BB, 0x7866},
+ {0xC456, 0x782D},
+ {0xC457, 0x7962},
+ {0xc67f, 0x0000}
};
/* map CNS 11643-1992 Plane 1 to Big5 Level 1 */
-static codes_t cnsPlane1ToBig5Level1[ 26 ] = { /* range */
- { 0x2121, 0xA140 },
- { 0x2257, 0xA1F7 },
- { 0x2258, 0xA1F6 },
- { 0x2259, 0xA1F8 },
- { 0x234f, 0x0000 },
- { 0x2421, 0xA2AF },
- { 0x2571, 0x0000 },
- { 0x4221, 0xA3C0 },
- { 0x4242, 0x0000 },
- { 0x4421, 0xA440 },
- { 0x5323, 0xAD40 },
- { 0x5753, 0xACFE },
- { 0x5754, 0xAFD0 },
- { 0x6B50, 0xBE52 },
- { 0x6B51, 0xBBC8 },
- { 0x6F5C, 0xBE53 },
- { 0x7535, 0xC2CB },
- { 0x7536, 0xC1AB },
- { 0x7737, 0xC2CC },
- { 0x782D, 0xC456 },
- { 0x782E, 0xC361 },
- { 0x7864, 0xC3BA },
- { 0x7865, 0xC3B9 },
- { 0x7866, 0xC3BB },
- { 0x7962, 0xC457 },
- { 0x7d4c, 0x0000 }
+static codes_t cnsPlane1ToBig5Level1[26] = { /* range */
+ {0x2121, 0xA140},
+ {0x2257, 0xA1F7},
+ {0x2258, 0xA1F6},
+ {0x2259, 0xA1F8},
+ {0x234f, 0x0000},
+ {0x2421, 0xA2AF},
+ {0x2571, 0x0000},
+ {0x4221, 0xA3C0},
+ {0x4242, 0x0000},
+ {0x4421, 0xA440},
+ {0x5323, 0xAD40},
+ {0x5753, 0xACFE},
+ {0x5754, 0xAFD0},
+ {0x6B50, 0xBE52},
+ {0x6B51, 0xBBC8},
+ {0x6F5C, 0xBE53},
+ {0x7535, 0xC2CB},
+ {0x7536, 0xC1AB},
+ {0x7737, 0xC2CC},
+ {0x782D, 0xC456},
+ {0x782E, 0xC361},
+ {0x7864, 0xC3BA},
+ {0x7865, 0xC3B9},
+ {0x7866, 0xC3BB},
+ {0x7962, 0xC457},
+ {0x7d4c, 0x0000}
};
/* map Big5 Level 2 to CNS 11643-1992 Plane 2 */
-static codes_t big5Level2ToCnsPlane2[ 48 ] = { /* range */
- { 0xC940, 0x2121 },
- { 0xc94a, 0x0000 },
- { 0xC94B, 0x212B },
- { 0xC96C, 0x214D },
- { 0xC9BE, 0x214C },
- { 0xC9BF, 0x217D },
- { 0xC9ED, 0x224E },
- { 0xCAF7, 0x224D },
- { 0xCAF8, 0x2439 },
- { 0xD77A, 0x3F6A },
- { 0xD77B, 0x387E },
- { 0xDBA7, 0x3F6B },
- { 0xDDFC, 0x4176 },
- { 0xDDFD, 0x4424 },
- { 0xE8A3, 0x554C },
- { 0xE976, 0x5723 },
- { 0xEB5B, 0x5A29 },
- { 0xEBF1, 0x554B },
- { 0xEBF2, 0x5B3F },
- { 0xECDE, 0x5722 },
- { 0xECDF, 0x5C6A },
- { 0xEDAA, 0x5D75 },
- { 0xEEEB, 0x642F },
- { 0xEEEC, 0x6039 },
- { 0xF056, 0x5D74 },
- { 0xF057, 0x6243 },
- { 0xF0CB, 0x5A28 },
- { 0xF0CC, 0x6337 },
- { 0xF163, 0x6430 },
- { 0xF16B, 0x6761 },
- { 0xF16C, 0x6438 },
- { 0xF268, 0x6934 },
- { 0xF269, 0x6573 },
- { 0xF2C3, 0x664E },
- { 0xF375, 0x6762 },
- { 0xF466, 0x6935 },
- { 0xF4B5, 0x664D },
- { 0xF4B6, 0x6962 },
- { 0xF4FD, 0x6A4C },
- { 0xF663, 0x6A4B },
- { 0xF664, 0x6C52 },
- { 0xF977, 0x7167 },
- { 0xF9C4, 0x7166 },
- { 0xF9C5, 0x7234 },
- { 0xF9C6, 0x7240 },
- { 0xF9C7, 0x7235 },
- { 0xF9D2, 0x7241 },
- { 0xf9d6, 0x0000 }
+static codes_t big5Level2ToCnsPlane2[48] = { /* range */
+ {0xC940, 0x2121},
+ {0xc94a, 0x0000},
+ {0xC94B, 0x212B},
+ {0xC96C, 0x214D},
+ {0xC9BE, 0x214C},
+ {0xC9BF, 0x217D},
+ {0xC9ED, 0x224E},
+ {0xCAF7, 0x224D},
+ {0xCAF8, 0x2439},
+ {0xD77A, 0x3F6A},
+ {0xD77B, 0x387E},
+ {0xDBA7, 0x3F6B},
+ {0xDDFC, 0x4176},
+ {0xDDFD, 0x4424},
+ {0xE8A3, 0x554C},
+ {0xE976, 0x5723},
+ {0xEB5B, 0x5A29},
+ {0xEBF1, 0x554B},
+ {0xEBF2, 0x5B3F},
+ {0xECDE, 0x5722},
+ {0xECDF, 0x5C6A},
+ {0xEDAA, 0x5D75},
+ {0xEEEB, 0x642F},
+ {0xEEEC, 0x6039},
+ {0xF056, 0x5D74},
+ {0xF057, 0x6243},
+ {0xF0CB, 0x5A28},
+ {0xF0CC, 0x6337},
+ {0xF163, 0x6430},
+ {0xF16B, 0x6761},
+ {0xF16C, 0x6438},
+ {0xF268, 0x6934},
+ {0xF269, 0x6573},
+ {0xF2C3, 0x664E},
+ {0xF375, 0x6762},
+ {0xF466, 0x6935},
+ {0xF4B5, 0x664D},
+ {0xF4B6, 0x6962},
+ {0xF4FD, 0x6A4C},
+ {0xF663, 0x6A4B},
+ {0xF664, 0x6C52},
+ {0xF977, 0x7167},
+ {0xF9C4, 0x7166},
+ {0xF9C5, 0x7234},
+ {0xF9C6, 0x7240},
+ {0xF9C7, 0x7235},
+ {0xF9D2, 0x7241},
+ {0xf9d6, 0x0000}
};
/* map CNS 11643-1992 Plane 2 to Big5 Level 2 */
-static codes_t cnsPlane2ToBig5Level2[ 49 ] = { /* range */
- { 0x2121, 0xC940 },
- { 0x212B, 0xC94B },
- { 0x214C, 0xC9BE },
- { 0x214D, 0xC96C },
- { 0x217D, 0xC9BF },
- { 0x224D, 0xCAF7 },
- { 0x224E, 0xC9ED },
- { 0x2439, 0xCAF8 },
- { 0x387E, 0xD77B },
- { 0x3F6A, 0xD77A },
- { 0x3F6B, 0xDBA7 },
- { 0x4424, 0x0000 },
- { 0x4176, 0xDDFC },
- { 0x4177, 0x0000 },
- { 0x4424, 0xDDFD },
- { 0x554B, 0xEBF1 },
- { 0x554C, 0xE8A3 },
- { 0x5722, 0xECDE },
- { 0x5723, 0xE976 },
- { 0x5A28, 0xF0CB },
- { 0x5A29, 0xEB5B },
- { 0x5B3F, 0xEBF2 },
- { 0x5C6A, 0xECDF },
- { 0x5D74, 0xF056 },
- { 0x5D75, 0xEDAA },
- { 0x6039, 0xEEEC },
- { 0x6243, 0xF057 },
- { 0x6337, 0xF0CC },
- { 0x642F, 0xEEEB },
- { 0x6430, 0xF163 },
- { 0x6438, 0xF16C },
- { 0x6573, 0xF269 },
- { 0x664D, 0xF4B5 },
- { 0x664E, 0xF2C3 },
- { 0x6761, 0xF16B },
- { 0x6762, 0xF375 },
- { 0x6934, 0xF268 },
- { 0x6935, 0xF466 },
- { 0x6962, 0xF4B6 },
- { 0x6A4B, 0xF663 },
- { 0x6A4C, 0xF4FD },
- { 0x6C52, 0xF664 },
- { 0x7166, 0xF9C4 },
- { 0x7167, 0xF977 },
- { 0x7234, 0xF9C5 },
- { 0x7235, 0xF9C7 },
- { 0x7240, 0xF9C6 },
- { 0x7241, 0xF9D2 },
- { 0x7245, 0x0000 }
+static codes_t cnsPlane2ToBig5Level2[49] = { /* range */
+ {0x2121, 0xC940},
+ {0x212B, 0xC94B},
+ {0x214C, 0xC9BE},
+ {0x214D, 0xC96C},
+ {0x217D, 0xC9BF},
+ {0x224D, 0xCAF7},
+ {0x224E, 0xC9ED},
+ {0x2439, 0xCAF8},
+ {0x387E, 0xD77B},
+ {0x3F6A, 0xD77A},
+ {0x3F6B, 0xDBA7},
+ {0x4424, 0x0000},
+ {0x4176, 0xDDFC},
+ {0x4177, 0x0000},
+ {0x4424, 0xDDFD},
+ {0x554B, 0xEBF1},
+ {0x554C, 0xE8A3},
+ {0x5722, 0xECDE},
+ {0x5723, 0xE976},
+ {0x5A28, 0xF0CB},
+ {0x5A29, 0xEB5B},
+ {0x5B3F, 0xEBF2},
+ {0x5C6A, 0xECDF},
+ {0x5D74, 0xF056},
+ {0x5D75, 0xEDAA},
+ {0x6039, 0xEEEC},
+ {0x6243, 0xF057},
+ {0x6337, 0xF0CC},
+ {0x642F, 0xEEEB},
+ {0x6430, 0xF163},
+ {0x6438, 0xF16C},
+ {0x6573, 0xF269},
+ {0x664D, 0xF4B5},
+ {0x664E, 0xF2C3},
+ {0x6761, 0xF16B},
+ {0x6762, 0xF375},
+ {0x6934, 0xF268},
+ {0x6935, 0xF466},
+ {0x6962, 0xF4B6},
+ {0x6A4B, 0xF663},
+ {0x6A4C, 0xF4FD},
+ {0x6C52, 0xF664},
+ {0x7166, 0xF9C4},
+ {0x7167, 0xF977},
+ {0x7234, 0xF9C5},
+ {0x7235, 0xF9C7},
+ {0x7240, 0xF9C6},
+ {0x7241, 0xF9D2},
+ {0x7245, 0x0000}
};
/* Big Five Level 1 Correspondence to CNS 11643-1992 Plane 4 */
static unsigned short b1c4[][2] = {
- {0xC879, 0x2123},
- {0xC87B, 0x2124},
- {0xC87D, 0x212A},
- {0xC8A2, 0x2152}
+ {0xC879, 0x2123},
+ {0xC87B, 0x2124},
+ {0xC87D, 0x212A},
+ {0xC8A2, 0x2152}
};
/* Big Five Level 2 Correspondence to CNS 11643-1992 Plane 3 */
static unsigned short b2c3[][2] = {
- {0xF9D6, 0x4337},
- {0xF9D7, 0x4F50},
- {0xF9D8, 0x444E},
- {0xF9D9, 0x504A},
- {0xF9DA, 0x2C5D},
- {0xF9DB, 0x3D7E},
- {0xF9DC, 0x4B5C}
+ {0xF9D6, 0x4337},
+ {0xF9D7, 0x4F50},
+ {0xF9D8, 0x444E},
+ {0xF9D9, 0x504A},
+ {0xF9DA, 0x2C5D},
+ {0xF9DB, 0x3D7E},
+ {0xF9DC, 0x4B5C}
};
static unsigned short BinarySearchRange
-(codes_t *array, int high, unsigned short code )
+ (codes_t * array, int high, unsigned short code)
{
- int low, mid, distance, tmp;
+ int low,
+ mid,
+ distance,
+ tmp;
- low = 0;
- mid = high >> 1;
+ low = 0;
+ mid = high >> 1;
- for( ; low <= high ; mid = ( low + high ) >> 1 ){
- if( ( array[ mid ].code <= code ) && ( array[ mid + 1 ].code > code ) ){
- if( 0 == array[ mid ].peer )
- return 0;
- if( code >= 0xa140U ){
- /* big5 to cns */
- tmp = ( ( code & 0xff00 ) - ( array[ mid ].code & 0xff00 ) ) >> 8;
- high = code & 0x00ff;
- low = array[ mid ].code & 0x00ff;
- /*
- * NOTE: big5 high_byte: 0xa1-0xfe, low_byte: 0x40-0x7e, 0xa1-0xfe
- * (radicals: 0x00-0x3e, 0x3f-0x9c)
- * big5 radix is 0x9d. [region_low, region_high]
- * We should remember big5 has two different regions (above).
- * There is a bias for the distance between these regions.
- * 0xa1 - 0x7e + bias = 1 (Distance between 0xa1 and 0x7e is 1.)
- * bias = - 0x22.
- */
- distance = tmp * 0x9d + high - low +
- ( high >= 0xa1 ? ( low >= 0xa1 ? 0 : - 0x22 )
- : ( low >= 0xa1 ? + 0x22 : 0 ) );
- /*
- * NOTE: we have to convert the distance into a code point.
- * The code point's low_byte is 0x21 plus mod_0x5e.
- * In the first, we extract the mod_0x5e of the starting
- * code point, subtracting 0x21, and add distance to it.
- * Then we calculate again mod_0x5e of them, and restore
- * the final codepoint, adding 0x21.
- */
- tmp = ( array[ mid ].peer & 0x00ff ) + distance - 0x21;
- tmp = ( array[ mid ].peer & 0xff00 ) + ( ( tmp / 0x5e ) << 8 )
- + 0x21 + tmp % 0x5e;
- return tmp;
- } else {
- /* cns to big5 */
- tmp = ( ( code & 0xff00 ) - ( array[ mid ].code & 0xff00 ) ) >> 8;
- /*
- * NOTE: ISO charsets ranges between 0x21-0xfe (94charset).
- * Its radix is 0x5e. But there is no distance bias like big5.
- */
- distance = tmp * 0x5e
- + ( (int)( code & 0x00ff ) - (int)( array[ mid ].code & 0x00ff ) );
- /*
- * NOTE: Similar to big5 to cns conversion, we extract mod_0x9d and
- * restore mod_0x9d into a code point.
- */
- low = array[ mid ].peer & 0x00ff;
- tmp = low + distance - ( low >= 0xa1 ? 0x62 : 0x40 );
- low = tmp % 0x9d;
- tmp = ( array[ mid ].peer & 0xff00 ) + ( ( tmp / 0x9d ) << 8 )
- + ( low > 0x3e ? 0x62 : 0x40 ) + low;
- return tmp;
- }
- } else if( array[ mid ].code > code ){
- high = mid - 1;
- } else {
- low = mid + 1;
- }
- }
+ for (; low <= high; mid = (low + high) >> 1)
+ {
+ if ((array[mid].code <= code) && (array[mid + 1].code > code))
+ {
+ if (0 == array[mid].peer)
+ return 0;
+ if (code >= 0xa140 U)
+ {
+ /* big5 to cns */
+ tmp = ((code & 0xff00) - (array[mid].code & 0xff00)) >> 8;
+ high = code & 0x00ff;
+ low = array[mid].code & 0x00ff;
+
+ /*
+ * NOTE: big5 high_byte: 0xa1-0xfe, low_byte: 0x40-0x7e,
+ * 0xa1-0xfe (radicals: 0x00-0x3e, 0x3f-0x9c) big5 radix
+ * is 0x9d. [region_low, region_high]
+ * We should remember big5 has two different regions
+ * (above). There is a bias for the distance between these
+ * regions. 0xa1 - 0x7e + bias = 1 (Distance between 0xa1
+ * and 0x7e is 1.) bias = - 0x22.
+ */
+ distance = tmp * 0x9d + high - low +
+ (high >= 0xa1 ? (low >= 0xa1 ? 0 : -0x22)
+ : (low >= 0xa1 ? +0x22 : 0));
- return 0;
+ /*
+ * NOTE: we have to convert the distance into a code
+ * point. The code point's low_byte is 0x21 plus mod_0x5e.
+ * In the first, we extract the mod_0x5e of the starting
+ * code point, subtracting 0x21, and add distance to it.
+ * Then we calculate again mod_0x5e of them, and restore
+ * the final codepoint, adding 0x21.
+ */
+ tmp = (array[mid].peer & 0x00ff) + distance - 0x21;
+ tmp = (array[mid].peer & 0xff00) + ((tmp / 0x5e) << 8)
+ + 0x21 + tmp % 0x5e;
+ return tmp;
+ }
+ else
+ {
+ /* cns to big5 */
+ tmp = ((code & 0xff00) - (array[mid].code & 0xff00)) >> 8;
+
+ /*
+ * NOTE: ISO charsets ranges between 0x21-0xfe
+ * (94charset). Its radix is 0x5e. But there is no
+ * distance bias like big5.
+ */
+ distance = tmp * 0x5e
+ + ((int) (code & 0x00ff) - (int) (array[mid].code & 0x00ff));
+
+ /*
+ * NOTE: Similar to big5 to cns conversion, we extract
+ * mod_0x9d and restore mod_0x9d into a code point.
+ */
+ low = array[mid].peer & 0x00ff;
+ tmp = low + distance - (low >= 0xa1 ? 0x62 : 0x40);
+ low = tmp % 0x9d;
+ tmp = (array[mid].peer & 0xff00) + ((tmp / 0x9d) << 8)
+ + (low > 0x3e ? 0x62 : 0x40) + low;
+ return tmp;
+ }
+ }
+ else if (array[mid].code > code)
+ high = mid - 1;
+ else
+ low = mid + 1;
+ }
+
+ return 0;
}
-unsigned short BIG5toCNS(unsigned short big5, unsigned char *lc )
+unsigned short
+BIG5toCNS(unsigned short big5, unsigned char *lc)
{
- unsigned short cns = 0;
- int i;
+ unsigned short cns = 0;
+ int i;
- if( big5 < 0xc940U ){
- /* level 1 */
+ if (big5 < 0xc940 U)
+ {
+ /* level 1 */
- for (i=0;i<sizeof(b1c4)/sizeof(unsigned short);i++) {
- if (b1c4[i][0] == big5) {
- *lc = LC_CNS11643_4;
- return(b1c4[i][1] | 0x8080U);
- }
- }
+ for (i = 0; i < sizeof(b1c4) / sizeof(unsigned short); i++)
+ {
+ if (b1c4[i][0] == big5)
+ {
+ *lc = LC_CNS11643_4;
+ return (b1c4[i][1] | 0x8080 U);
+ }
+ }
- if( 0 < (cns = BinarySearchRange( big5Level1ToCnsPlane1, 23, big5 )) )
- *lc = LC_CNS11643_1;
- } else if( big5 == 0xc94aU ){
- /* level 2 */
- *lc = LC_CNS11643_1;
- cns = 0x4442;
- } else {
- /* level 2 */
- for (i=0;i<sizeof(b2c3)/sizeof(unsigned short);i++) {
- if (b2c3[i][0] == big5) {
- *lc = LC_CNS11643_3;
- return(b2c3[i][1]);
- }
- }
+ if (0 < (cns = BinarySearchRange(big5Level1ToCnsPlane1, 23, big5)))
+ *lc = LC_CNS11643_1;
+ }
+ else if (big5 == 0xc94a U)
+ {
+ /* level 2 */
+ *lc = LC_CNS11643_1;
+ cns = 0x4442;
+ }
+ else
+ {
+ /* level 2 */
+ for (i = 0; i < sizeof(b2c3) / sizeof(unsigned short); i++)
+ {
+ if (b2c3[i][0] == big5)
+ {
+ *lc = LC_CNS11643_3;
+ return (b2c3[i][1]);
+ }
+ }
- if( 0 < (cns = BinarySearchRange( big5Level2ToCnsPlane2, 46, big5 )) )
- *lc = LC_CNS11643_2;
- }
+ if (0 < (cns = BinarySearchRange(big5Level2ToCnsPlane2, 46, big5)))
+ *lc = LC_CNS11643_2;
+ }
- if( 0 == cns ){ /* no mapping Big5 to CNS 11643-1992 */
- *lc = 0;
- return (unsigned short)'?';
- }
+ if (0 == cns)
+ { /* no mapping Big5 to CNS 11643-1992 */
+ *lc = 0;
+ return (unsigned short) '?';
+ }
- return cns | 0x8080;
+ return cns | 0x8080;
}
-unsigned short CNStoBIG5( unsigned short cns, unsigned char lc )
+unsigned short
+CNStoBIG5(unsigned short cns, unsigned char lc)
{
- int i;
- unsigned int big5 = 0;
+ int i;
+ unsigned int big5 = 0;
- cns &= 0x7f7f;
+ cns &= 0x7f7f;
- switch( lc ){
- case LC_CNS11643_1:
- big5 = BinarySearchRange( cnsPlane1ToBig5Level1, 24, cns );
- break;
- case LC_CNS11643_2:
- big5 = BinarySearchRange( cnsPlane2ToBig5Level2, 47, cns );
- break;
- case LC_CNS11643_3:
- for (i=0;i<sizeof(b2c3)/sizeof(unsigned short);i++) {
- if (b2c3[i][1] == cns) {
- return(b2c3[i][0]);
- }
- }
- break;
- case LC_CNS11643_4:
- for (i=0;i<sizeof(b1c4)/sizeof(unsigned short);i++) {
- if (b1c4[i][1] == cns) {
- return(b1c4[i][0]);
- }
- }
- default:
- break;
- }
- return big5;
+ switch (lc)
+ {
+ case LC_CNS11643_1:
+ big5 = BinarySearchRange(cnsPlane1ToBig5Level1, 24, cns);
+ break;
+ case LC_CNS11643_2:
+ big5 = BinarySearchRange(cnsPlane2ToBig5Level2, 47, cns);
+ break;
+ case LC_CNS11643_3:
+ for (i = 0; i < sizeof(b2c3) / sizeof(unsigned short); i++)
+ {
+ if (b2c3[i][1] == cns)
+ return (b2c3[i][0]);
+ }
+ break;
+ case LC_CNS11643_4:
+ for (i = 0; i < sizeof(b1c4) / sizeof(unsigned short); i++)
+ {
+ if (b1c4[i][1] == cns)
+ return (b1c4[i][0]);
+ }
+ default:
+ break;
+ }
+ return big5;
}
diff --git a/src/backend/utils/mb/common.c b/src/backend/utils/mb/common.c
index 6d90c734454..cab36c7b4c6 100644
--- a/src/backend/utils/mb/common.c
+++ b/src/backend/utils/mb/common.c
@@ -2,7 +2,7 @@
* This file contains some public functions
* usable for both the backend and the frontend.
* Tatsuo Ishii
- * $Id: common.c,v 1.4 1999/05/13 10:28:25 ishii Exp $ */
+ * $Id: common.c,v 1.5 1999/05/25 16:12:41 momjian Exp $ */
#include <stdlib.h>
@@ -28,9 +28,8 @@ pg_char_to_encoding(const char *s)
{
pg_encoding_conv_tbl *p = pg_conv_tbl;
- if (!s) {
+ if (!s)
return (-1);
- }
for (; p->encoding >= 0; p++)
{
diff --git a/src/backend/utils/mb/conv.c b/src/backend/utils/mb/conv.c
index ca79706bd5f..002a4845454 100644
--- a/src/backend/utils/mb/conv.c
+++ b/src/backend/utils/mb/conv.c
@@ -2,7 +2,7 @@
* conversion between client encoding and server internal encoding
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: conv.c,v 1.7 1999/04/25 18:09:54 tgl Exp $
+ * $Id: conv.c,v 1.8 1999/05/25 16:12:41 momjian Exp $
*/
#include <stdio.h>
#include <string.h>
@@ -375,43 +375,52 @@ mic2euc_tw(unsigned char *mic, unsigned char *p, int len)
static void
big52mic(unsigned char *big5, unsigned char *p, int len)
{
- unsigned short c1;
- unsigned short big5buf, cnsBuf;
- unsigned char lc;
- char bogusBuf[2];
- int i;
-
- while (len > 0 && (c1 = *big5++))
- {
- if (c1 <= 0x007fU) { /* ASCII */
- len--;
- *p++ = c1;
- } else {
- len -= 2;
- big5buf = c1 << 8;
- c1 = *big5++;
- big5buf |= c1;
- cnsBuf = BIG5toCNS(big5buf, &lc);
- if (lc != 0) {
- if (lc == LC_CNS11643_3 || lc == LC_CNS11643_4) {
- *p++ = 0x9d; /* LCPRV2 */
- }
- *p++ = lc; /* Plane No. */
- *p++ = (cnsBuf >> 8) & 0x00ff;
- *p++ = cnsBuf & 0x00ff;
- } else { /* cannot convert */
- big5 -= 2;
- *p++ = '(';
- for (i=0;i<2;i++) {
- sprintf(bogusBuf,"%02x",*big5++);
- *p++ = bogusBuf[0];
- *p++ = bogusBuf[1];
- }
- *p++ = ')';
+ unsigned short c1;
+ unsigned short big5buf,
+ cnsBuf;
+ unsigned char lc;
+ char bogusBuf[2];
+ int i;
+
+ while (len > 0 && (c1 = *big5++))
+ {
+ if (c1 <= 0x007f U)
+ { /* ASCII */
+ len--;
+ *p++ = c1;
+ }
+ else
+ {
+ len -= 2;
+ big5buf = c1 << 8;
+ c1 = *big5++;
+ big5buf |= c1;
+ cnsBuf = BIG5toCNS(big5buf, &lc);
+ if (lc != 0)
+ {
+ if (lc == LC_CNS11643_3 || lc == LC_CNS11643_4)
+ {
+ *p++ = 0x9d;/* LCPRV2 */
+ }
+ *p++ = lc; /* Plane No. */
+ *p++ = (cnsBuf >> 8) & 0x00ff;
+ *p++ = cnsBuf & 0x00ff;
+ }
+ else
+ { /* cannot convert */
+ big5 -= 2;
+ *p++ = '(';
+ for (i = 0; i < 2; i++)
+ {
+ sprintf(bogusBuf, "%02x", *big5++);
+ *p++ = bogusBuf[0];
+ *p++ = bogusBuf[1];
+ }
+ *p++ = ')';
+ }
+ }
}
- }
- }
- *p = '\0';
+ *p = '\0';
}
/*
@@ -420,41 +429,46 @@ big52mic(unsigned char *big5, unsigned char *p, int len)
static void
mic2big5(unsigned char *mic, unsigned char *p, int len)
{
- int l;
- unsigned short c1;
- unsigned short big5buf, cnsBuf;
+ int l;
+ unsigned short c1;
+ unsigned short big5buf,
+ cnsBuf;
- while (len > 0 && (c1 = *mic))
- {
- l = pg_mic_mblen(mic++);
- len -= l;
-
- /* 0x9d means LCPRV2 */
- if (c1 == LC_CNS11643_1 || c1 == LC_CNS11643_2 || c1 == 0x9d)
- {
- if (c1 == 0x9d) {
- c1 = *mic++; /* get plane no. */
- }
- cnsBuf = (*mic++)<<8;
- cnsBuf |= (*mic++) & 0x00ff;
- big5buf = CNStoBIG5(cnsBuf, c1);
- if (big5buf == 0) { /* cannot convert to Big5! */
- mic -= l;
- printBogusChar(&mic, &p);
- } else {
- *p++ = (big5buf >> 8) & 0x00ff;
- *p++ = big5buf & 0x00ff;
- }
- }
- else if (c1 <= 0x7f) /* ASCII */
+ while (len > 0 && (c1 = *mic))
{
- *p++ = c1;
- } else { /* cannot convert to Big5! */
- mic--;
- printBogusChar(&mic, &p);
+ l = pg_mic_mblen(mic++);
+ len -= l;
+
+ /* 0x9d means LCPRV2 */
+ if (c1 == LC_CNS11643_1 || c1 == LC_CNS11643_2 || c1 == 0x9d)
+ {
+ if (c1 == 0x9d)
+ {
+ c1 = *mic++; /* get plane no. */
+ }
+ cnsBuf = (*mic++) << 8;
+ cnsBuf |= (*mic++) & 0x00ff;
+ big5buf = CNStoBIG5(cnsBuf, c1);
+ if (big5buf == 0)
+ { /* cannot convert to Big5! */
+ mic -= l;
+ printBogusChar(&mic, &p);
+ }
+ else
+ {
+ *p++ = (big5buf >> 8) & 0x00ff;
+ *p++ = big5buf & 0x00ff;
+ }
+ }
+ else if (c1 <= 0x7f) /* ASCII */
+ *p++ = c1;
+ else
+ { /* cannot convert to Big5! */
+ mic--;
+ printBogusChar(&mic, &p);
+ }
}
- }
- *p = '\0';
+ *p = '\0';
}
/*
@@ -543,6 +557,7 @@ mic2latin4(unsigned char *mic, unsigned char *p, int len)
{
mic2latin(mic, p, len, LC_ISO8859_4);
}
+
#ifdef NOT_USED
static void
latin52mic(unsigned char *l, unsigned char *p, int len)
@@ -554,6 +569,7 @@ mic2latin5(unsigned char *mic, unsigned char *p, int len)
{
mic2latin(mic, p, len, LC_ISO8859_5);
}
+
#endif
/*
@@ -590,7 +606,7 @@ mic2ascii(unsigned char *mic, unsigned char *p, int len)
*p = '\0';
}
-/*
+/*
* Cyrillic support
* currently supported Cyrillic encodings:
*
@@ -601,18 +617,18 @@ mic2ascii(unsigned char *mic, unsigned char *p, int len)
* Alternativny Variant (MS-DOS CP866)
*/
-/* koi2mic: KOI8-R to Mule internal code */
+/* koi2mic: KOI8-R to Mule internal code */
static void
koi2mic(unsigned char *l, unsigned char *p, int len)
{
- latin2mic(l, p, len, LC_KOI8_R);
+ latin2mic(l, p, len, LC_KOI8_R);
}
/* mic2koi: Mule internal code to KOI8-R */
static void
mic2koi(unsigned char *mic, unsigned char *p, int len)
{
- mic2latin(mic, p, len, LC_KOI8_R);
+ mic2latin(mic, p, len, LC_KOI8_R);
}
/*
@@ -625,30 +641,36 @@ mic2koi(unsigned char *mic, unsigned char *p, int len)
*/
static void
latin2mic_with_table(
- unsigned char *l, /* local charset string (source) */
- unsigned char *p, /* pointer to store mule internal code
- (destination) */
- int len, /* length of l */
- int lc, /* leading character of p */
- unsigned char *tab /* code conversion table */
- )
-{
- unsigned char c1,c2;
-
- while (len-- > 0 && (c1 = *l++)) {
- if (c1 < 128) {
- *p++ = c1;
- } else {
- c2 = tab[c1 - 128];
- if (c2) {
- *p++ = lc;
- *p++ = c2;
- } else {
- *p++ = ' '; /* cannot convert */
- }
- }
- }
- *p = '\0';
+ unsigned char *l, /* local charset string (source) */
+ unsigned char *p, /* pointer to store mule internal
+ * code (destination) */
+ int len, /* length of l */
+ int lc, /* leading character of p */
+ unsigned char *tab /* code conversion table */
+)
+{
+ unsigned char c1,
+ c2;
+
+ while (len-- > 0 && (c1 = *l++))
+ {
+ if (c1 < 128)
+ *p++ = c1;
+ else
+ {
+ c2 = tab[c1 - 128];
+ if (c2)
+ {
+ *p++ = lc;
+ *p++ = c2;
+ }
+ else
+ {
+ *p++ = ' '; /* cannot convert */
+ }
+ }
+ }
+ *p = '\0';
}
/*
@@ -656,190 +678,202 @@ latin2mic_with_table(
* conversion from the mule internal code to a local charset
* with a encoding conversion table.
* the table is ordered according to the second byte of the mule
- * internal code starting from 128 (0x80).
+ * internal code starting from 128 (0x80).
* each entry in the table
* holds the corresponding code point for the local code.
*/
static void
mic2latin_with_table(
- unsigned char *mic, /* mule internal code (source) */
- unsigned char *p, /* local code (destination) */
- int len, /* length of p */
- int lc, /* leading character */
- unsigned char *tab /* code conversion table */
- )
-{
-
- unsigned char c1,c2;
-
- while (len-- > 0 && (c1 = *mic++)) {
- if (c1 < 128) {
- *p++ = c1;
- } else if (c1 == lc) {
- c1 = *mic++;
- len--;
- c2 = tab[c1 - 128];
- if (c2) {
- *p++ = c2;
- } else {
- *p++ = ' '; /* cannot convert */
- }
- } else {
- *p++ = ' '; /* bogus character */
- }
- }
- *p = '\0';
-}
-
-/* iso2mic: ISO-8859-5 to Mule internal code */
+ unsigned char *mic, /* mule internal code
+ * (source) */
+ unsigned char *p, /* local code (destination) */
+ int len, /* length of p */
+ int lc, /* leading character */
+ unsigned char *tab /* code conversion table */
+)
+{
+
+ unsigned char c1,
+ c2;
+
+ while (len-- > 0 && (c1 = *mic++))
+ {
+ if (c1 < 128)
+ *p++ = c1;
+ else if (c1 == lc)
+ {
+ c1 = *mic++;
+ len--;
+ c2 = tab[c1 - 128];
+ if (c2)
+ *p++ = c2;
+ else
+ {
+ *p++ = ' '; /* cannot convert */
+ }
+ }
+ else
+ {
+ *p++ = ' '; /* bogus character */
+ }
+ }
+ *p = '\0';
+}
+
+/* iso2mic: ISO-8859-5 to Mule internal code */
static void
iso2mic(unsigned char *l, unsigned char *p, int len)
{
- static char iso2koi[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
- 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
- 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
- 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
- 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
- 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
- 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- latin2mic_with_table(l, p, len, LC_KOI8_R, iso2koi);
+ static char iso2koi[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
+ 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+ 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
+ 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
+ 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
+ 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
+ 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
+ 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ latin2mic_with_table(l, p, len, LC_KOI8_R, iso2koi);
}
/* mic2iso: Mule internal code to ISO8859-5 */
static void
mic2iso(unsigned char *mic, unsigned char *p, int len)
{
- static char koi2iso[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xee, 0xd0, 0xd1, 0xe6, 0xd4, 0xd5, 0xe4, 0xd3,
- 0xe5, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde,
- 0xdf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0xd6, 0xd2,
- 0xec, 0xeb, 0xd7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
- 0xce, 0xb0, 0xb1, 0xc6, 0xb4, 0xb5, 0xc4, 0xb3,
- 0xc5, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe,
- 0xbf, 0xcf, 0xc0, 0xc1, 0xc2, 0xc3, 0xb6, 0xb2,
- 0xcc, 0xcb, 0xb7, 0xc8, 0xcd, 0xc9, 0xc7, 0xca
- };
-
- mic2latin_with_table(mic, p, len, LC_KOI8_R, koi2iso);
-}
-
-/* win2mic: CP1251 to Mule internal code */
+ static char koi2iso[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xee, 0xd0, 0xd1, 0xe6, 0xd4, 0xd5, 0xe4, 0xd3,
+ 0xe5, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde,
+ 0xdf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0xd6, 0xd2,
+ 0xec, 0xeb, 0xd7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
+ 0xce, 0xb0, 0xb1, 0xc6, 0xb4, 0xb5, 0xc4, 0xb3,
+ 0xc5, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe,
+ 0xbf, 0xcf, 0xc0, 0xc1, 0xc2, 0xc3, 0xb6, 0xb2,
+ 0xcc, 0xcb, 0xb7, 0xc8, 0xcd, 0xc9, 0xc7, 0xca
+ };
+
+ mic2latin_with_table(mic, p, len, LC_KOI8_R, koi2iso);
+}
+
+/* win2mic: CP1251 to Mule internal code */
static void
win2mic(unsigned char *l, unsigned char *p, int len)
{
- static char win2koi[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00,
- 0xb3, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0xb7,
- 0x00, 0x00, 0xb6, 0xa6, 0xad, 0x00, 0x00, 0x00,
- 0xa3, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0xa7,
- 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
- 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
- 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
- 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
- 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
- 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
- 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1
- };
- latin2mic_with_table(l, p, len, LC_KOI8_R, win2koi);
+ static char win2koi[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00,
+ 0xb3, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0xb7,
+ 0x00, 0x00, 0xb6, 0xa6, 0xad, 0x00, 0x00, 0x00,
+ 0xa3, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0xa7,
+ 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
+ 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+ 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
+ 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
+ 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
+ 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
+ 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
+ 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1
+ };
+
+ latin2mic_with_table(l, p, len, LC_KOI8_R, win2koi);
}
/* mic2win: Mule internal code to CP1251 */
static void
mic2win(unsigned char *mic, unsigned char *p, int len)
{
- static char koi2win[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xb8, 0xba, 0x00, 0xb3, 0xbf,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xa8, 0xaa, 0x00, 0xb2, 0xaf,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00,
- 0xfe, 0xe0, 0xe1, 0xf6, 0xe4, 0xe5, 0xf4, 0xe3,
- 0xf5, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee,
- 0xef, 0xff, 0xf0, 0xf1, 0xf2, 0xf3, 0xe6, 0xe2,
- 0xfc, 0xfb, 0xe7, 0xf8, 0xfd, 0xf9, 0xf7, 0xfa,
- 0xde, 0xc0, 0xc1, 0xd6, 0xc4, 0xc5, 0xd4, 0xc3,
- 0xd5, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,
- 0xcf, 0xdf, 0xd0, 0xd1, 0xd2, 0xd3, 0xc6, 0xc2,
- 0xdc, 0xdb, 0xc7, 0xd8, 0xdd, 0xd9, 0xd7, 0xda
- };
- mic2latin_with_table(mic, p, len, LC_KOI8_R, koi2win);
-}
-
-/* alt2mic: CP866 to Mule internal code */
+ static char koi2win[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xb8, 0xba, 0x00, 0xb3, 0xbf,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xa8, 0xaa, 0x00, 0xb2, 0xaf,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00,
+ 0xfe, 0xe0, 0xe1, 0xf6, 0xe4, 0xe5, 0xf4, 0xe3,
+ 0xf5, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee,
+ 0xef, 0xff, 0xf0, 0xf1, 0xf2, 0xf3, 0xe6, 0xe2,
+ 0xfc, 0xfb, 0xe7, 0xf8, 0xfd, 0xf9, 0xf7, 0xfa,
+ 0xde, 0xc0, 0xc1, 0xd6, 0xc4, 0xc5, 0xd4, 0xc3,
+ 0xd5, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,
+ 0xcf, 0xdf, 0xd0, 0xd1, 0xd2, 0xd3, 0xc6, 0xc2,
+ 0xdc, 0xdb, 0xc7, 0xd8, 0xdd, 0xd9, 0xd7, 0xda
+ };
+
+ mic2latin_with_table(mic, p, len, LC_KOI8_R, koi2win);
+}
+
+/* alt2mic: CP866 to Mule internal code */
static void
alt2mic(unsigned char *l, unsigned char *p, int len)
{
- static char alt2koi[] = {
- 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
- 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
- 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
- 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
- 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
- 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
- 0xb3, 0xa3, 0xb4, 0xa4, 0xb7, 0xa7, 0x00, 0x00,
- 0xb6, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- latin2mic_with_table(l, p, len, LC_KOI8_R, alt2koi);
+ static char alt2koi[] = {
+ 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
+ 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+ 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
+ 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
+ 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
+ 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
+ 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
+ 0xb3, 0xa3, 0xb4, 0xa4, 0xb7, 0xa7, 0x00, 0x00,
+ 0xb6, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ latin2mic_with_table(l, p, len, LC_KOI8_R, alt2koi);
}
/* mic2alt: Mule internal code to CP866 */
static void
mic2alt(unsigned char *mic, unsigned char *p, int len)
{
- static char koi2alt[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xf1, 0xf3, 0x00, 0xf9, 0xf5,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xf0, 0xf2, 0x00, 0xf8, 0xf4,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00,
- 0xee, 0xa0, 0xa1, 0xe6, 0xa4, 0xa5, 0xe4, 0xa3,
- 0xe5, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae,
- 0xaf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0xa6, 0xa2,
- 0xec, 0xeb, 0xa7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
- 0x9e, 0x80, 0x81, 0x96, 0x84, 0x85, 0x94, 0x83,
- 0x95, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e,
- 0x8f, 0x9f, 0x90, 0x91, 0x92, 0x93, 0x86, 0x82,
- 0x9c, 0x9b, 0x87, 0x98, 0x9d, 0x99, 0x97, 0x9a
- };
- mic2latin_with_table(mic, p, len, LC_KOI8_R, koi2alt);
+ static char koi2alt[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xf1, 0xf3, 0x00, 0xf9, 0xf5,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xf0, 0xf2, 0x00, 0xf8, 0xf4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00,
+ 0xee, 0xa0, 0xa1, 0xe6, 0xa4, 0xa5, 0xe4, 0xa3,
+ 0xe5, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae,
+ 0xaf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0xa6, 0xa2,
+ 0xec, 0xeb, 0xa7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
+ 0x9e, 0x80, 0x81, 0x96, 0x84, 0x85, 0x94, 0x83,
+ 0x95, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e,
+ 0x8f, 0x9f, 0x90, 0x91, 0x92, 0x93, 0x86, 0x82,
+ 0x9c, 0x9b, 0x87, 0x98, 0x9d, 0x99, 0x97, 0x9a
+ };
+
+ mic2latin_with_table(mic, p, len, LC_KOI8_R, koi2alt);
}
/*
@@ -858,8 +892,8 @@ pg_encoding_conv_tbl pg_conv_tbl[] = {
{LATIN2, "LATIN2", 0, latin22mic, mic2latin2}, /* ISO 8859 Latin 2 */
{LATIN3, "LATIN3", 0, latin32mic, mic2latin3}, /* ISO 8859 Latin 3 */
{LATIN4, "LATIN4", 0, latin42mic, mic2latin4}, /* ISO 8859 Latin 4 */
- {LATIN5, "LATIN5", 0, iso2mic, mic2iso}, /* ISO 8859 Latin 5 */
- {KOI8, "KOI8", 0, koi2mic, mic2koi}, /* KOI8-R */
+ {LATIN5, "LATIN5", 0, iso2mic, mic2iso}, /* ISO 8859 Latin 5 */
+ {KOI8, "KOI8", 0, koi2mic, mic2koi}, /* KOI8-R */
{WIN, "WIN", 0, win2mic, mic2win}, /* CP1251 */
{ALT, "ALT", 0, alt2mic, mic2alt}, /* CP866 */
{SJIS, "SJIS", 1, sjis2mic, mic2sjis}, /* SJIS */
diff --git a/src/backend/utils/mb/iso.c b/src/backend/utils/mb/iso.c
index 4141578a3b8..a2903895b0c 100644
--- a/src/backend/utils/mb/iso.c
+++ b/src/backend/utils/mb/iso.c
@@ -4,63 +4,69 @@
*
* Tatsuo Ishii
*
- * $Id: iso.c,v 1.1 1999/03/24 07:01:37 ishii Exp $
+ * $Id: iso.c,v 1.2 1999/05/25 16:12:42 momjian Exp $
*/
#include <stdio.h>
main()
{
- int i;
- char koitab[128],isotab[128];
- char buf[4096];
- int koi,iso;
+ int i;
+ char koitab[128],
+ isotab[128];
+ char buf[4096];
+ int koi,
+ iso;
- for (i=0;i<128;i++) {
- koitab[i] = isotab[i] = 0;
- }
+ for (i = 0; i < 128; i++)
+ koitab[i] = isotab[i] = 0;
- while (fgets(buf,sizeof(buf),stdin) != NULL) {
- if (*buf == '#') {
- continue;
- }
- sscanf(buf,"%d %x",&koi,&iso);
- if (koi < 128 || koi > 255 || iso < 128 || iso > 255) {
- fprintf(stderr,"invalid value %d\n",koi);
- exit(1);
- }
- koitab[koi-128] = iso;
- isotab[iso-128] = koi;
- }
+ while (fgets(buf, sizeof(buf), stdin) != NULL)
+ {
+ if (*buf == '#')
+ continue;
+ sscanf(buf, "%d %x", &koi, &iso);
+ if (koi < 128 || koi > 255 || iso < 128 || iso > 255)
+ {
+ fprintf(stderr, "invalid value %d\n", koi);
+ exit(1);
+ }
+ koitab[koi - 128] = iso;
+ isotab[iso - 128] = koi;
+ }
- i = 0;
- printf("static char koi2iso[] = {\n");
- while (i < 128) {
- int j = 0;
- while (j < 8) {
- printf("0x%02x",koitab[i++]);
- j++;
- if (i >= 128) {
- break;
- }
- printf(", ");
- }
- printf("\n");
- }
- printf("};\n");
+ i = 0;
+ printf("static char koi2iso[] = {\n");
+ while (i < 128)
+ {
+ int j = 0;
- i = 0;
- printf("static char iso2koi[] = {\n");
- while (i < 128) {
- int j = 0;
- while (j < 8) {
- printf("0x%02x",isotab[i++]);
- j++;
- if (i >= 128) {
- break;
- }
- printf(", ");
- }
- printf("\n");
- }
- printf("};\n");
+ while (j < 8)
+ {
+ printf("0x%02x", koitab[i++]);
+ j++;
+ if (i >= 128)
+ break;
+ printf(", ");
+ }
+ printf("\n");
+ }
+ printf("};\n");
+
+ i = 0;
+ printf("static char iso2koi[] = {\n");
+ while (i < 128)
+ {
+ int j = 0;
+
+ while (j < 8)
+ {
+ printf("0x%02x", isotab[i++]);
+ j++;
+ if (i >= 128)
+ break;
+ printf(", ");
+ }
+ printf("\n");
+ }
+ printf("};\n");
}
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index f354ccc96a2..d5831b14e6a 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -3,14 +3,14 @@
* client encoding and server internal encoding.
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: mbutils.c,v 1.5 1999/02/02 18:51:23 momjian Exp $ */
+ * $Id: mbutils.c,v 1.6 1999/05/25 16:12:43 momjian Exp $ */
#include <stdio.h>
#include <string.h>
#include "mb/pg_wchar.h"
-static int client_encoding = -1;
+static int client_encoding = -1;
static void (*client_to_mic) ();/* something to MIC */
static void (*client_from_mic) (); /* MIC to something */
static void (*server_to_mic) ();/* something to MIC */
@@ -213,16 +213,14 @@ pg_mbcliplen(const unsigned char *mbstr, int len, int limit)
int clen = 0;
int l;
- while (*mbstr && len > 0)
+ while (*mbstr && len > 0)
{
l = pg_mblen(mbstr);
- if ((clen + l) > limit) {
+ if ((clen + l) > limit)
break;
- }
clen += l;
- if (clen == limit) {
+ if (clen == limit)
break;
- }
len -= l;
mbstr += l;
}
diff --git a/src/backend/utils/mb/variable.c b/src/backend/utils/mb/variable.c
index 0b2ffacd644..2452518e12d 100644
--- a/src/backend/utils/mb/variable.c
+++ b/src/backend/utils/mb/variable.c
@@ -2,7 +2,7 @@
* This file contains some public functions
* related to show/set/reset variable commands.
* Tatsuo Ishii
- * $Id: variable.c,v 1.3 1999/05/13 10:28:26 ishii Exp $
+ * $Id: variable.c,v 1.4 1999/05/25 16:12:44 momjian Exp $
*/
#include "mb/pg_wchar.h"
@@ -13,12 +13,12 @@ parse_client_encoding(const char *value)
int encoding;
encoding = pg_valid_client_encoding(value);
- if (encoding < 0) {
- if (value) {
+ if (encoding < 0)
+ {
+ if (value)
elog(ERROR, "Client encoding %s is not supported", value);
- } else {
+ else
elog(ERROR, "No client encoding is specified");
- }
}
else
{
diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c
index 2fc856d1b5d..0d557e30f6f 100644
--- a/src/backend/utils/mb/wchar.c
+++ b/src/backend/utils/mb/wchar.c
@@ -1,7 +1,7 @@
/*
* conversion functions between pg_wchar and multi-byte streams.
* Tatsuo Ishii
- * $Id: wchar.c,v 1.7 1999/04/25 20:35:51 tgl Exp $
+ * $Id: wchar.c,v 1.8 1999/05/25 16:12:45 momjian Exp $
*/
#include "mb/pg_wchar.h"
@@ -428,33 +428,33 @@ pg_wchar_tbl pg_wchar_table[] = {
{pg_euctw2wchar_with_len, pg_euctw_mblen}, /* 4 */
{pg_utf2wchar_with_len, pg_utf_mblen}, /* 5 */
{pg_mule2wchar_with_len, pg_mule_mblen}, /* 6 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 7 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 8 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 9 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 10 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 11 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 12 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 13 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 14 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 15 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 16 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 17 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 18 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 19 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 20 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 21 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 22 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 23 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 24 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 25 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 26 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 27 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 28 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 29 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 30 */
- {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 31 */
- {0, pg_sjis_mblen}, /* 32 */
- {0, pg_big5_mblen} /* 33 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 7 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 8 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 9 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 10 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 11 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 12 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 13 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 14 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 15 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 16 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 17 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 18 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 19 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 20 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 21 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 22 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 23 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 24 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 25 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 26 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 27 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 28 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 29 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 30 */
+ {pg_latin12wchar_with_len, pg_latin1_mblen}, /* 31 */
+ {0, pg_sjis_mblen}, /* 32 */
+ {0, pg_big5_mblen} /* 33 */
};
/* returns the byte length of a word for mule internal code */
diff --git a/src/backend/utils/mb/win.c b/src/backend/utils/mb/win.c
index 272c6a638c1..8db62b49b3c 100644
--- a/src/backend/utils/mb/win.c
+++ b/src/backend/utils/mb/win.c
@@ -4,63 +4,69 @@
*
* Tatsuo Ishii
*
- * $Id: win.c,v 1.1 1999/03/24 07:01:37 ishii Exp $
+ * $Id: win.c,v 1.2 1999/05/25 16:12:45 momjian Exp $
*/
#include <stdio.h>
main()
{
- int i;
- char koitab[128],wintab[128];
- char buf[4096];
- int koi,win;
+ int i;
+ char koitab[128],
+ wintab[128];
+ char buf[4096];
+ int koi,
+ win;
- for (i=0;i<128;i++) {
- koitab[i] = wintab[i] = 0;
- }
+ for (i = 0; i < 128; i++)
+ koitab[i] = wintab[i] = 0;
- while (fgets(buf,sizeof(buf),stdin) != NULL) {
- if (*buf == '#') {
- continue;
- }
- sscanf(buf,"%d %d",&koi,&win);
- if (koi < 128 || koi > 255 || win < 128 || win > 255) {
- fprintf(stderr,"invalid value %d\n",koi);
- exit(1);
- }
- koitab[koi-128] = win;
- wintab[win-128] = koi;
- }
+ while (fgets(buf, sizeof(buf), stdin) != NULL)
+ {
+ if (*buf == '#')
+ continue;
+ sscanf(buf, "%d %d", &koi, &win);
+ if (koi < 128 || koi > 255 || win < 128 || win > 255)
+ {
+ fprintf(stderr, "invalid value %d\n", koi);
+ exit(1);
+ }
+ koitab[koi - 128] = win;
+ wintab[win - 128] = koi;
+ }
- i = 0;
- printf("static char koi2win[] = {\n");
- while (i < 128) {
- int j = 0;
- while (j < 8) {
- printf("0x%02x",koitab[i++]);
- j++;
- if (i >= 128) {
- break;
- }
- printf(", ");
- }
- printf("\n");
- }
- printf("};\n");
+ i = 0;
+ printf("static char koi2win[] = {\n");
+ while (i < 128)
+ {
+ int j = 0;
- i = 0;
- printf("static char win2koi[] = {\n");
- while (i < 128) {
- int j = 0;
- while (j < 8) {
- printf("0x%02x",wintab[i++]);
- j++;
- if (i >= 128) {
- break;
- }
- printf(", ");
- }
- printf("\n");
- }
- printf("};\n");
+ while (j < 8)
+ {
+ printf("0x%02x", koitab[i++]);
+ j++;
+ if (i >= 128)
+ break;
+ printf(", ");
+ }
+ printf("\n");
+ }
+ printf("};\n");
+
+ i = 0;
+ printf("static char win2koi[] = {\n");
+ while (i < 128)
+ {
+ int j = 0;
+
+ while (j < 8)
+ {
+ printf("0x%02x", wintab[i++]);
+ j++;
+ if (i >= 128)
+ break;
+ printf(", ");
+ }
+ printf("\n");
+ }
+ printf("};\n");
}
diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c
index d72ebd347b5..e9ea6193492 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.23 1999/02/13 23:20:03 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.24 1999/05/25 16:12:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -188,7 +188,7 @@ GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path, int *encodin
int nbytes;
int max,
i;
- HeapTupleData tup;
+ HeapTupleData tup;
Page pg;
PageHeader ph;
char *dbfname;
diff --git a/src/backend/utils/misc/trace.c b/src/backend/utils/misc/trace.c
index 871e1d436a0..3ba1626c03d 100644
--- a/src/backend/utils/misc/trace.c
+++ b/src/backend/utils/misc/trace.c
@@ -132,10 +132,10 @@ tprintf(int flag, const char *fmt,...)
* Print a timestamp and a message to stdout or to syslog.
*/
int
-tprintf1(const char *fmt, ... )
+tprintf1(const char *fmt,...)
{
va_list ap;
- char line[ELOG_MAXLEN+TIMESTAMP_SIZE+1];
+ char line[ELOG_MAXLEN + TIMESTAMP_SIZE + 1];
va_start(ap, fmt);
#ifdef ELOG_TIMESTAMPS
@@ -145,10 +145,11 @@ tprintf1(const char *fmt, ... )
va_end(ap);
#ifdef USE_SYSLOG
- write_syslog(LOG_INFO, line+TIMESTAMP_SIZE);
+ write_syslog(LOG_INFO, line + TIMESTAMP_SIZE);
#endif
- if (UseSyslog <= 1) {
+ if (UseSyslog <= 1)
+ {
puts(line);
fflush(stdout);
}
@@ -193,7 +194,7 @@ eprintf(const char *fmt,...)
void
write_syslog(int level, char *line)
{
- static int openlog_done = 0;
+ static int openlog_done = 0;
if (UseSyslog >= 1)
{
@@ -348,9 +349,10 @@ read_pg_options(SIGNAL_ARGS)
char *s,
*p;
- if (!DataDir) {
- fprintf(stderr, "read_pg_options: DataDir not defined\n");
- return;
+ if (!DataDir)
+ {
+ fprintf(stderr, "read_pg_options: DataDir not defined\n");
+ return;
}
snprintf(buffer, BUF_SIZE - 1, "%s/%s", DataDir, "pg_options");
diff --git a/src/backend/utils/mmgr/aset.c b/src/backend/utils/mmgr/aset.c
index 04bdba93292..1060f7b6def 100644
--- a/src/backend/utils/mmgr/aset.c
+++ b/src/backend/utils/mmgr/aset.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.15 1999/05/22 23:19:37 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.16 1999/05/25 16:12:51 momjian Exp $
*
* NOTE:
* This is a new (Feb. 05, 1999) implementation of the allocation set
@@ -51,7 +51,7 @@
*/
#define ALLOC_MINBITS 4 /* smallest chunk size is 16 bytes */
-#define ALLOC_SMALLCHUNK_LIMIT (1 << (ALLOCSET_NUM_FREELISTS-2+ALLOC_MINBITS))
+#define ALLOC_SMALLCHUNK_LIMIT (1 << (ALLOCSET_NUM_FREELISTS-2+ALLOC_MINBITS))
/* Size of largest chunk that we use a fixed size for */
/*--------------------
@@ -65,8 +65,8 @@
*--------------------
*/
-#define ALLOC_MIN_BLOCK_SIZE 8192
-#define ALLOC_MAX_BLOCK_SIZE (8 * 1024 * 1024)
+#define ALLOC_MIN_BLOCK_SIZE 8192
+#define ALLOC_MAX_BLOCK_SIZE (8 * 1024 * 1024)
#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData))
@@ -91,12 +91,12 @@
static inline int
AllocSetFreeIndex(Size size)
{
- int idx = 0;
+ int idx = 0;
if (size > 0)
{
size = (size - 1) >> ALLOC_MINBITS;
- while (size != 0 && idx < ALLOCSET_NUM_FREELISTS-1)
+ while (size != 0 && idx < ALLOCSET_NUM_FREELISTS - 1)
{
idx++;
size >>= 1;
@@ -105,7 +105,7 @@ AllocSetFreeIndex(Size size)
return idx;
}
-
+
/*
* Public routines
@@ -119,7 +119,7 @@ AllocSetFreeIndex(Size size)
*/
/*
- * AllocSetInit
+ * AllocSetInit
* Initializes given allocation set.
*
* Note:
@@ -147,7 +147,7 @@ AllocSetInit(AllocSet set, AllocMode mode, Size limit)
/*
- * AllocSetReset
+ * AllocSetReset
* Frees memory which is allocated in the given set.
*
* Exceptions:
@@ -156,8 +156,8 @@ AllocSetInit(AllocSet set, AllocMode mode, Size limit)
void
AllocSetReset(AllocSet set)
{
- AllocBlock block = set->blocks;
- AllocBlock next;
+ AllocBlock block = set->blocks;
+ AllocBlock next;
AssertArg(AllocSetIsValid(set));
@@ -172,7 +172,7 @@ AllocSetReset(AllocSet set)
}
/*
- * AllocSetContains
+ * AllocSetContains
* True iff allocation set contains given allocation element.
*
* Exceptions:
@@ -189,7 +189,7 @@ AllocSetContains(AllocSet set, AllocPointer pointer)
}
/*
- * AllocSetAlloc
+ * AllocSetAlloc
* Returns pointer to allocated memory of given size; memory is added
* to the set.
*
@@ -200,22 +200,22 @@ AllocSetContains(AllocSet set, AllocPointer pointer)
AllocPointer
AllocSetAlloc(AllocSet set, Size size)
{
- AllocBlock block;
- AllocChunk chunk;
- AllocChunk freeref = NULL;
- int fidx;
- Size chunk_size;
- Size blksize;
+ AllocBlock block;
+ AllocChunk chunk;
+ AllocChunk freeref = NULL;
+ int fidx;
+ Size chunk_size;
+ Size blksize;
AssertArg(AllocSetIsValid(set));
/*
- * Lookup in the corresponding free list if there is a
- * free chunk we could reuse
+ * Lookup in the corresponding free list if there is a free chunk we
+ * could reuse
*
*/
fidx = AllocSetFreeIndex(size);
- for (chunk = set->freelist[fidx]; chunk; chunk = (AllocChunk)chunk->aset)
+ for (chunk = set->freelist[fidx]; chunk; chunk = (AllocChunk) chunk->aset)
{
if (chunk->size >= size)
break;
@@ -223,18 +223,18 @@ AllocSetAlloc(AllocSet set, Size size)
}
/*
- * If one is found, remove it from the free list, make it again
- * a member of the alloc set and return it's data address.
+ * If one is found, remove it from the free list, make it again a
+ * member of the alloc set and return it's data address.
*
*/
if (chunk != NULL)
{
if (freeref == NULL)
- set->freelist[fidx] = (AllocChunk)chunk->aset;
+ set->freelist[fidx] = (AllocChunk) chunk->aset;
else
freeref->aset = chunk->aset;
- chunk->aset = (void *)set;
+ chunk->aset = (void *) set;
return AllocChunkGetPointer(chunk);
}
@@ -248,8 +248,8 @@ AllocSetAlloc(AllocSet set, Size size)
Assert(chunk_size >= size);
/*
- * If there is enough room in the active allocation block,
- * always allocate the chunk there.
+ * If there is enough room in the active allocation block, always
+ * allocate the chunk there.
*/
if ((block = set->blocks) != NULL)
@@ -261,8 +261,8 @@ AllocSetAlloc(AllocSet set, Size size)
}
/*
- * Otherwise, if requested size exceeds smallchunk limit,
- * allocate an entire separate block for this allocation
+ * Otherwise, if requested size exceeds smallchunk limit, allocate an
+ * entire separate block for this allocation
*
*/
if (block == NULL && size > ALLOC_SMALLCHUNK_LIMIT)
@@ -272,9 +272,9 @@ AllocSetAlloc(AllocSet set, Size size)
if (block == NULL)
elog(FATAL, "Memory exhausted in AllocSetAlloc()");
block->aset = set;
- block->freeptr = block->endptr = ((char *)block) + blksize;
+ block->freeptr = block->endptr = ((char *) block) + blksize;
- chunk = (AllocChunk) (((char *)block) + ALLOC_BLOCKHDRSZ);
+ chunk = (AllocChunk) (((char *) block) + ALLOC_BLOCKHDRSZ);
chunk->aset = set;
chunk->size = chunk_size;
@@ -310,8 +310,11 @@ AllocSetAlloc(AllocSet set, Size size)
{
/* Get size of prior block */
blksize = set->blocks->endptr - ((char *) set->blocks);
- /* Special case: if very first allocation was for a large chunk,
- * could have a funny-sized top block. Do something reasonable.
+
+ /*
+ * Special case: if very first allocation was for a large
+ * chunk, could have a funny-sized top block. Do something
+ * reasonable.
*/
if (blksize < ALLOC_MIN_BLOCK_SIZE)
blksize = ALLOC_MIN_BLOCK_SIZE;
@@ -321,12 +324,13 @@ AllocSetAlloc(AllocSet set, Size size)
blksize = ALLOC_MAX_BLOCK_SIZE;
/* Try to allocate it */
block = (AllocBlock) malloc(blksize);
+
/*
* We could be asking for pretty big blocks here, so cope if
* malloc fails. But give up if there's less than a meg or so
* available...
*/
- while (block == NULL && blksize > 1024*1024)
+ while (block == NULL && blksize > 1024 * 1024)
{
blksize >>= 1;
block = (AllocBlock) malloc(blksize);
@@ -336,8 +340,8 @@ AllocSetAlloc(AllocSet set, Size size)
if (block == NULL)
elog(FATAL, "Memory exhausted in AllocSetAlloc()");
block->aset = set;
- block->freeptr = ((char *)block) + ALLOC_BLOCKHDRSZ;
- block->endptr = ((char *)block) + blksize;
+ block->freeptr = ((char *) block) + ALLOC_BLOCKHDRSZ;
+ block->endptr = ((char *) block) + blksize;
block->next = set->blocks;
set->blocks = block;
@@ -346,8 +350,8 @@ AllocSetAlloc(AllocSet set, Size size)
/*
* OK, do the allocation
*/
- chunk = (AllocChunk)(block->freeptr);
- chunk->aset = (void *)set;
+ chunk = (AllocChunk) (block->freeptr);
+ chunk->aset = (void *) set;
chunk->size = chunk_size;
block->freeptr += (chunk_size + ALLOC_CHUNKHDRSZ);
Assert(block->freeptr <= block->endptr);
@@ -356,7 +360,7 @@ AllocSetAlloc(AllocSet set, Size size)
}
/*
- * AllocSetFree
+ * AllocSetFree
* Frees allocated memory; memory is removed from the set.
*
* Exceptions:
@@ -367,8 +371,8 @@ AllocSetAlloc(AllocSet set, Size size)
void
AllocSetFree(AllocSet set, AllocPointer pointer)
{
- int fidx;
- AllocChunk chunk;
+ int fidx;
+ AllocChunk chunk;
/* AssertArg(AllocSetIsValid(set)); */
/* AssertArg(AllocPointerIsValid(pointer)); */
@@ -377,12 +381,12 @@ AllocSetFree(AllocSet set, AllocPointer pointer)
chunk = AllocPointerGetChunk(pointer);
fidx = AllocSetFreeIndex(chunk->size);
- chunk->aset = (void *)set->freelist[fidx];
+ chunk->aset = (void *) set->freelist[fidx];
set->freelist[fidx] = chunk;
}
/*
- * AllocSetRealloc
+ * AllocSetRealloc
* Returns new pointer to allocated memory of given size; this memory
* is added to the set. Memory associated with given pointer is copied
* into the new memory, and the old memory is freed.
@@ -404,8 +408,8 @@ AllocSetRealloc(AllocSet set, AllocPointer pointer, Size size)
AssertArg(AllocSetContains(set, pointer));
/*
- * Chunk sizes are aligned to power of 2 on AllocSetAlloc().
- * Maybe the allocated area already is >= the new size.
+ * Chunk sizes are aligned to power of 2 on AllocSetAlloc(). Maybe the
+ * allocated area already is >= the new size.
*
*/
oldsize = AllocPointerGetSize(pointer);
@@ -425,7 +429,7 @@ AllocSetRealloc(AllocSet set, AllocPointer pointer, Size size)
}
/*
- * AllocSetDump
+ * AllocSetDump
* Displays allocated set.
*/
void
diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c
index 401ef7c6c0b..98cd5b6f161 100644
--- a/src/backend/utils/mmgr/mcxt.c
+++ b/src/backend/utils/mmgr/mcxt.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/mcxt.c,v 1.13 1999/03/22 16:45:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/mcxt.c,v 1.14 1999/05/25 16:12:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,7 +54,7 @@ static OrderedSetData ActiveGlobalMemorySetData; /* uninitialized */
#define PSIZESPACE(LEN) ((LEN) + sizeof (int32))
/*
- * AllocSizeIsValid
+ * AllocSizeIsValid
* True iff 0 < size and size <= MaxAllocSize.
*/
#define AllocSizeIsValid(size) (0 < (size) && (size) <= MaxAllocSize)
@@ -64,7 +64,7 @@ static OrderedSetData ActiveGlobalMemorySetData; /* uninitialized */
*****************************************************************************/
/*
- * CurrentMemoryContext
+ * CurrentMemoryContext
* Memory context for general global allocations.
*/
DLLIMPORT MemoryContext CurrentMemoryContext = NULL;
@@ -106,14 +106,14 @@ static struct MemoryContextMethodsData GlobalContextMethodsData = {
static struct GlobalMemoryData TopGlobalMemoryData = {
T_GlobalMemory, /* NodeTag tag */
&GlobalContextMethodsData, /* ContextMethods method */
- { NULL, { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }},
- /* free AllocSet */
+ {NULL, {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}},
+ /* free AllocSet */
"TopGlobal", /* char* name */
{0} /* uninitialized OrderedElemData elemD */
};
/*
- * TopMemoryContext
+ * TopMemoryContext
* Memory context for general global allocations.
*
* Note:
@@ -131,7 +131,7 @@ MemoryContext TopMemoryContext = (MemoryContext) &TopGlobalMemoryData;
*/
/*
- * EnableMemoryContext
+ * EnableMemoryContext
* Enables/disables memory management and global contexts.
*
* Note:
@@ -207,7 +207,7 @@ EnableMemoryContext(bool on)
}
/*
- * MemoryContextAlloc
+ * MemoryContextAlloc
* Returns pointer to aligned allocated memory in the given context.
*
* Note:
@@ -231,7 +231,7 @@ MemoryContextAlloc(MemoryContext context, Size size)
}
/*
- * MemoryContextFree
+ * MemoryContextFree
* Frees allocated memory referenced by pointer in the given context.
*
* Note:
@@ -252,7 +252,7 @@ MemoryContextFree(MemoryContext context, Pointer pointer)
}
/*
- * MemoryContextRelloc
+ * MemoryContextRelloc
* Returns pointer to aligned allocated memory in the given context.
*
* Note:
@@ -278,7 +278,7 @@ MemoryContextRealloc(MemoryContext context,
}
/*
- * MemoryContextGetName
+ * MemoryContextGetName
* Returns pointer to aligned allocated memory in the given context.
*
* Note:
@@ -301,7 +301,7 @@ MemoryContextGetName(MemoryContext context)
#endif
/*
- * PointerGetAllocSize
+ * PointerGetAllocSize
* Returns size of aligned allocated memory given pointer to it.
*
* Note:
@@ -324,7 +324,7 @@ PointerGetAllocSize(Pointer pointer)
#endif
/*
- * MemoryContextSwitchTo
+ * MemoryContextSwitchTo
* Returns the current context; installs the given context.
*
* Note:
@@ -351,7 +351,7 @@ MemoryContextSwitchTo(MemoryContext context)
* External Functions
*/
/*
- * CreateGlobalMemory
+ * CreateGlobalMemory
* Returns new global memory context.
*
* Note:
@@ -385,7 +385,7 @@ CreateGlobalMemory(char *name) /* XXX MemoryContextName */
}
/*
- * GlobalMemoryDestroy
+ * GlobalMemoryDestroy
* Destroys given global memory context.
*
* Exceptions:
@@ -413,7 +413,7 @@ GlobalMemoryDestroy(GlobalMemory context)
*****************************************************************************/
/*
- * GlobalMemoryAlloc
+ * GlobalMemoryAlloc
* Returns pointer to aligned space in the global context.
*
* Exceptions:
@@ -426,7 +426,7 @@ GlobalMemoryAlloc(GlobalMemory this, Size size)
}
/*
- * GlobalMemoryFree
+ * GlobalMemoryFree
* Frees allocated memory in the global context.
*
* Exceptions:
@@ -441,7 +441,7 @@ GlobalMemoryFree(GlobalMemory this,
}
/*
- * GlobalMemoryRealloc
+ * GlobalMemoryRealloc
* Returns pointer to aligned space in the global context.
*
* Note:
@@ -461,7 +461,7 @@ GlobalMemoryRealloc(GlobalMemory this,
}
/*
- * GlobalMemoryGetName
+ * GlobalMemoryGetName
* Returns name string for context.
*
* Exceptions:
@@ -474,7 +474,7 @@ GlobalMemoryGetName(GlobalMemory this)
}
/*
- * GlobalMemoryDump
+ * GlobalMemoryDump
* Dumps global memory context for debugging.
*
* Exceptions:
@@ -499,7 +499,7 @@ GlobalMemoryDump(GlobalMemory this)
}
/*
- * DumpGlobalMemories
+ * DumpGlobalMemories
* Dumps all global memory contexts for debugging.
*
* Exceptions:
diff --git a/src/backend/utils/mmgr/oset.c b/src/backend/utils/mmgr/oset.c
index 493197e8ea9..8aca4a2ec01 100644
--- a/src/backend/utils/mmgr/oset.c
+++ b/src/backend/utils/mmgr/oset.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/Attic/oset.c,v 1.11 1999/02/13 23:20:10 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/Attic/oset.c,v 1.12 1999/05/25 16:12:54 momjian Exp $
*
* NOTE
* XXX This is a preliminary implementation which lacks fail-fast
@@ -24,7 +24,7 @@ static void OrderedElemPush(OrderedElem elem);
static void OrderedElemPushHead(OrderedElem elem);
/*
- * OrderedElemGetBase
+ * OrderedElemGetBase
* Returns base of enclosing structure.
*/
static Pointer
@@ -37,7 +37,7 @@ OrderedElemGetBase(OrderedElem elem)
}
/*
- * OrderedSetInit
+ * OrderedSetInit
*/
void
OrderedSetInit(OrderedSet set, Offset offset)
@@ -49,7 +49,7 @@ OrderedSetInit(OrderedSet set, Offset offset)
}
/*
- * OrderedSetContains
+ * OrderedSetContains
* True iff ordered set contains given element.
*/
bool
@@ -59,7 +59,7 @@ OrderedSetContains(OrderedSet set, OrderedElem elem)
}
/*
- * OrderedSetGetHead
+ * OrderedSetGetHead
*/
Pointer
OrderedSetGetHead(OrderedSet set)
@@ -73,7 +73,7 @@ OrderedSetGetHead(OrderedSet set)
}
/*
- * OrderedSetGetTail
+ * OrderedSetGetTail
*/
#ifdef NOT_USED
Pointer
@@ -90,7 +90,7 @@ OrderedSetGetTail(OrderedSet set)
#endif
/*
- * OrderedElemGetPredecessor
+ * OrderedElemGetPredecessor
*/
Pointer
OrderedElemGetPredecessor(OrderedElem elem)
@@ -102,7 +102,7 @@ OrderedElemGetPredecessor(OrderedElem elem)
}
/*
- * OrderedElemGetSuccessor
+ * OrderedElemGetSuccessor
*/
Pointer
OrderedElemGetSuccessor(OrderedElem elem)
@@ -114,7 +114,7 @@ OrderedElemGetSuccessor(OrderedElem elem)
}
/*
- * OrderedElemPop
+ * OrderedElemPop
*/
void
OrderedElemPop(OrderedElem elem)
@@ -127,7 +127,7 @@ OrderedElemPop(OrderedElem elem)
}
/*
- * OrderedElemPushInto
+ * OrderedElemPushInto
*/
void
OrderedElemPushInto(OrderedElem elem, OrderedSet set)
@@ -140,7 +140,7 @@ OrderedElemPushInto(OrderedElem elem, OrderedSet set)
}
/*
- * OrderedElemPush
+ * OrderedElemPush
*/
static void
OrderedElemPush(OrderedElem elem)
@@ -149,7 +149,7 @@ OrderedElemPush(OrderedElem elem)
}
/*
- * OrderedElemPushHead
+ * OrderedElemPushHead
*/
static void
OrderedElemPushHead(OrderedElem elem)
diff --git a/src/backend/utils/mmgr/palloc.c b/src/backend/utils/mmgr/palloc.c
index 2653401b2a9..bf36908973a 100644
--- a/src/backend/utils/mmgr/palloc.c
+++ b/src/backend/utils/mmgr/palloc.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/Attic/palloc.c,v 1.11 1999/02/13 23:20:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/Attic/palloc.c,v 1.12 1999/05/25 16:12:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -36,7 +36,7 @@
char *
pstrdup(char *string)
{
- char *nstr;
+ char *nstr;
int len;
nstr = palloc(len = strlen(string) + 1);
@@ -44,4 +44,3 @@ pstrdup(char *string)
return nstr;
}
-
diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c
index 4068b13467a..d4cc93482f8 100644
--- a/src/backend/utils/mmgr/portalmem.c
+++ b/src/backend/utils/mmgr/portalmem.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/portalmem.c,v 1.18 1999/02/13 23:20:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/portalmem.c,v 1.19 1999/05/25 16:12:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -50,7 +50,7 @@
*
* Here is an old comment taken from nodes/memnodes.h
*
- * MemoryContext
+ * MemoryContext
* A logical context in which memory allocations occur.
*
* The types of memory contexts can be thought of as members of the
@@ -517,7 +517,7 @@ DumpPortals()
* ----------------------------------------------------------------
*/
/*
- * EnablePortalManager
+ * EnablePortalManager
* Enables/disables the portal management module.
*/
void
@@ -579,7 +579,7 @@ EnablePortalManager(bool on)
}
/*
- * GetPortalByName
+ * GetPortalByName
* Returns a portal given a portal name; returns blank portal given
* NULL; returns invalid portal if portal not found.
*
@@ -606,7 +606,7 @@ GetPortalByName(char *name)
}
/*
- * BlankPortalAssignName
+ * BlankPortalAssignName
* Returns former blank portal as portal with given name.
*
* Side effect:
@@ -659,7 +659,7 @@ BlankPortalAssignName(char *name) /* XXX PortalName */
}
/*
- * PortalSetQuery
+ * PortalSetQuery
* Attaches a "query" to portal.
*
* Exceptions:
@@ -686,7 +686,7 @@ PortalSetQuery(Portal portal,
}
/*
- * PortalGetQueryDesc
+ * PortalGetQueryDesc
* Returns query attached to portal.
*
* Exceptions:
@@ -703,7 +703,7 @@ PortalGetQueryDesc(Portal portal)
}
/*
- * PortalGetState
+ * PortalGetState
* Returns state attached to portal.
*
* Exceptions:
@@ -720,7 +720,7 @@ PortalGetState(Portal portal)
}
/*
- * CreatePortal
+ * CreatePortal
* Returns a new portal given a name.
*
* Note:
@@ -784,7 +784,7 @@ CreatePortal(char *name) /* XXX PortalName */
}
/*
- * PortalDestroy
+ * PortalDestroy
* Destroys portal.
*
* Exceptions:
@@ -813,22 +813,22 @@ PortalDestroy(Portal *portalP)
AllocSetReset(&portal->variable.setData); /* XXX log */
/*
- * In the case of a transaction abort it is possible that
- * we get called while one of the memory contexts of the portal
- * we're destroying is the current memory context.
- *
- * Don't know how to handle that cleanly because it is required
- * to be in that context right now. This portal struct remains
- * allocated in the PortalMemory context until backend dies.
+ * In the case of a transaction abort it is possible that we get
+ * called while one of the memory contexts of the portal we're
+ * destroying is the current memory context.
*
- * Not happy with that, but it's better to loose some bytes of
- * memory than to have the backend dump core.
+ * Don't know how to handle that cleanly because it is required to be in
+ * that context right now. This portal struct remains allocated in the
+ * PortalMemory context until backend dies.
+ *
+ * Not happy with that, but it's better to loose some bytes of memory
+ * than to have the backend dump core.
*
* --- Feb. 04, 1999 Jan Wieck
*/
- if (CurrentMemoryContext == (MemoryContext)PortalGetHeapMemory(portal))
+ if (CurrentMemoryContext == (MemoryContext) PortalGetHeapMemory(portal))
return;
- if (CurrentMemoryContext == (MemoryContext)PortalGetVariableMemory(portal))
+ if (CurrentMemoryContext == (MemoryContext) PortalGetVariableMemory(portal))
return;
if (portal != BlankPortal)
@@ -836,7 +836,7 @@ PortalDestroy(Portal *portalP)
}
/* ----------------
- * PortalResetHeapMemory
+ * PortalResetHeapMemory
* Resets portal's heap memory context.
*
* Someday, Reset, Start, and End can be optimized by keeping a global
@@ -873,7 +873,7 @@ PortalResetHeapMemory(Portal portal)
}
/*
- * StartPortalAllocMode
+ * StartPortalAllocMode
* Starts a new block of portal heap allocation using mode and limit;
* the current block is disabled until EndPortalAllocMode is called.
*
@@ -904,7 +904,7 @@ StartPortalAllocMode(AllocMode mode, Size limit)
/* allocate and initialize new block */
context->block = MemoryContextAlloc(
(MemoryContext) PortalHeapMemoryGetVariableMemory(context),
- sizeof(HeapMemoryBlockData));
+ sizeof(HeapMemoryBlockData));
/* XXX careful, context->block has never been stacked => bad state */
@@ -912,7 +912,7 @@ StartPortalAllocMode(AllocMode mode, Size limit)
}
/*
- * EndPortalAllocMode
+ * EndPortalAllocMode
* Ends current block of portal heap allocation; previous block is
* reenabled.
*
@@ -944,7 +944,7 @@ EndPortalAllocMode()
}
/*
- * PortalGetVariableMemory
+ * PortalGetVariableMemory
* Returns variable memory context for a given portal.
*
* Exceptions:
@@ -958,7 +958,7 @@ PortalGetVariableMemory(Portal portal)
}
/*
- * PortalGetHeapMemory
+ * PortalGetHeapMemory
* Returns heap memory context for a given portal.
*
* Exceptions:
@@ -972,7 +972,7 @@ PortalGetHeapMemory(Portal portal)
}
/*
- * PortalVariableMemoryGetPortal
+ * PortalVariableMemoryGetPortal
* Returns portal containing given variable memory context.
*
* Exceptions:
@@ -986,7 +986,7 @@ PortalVariableMemoryGetPortal(PortalVariableMemory context)
}
/*
- * PortalHeapMemoryGetPortal
+ * PortalHeapMemoryGetPortal
* Returns portal containing given heap memory context.
*
* Exceptions:
@@ -1000,7 +1000,7 @@ PortalHeapMemoryGetPortal(PortalHeapMemory context)
}
/*
- * PortalVariableMemoryGetHeapMemory
+ * PortalVariableMemoryGetHeapMemory
* Returns heap memory context associated with given variable memory.
*
* Exceptions:
@@ -1019,7 +1019,7 @@ PortalVariableMemoryGetHeapMemory(PortalVariableMemory context)
#endif
/*
- * PortalHeapMemoryGetVariableMemory
+ * PortalHeapMemoryGetVariableMemory
* Returns variable memory context associated with given heap memory.
*
* Exceptions:
diff --git a/src/backend/utils/sort/psort.c b/src/backend/utils/sort/psort.c
index d35141ad77b..497dceff07e 100644
--- a/src/backend/utils/sort/psort.c
+++ b/src/backend/utils/sort/psort.c
@@ -4,7 +4,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: psort.c,v 1.51 1999/05/09 00:53:22 tgl Exp $
+ * $Id: psort.c,v 1.52 1999/05/25 16:12:59 momjian Exp $
*
* NOTES
* Sorts the first relation into the second relation.
@@ -55,9 +55,9 @@
#include "utils/rel.h"
static bool createfirstrun(Sort *node);
-static bool createrun(Sort *node, BufFile *file);
-static void destroytape(BufFile *file);
-static void dumptuples(BufFile *file, Sort *node);
+static bool createrun(Sort *node, BufFile * file);
+static void destroytape(BufFile * file);
+static void dumptuples(BufFile * file, Sort *node);
static BufFile *gettape(void);
static void initialrun(Sort *node);
static void inittapes(Sort *node);
@@ -320,15 +320,11 @@ initialrun(Sort *node)
tp->tp_dummy--;
PS(node)->TotalDummy--;
if (tp->tp_dummy < (tp + 1)->tp_dummy)
- {
tp++;
- }
- else
+ else
{
if (tp->tp_dummy != 0)
- {
tp = PS(node)->Tape;
- }
else
{
PS(node)->Level++;
@@ -337,13 +333,13 @@ initialrun(Sort *node)
tp - PS(node)->Tape < PS(node)->TapeRange; tp++)
{
PS(node)->TotalDummy += (tp->tp_dummy = baseruns
- + (tp + 1)->tp_fib
- - tp->tp_fib);
+ + (tp + 1)->tp_fib
+ - tp->tp_fib);
tp->tp_fib = baseruns
+ (tp + 1)->tp_fib;
}
- tp = PS(node)->Tape;/* D4 */
- } /* D3 */
+ tp = PS(node)->Tape; /* D4 */
+ } /* D3 */
}
if (extrapasses)
{
@@ -354,9 +350,7 @@ initialrun(Sort *node)
continue;
}
else
- {
break;
- }
}
if ((bool) createrun(node, tp->tp_file) == false)
extrapasses = 1 + (PS(node)->Tuples != NULL);
@@ -479,7 +473,7 @@ createfirstrun(Sort *node)
* Tuples contains the tuples for the following run upon exit
*/
static bool
-createrun(Sort *node, BufFile *file)
+createrun(Sort *node, BufFile * file)
{
HeapTuple lasttuple;
HeapTuple tup;
@@ -554,9 +548,7 @@ createrun(Sort *node, BufFile *file)
memtuples[t_last] = tup;
}
else
- {
puttuple(&PS(node)->Tuples, tup, 0, &PS(node)->treeContext);
- }
}
if (lasttuple != NULL)
{
@@ -627,7 +619,7 @@ merge(Sort *node, struct tape * dest)
struct tape *lasttp; /* (TAPE[P]) */
struct tape *tp;
struct leftist *tuples;
- BufFile *destfile;
+ BufFile *destfile;
int times; /* runs left to merge */
int outdummy; /* complete dummy runs */
short fromtape;
@@ -644,10 +636,9 @@ merge(Sort *node, struct tape * dest)
tp->tp_fib += times;
/* Tape[].tp_fib (A[]) is set to proper exit values */
- if (PS(node)->TotalDummy < PS(node)->TapeRange) /* no complete dummy runs */
- {
+ if (PS(node)->TotalDummy < PS(node)->TapeRange) /* no complete dummy
+ * runs */
outdummy = 0;
- }
else
{
outdummy = PS(node)->TotalDummy; /* a large positive number */
@@ -729,7 +720,7 @@ merge(Sort *node, struct tape * dest)
* dumptuples - stores all the tuples in tree into file
*/
static void
-dumptuples(BufFile *file, Sort *node)
+dumptuples(BufFile * file, Sort *node)
{
struct leftist *tp;
struct leftist *newp;
@@ -812,7 +803,7 @@ psort_grabtuple(Sort *node, bool *should_free)
* file
*/
BufFileSeek(PS(node)->psort_grab_file,
- PS(node)->psort_current - sizeof(tlendummy), SEEK_SET);
+ PS(node)->psort_current - sizeof(tlendummy), SEEK_SET);
GETLEN(tuplen, PS(node)->psort_grab_file);
if (PS(node)->psort_current < tuplen)
elog(ERROR, "psort_grabtuple: too big last tuple len in backward scan");
@@ -845,7 +836,7 @@ psort_grabtuple(Sort *node, bool *should_free)
PS(node)->psort_current -= tuplen;
/* move to position of end tlen of prev tuple */
BufFileSeek(PS(node)->psort_grab_file,
- PS(node)->psort_current - sizeof(tlendummy), SEEK_SET);
+ PS(node)->psort_current - sizeof(tlendummy), SEEK_SET);
GETLEN(tuplen, PS(node)->psort_grab_file);
if (PS(node)->psort_current < tuplen + sizeof(tlendummy))
elog(ERROR, "psort_grabtuple: too big tuple len in backward scan");
@@ -1005,7 +996,7 @@ gettape()
* destroytape - unlinks the tape
*/
static void
-destroytape(BufFile *file)
+destroytape(BufFile * file)
{
BufFileClose(file);
}
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index bdcd1afdba8..104e57b9194 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.28 1999/04/12 16:57:27 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.29 1999/05/25 16:13:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -26,11 +26,11 @@
extern bool PostgresIsInitialized;
-SnapshotData SnapshotDirtyData;
-Snapshot SnapshotDirty = &SnapshotDirtyData;
+SnapshotData SnapshotDirtyData;
+Snapshot SnapshotDirty = &SnapshotDirtyData;
-Snapshot QuerySnapshot = NULL;
-Snapshot SerializableSnapshot = NULL;
+Snapshot QuerySnapshot = NULL;
+Snapshot SerializableSnapshot = NULL;
/*
* XXX Transaction system override hacks start here
@@ -59,7 +59,7 @@ setheapoverride(bool on)
*/
/*
- * HeapTupleSatisfiesItself
+ * HeapTupleSatisfiesItself
* True iff heap tuple is valid for "itself."
* "{it}self" means valid as of everything that's happened
* in the current transaction, _including_ the current command.
@@ -91,7 +91,7 @@ HeapTupleSatisfiesItself(HeapTupleHeader tuple)
if (tuple->t_infomask & HEAP_MOVED_OFF)
{
- if (TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -99,7 +99,7 @@ HeapTupleSatisfiesItself(HeapTupleHeader tuple)
}
else if (tuple->t_infomask & HEAP_MOVED_IN)
{
- if (!TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (!TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -130,7 +130,7 @@ HeapTupleSatisfiesItself(HeapTupleHeader tuple)
{
if (tuple->t_infomask & HEAP_MARKED_FOR_UPDATE)
return true;
- return false; /* updated by other */
+ return false; /* updated by other */
}
if (TransactionIdIsCurrentTransactionId(tuple->t_xmax))
@@ -157,7 +157,7 @@ HeapTupleSatisfiesItself(HeapTupleHeader tuple)
}
/*
- * HeapTupleSatisfiesNow
+ * HeapTupleSatisfiesNow
* True iff heap tuple is valid "now."
* "now" means valid including everything that's happened
* in the current transaction _up to, but not including,_
@@ -218,7 +218,7 @@ HeapTupleSatisfiesNow(HeapTupleHeader tuple)
if (tuple->t_infomask & HEAP_MOVED_OFF)
{
- if (TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -226,7 +226,7 @@ HeapTupleSatisfiesNow(HeapTupleHeader tuple)
}
else if (tuple->t_infomask & HEAP_MOVED_IN)
{
- if (!TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (!TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -300,19 +300,19 @@ HeapTupleSatisfiesNow(HeapTupleHeader tuple)
int
HeapTupleSatisfiesUpdate(HeapTuple tuple)
{
- HeapTupleHeader th = tuple->t_data;
+ HeapTupleHeader th = tuple->t_data;
if (AMI_OVERRIDE)
return HeapTupleMayBeUpdated;
if (!(th->t_infomask & HEAP_XMIN_COMMITTED))
{
- if (th->t_infomask & HEAP_XMIN_INVALID) /* xid invalid or aborted */
+ if (th->t_infomask & HEAP_XMIN_INVALID) /* xid invalid or aborted */
return HeapTupleInvisible;
if (th->t_infomask & HEAP_MOVED_OFF)
{
- if (TransactionIdDidCommit((TransactionId)th->t_cmin))
+ if (TransactionIdDidCommit((TransactionId) th->t_cmin))
{
th->t_infomask |= HEAP_XMIN_INVALID;
return HeapTupleInvisible;
@@ -320,7 +320,7 @@ HeapTupleSatisfiesUpdate(HeapTuple tuple)
}
else if (th->t_infomask & HEAP_MOVED_IN)
{
- if (!TransactionIdDidCommit((TransactionId)th->t_cmin))
+ if (!TransactionIdDidCommit((TransactionId) th->t_cmin))
{
th->t_infomask |= HEAP_XMIN_INVALID;
return HeapTupleInvisible;
@@ -329,9 +329,10 @@ HeapTupleSatisfiesUpdate(HeapTuple tuple)
else if (TransactionIdIsCurrentTransactionId(th->t_xmin))
{
if (CommandIdGEScanCommandId(th->t_cmin) && !heapisoverride())
- return HeapTupleInvisible; /* inserted after scan started */
+ return HeapTupleInvisible; /* inserted after scan
+ * started */
- if (th->t_infomask & HEAP_XMAX_INVALID) /* xid invalid */
+ if (th->t_infomask & HEAP_XMAX_INVALID) /* xid invalid */
return HeapTupleMayBeUpdated;
Assert(TransactionIdIsCurrentTransactionId(th->t_xmax));
@@ -340,14 +341,16 @@ HeapTupleSatisfiesUpdate(HeapTuple tuple)
return HeapTupleMayBeUpdated;
if (CommandIdGEScanCommandId(th->t_cmax))
- return HeapTupleSelfUpdated;/* updated after scan started */
+ return HeapTupleSelfUpdated; /* updated after scan
+ * started */
else
- return HeapTupleInvisible; /* updated before scan started */
+ return HeapTupleInvisible; /* updated before scan
+ * started */
}
else if (!TransactionIdDidCommit(th->t_xmin))
{
if (TransactionIdDidAbort(th->t_xmin))
- th->t_infomask |= HEAP_XMIN_INVALID; /* aborted */
+ th->t_infomask |= HEAP_XMIN_INVALID; /* aborted */
return HeapTupleInvisible;
}
th->t_infomask |= HEAP_XMIN_COMMITTED;
@@ -355,14 +358,14 @@ HeapTupleSatisfiesUpdate(HeapTuple tuple)
/* by here, the inserting transaction has committed */
- if (th->t_infomask & HEAP_XMAX_INVALID) /* xid invalid or aborted */
+ if (th->t_infomask & HEAP_XMAX_INVALID) /* xid invalid or aborted */
return HeapTupleMayBeUpdated;
if (th->t_infomask & HEAP_XMAX_COMMITTED)
{
if (th->t_infomask & HEAP_MARKED_FOR_UPDATE)
return HeapTupleMayBeUpdated;
- return HeapTupleUpdated; /* updated by other */
+ return HeapTupleUpdated;/* updated by other */
}
if (TransactionIdIsCurrentTransactionId(th->t_xmax))
@@ -370,7 +373,8 @@ HeapTupleSatisfiesUpdate(HeapTuple tuple)
if (th->t_infomask & HEAP_MARKED_FOR_UPDATE)
return HeapTupleMayBeUpdated;
if (CommandIdGEScanCommandId(th->t_cmax))
- return HeapTupleSelfUpdated;/* updated after scan started */
+ return HeapTupleSelfUpdated; /* updated after scan
+ * started */
else
return HeapTupleInvisible; /* updated before scan started */
}
@@ -392,7 +396,7 @@ HeapTupleSatisfiesUpdate(HeapTuple tuple)
if (th->t_infomask & HEAP_MARKED_FOR_UPDATE)
return HeapTupleMayBeUpdated;
- return HeapTupleUpdated; /* updated by other */
+ return HeapTupleUpdated; /* updated by other */
}
bool
@@ -411,13 +415,14 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple)
if (tuple->t_infomask & HEAP_MOVED_OFF)
{
+
/*
* HeapTupleSatisfiesDirty is used by unique btree-s and so
* may be used while vacuuming.
*/
- if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_cmin))
+ if (TransactionIdIsCurrentTransactionId((TransactionId) tuple->t_cmin))
return false;
- if (TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -426,9 +431,9 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple)
}
else if (tuple->t_infomask & HEAP_MOVED_IN)
{
- if (!TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_cmin))
+ if (!TransactionIdIsCurrentTransactionId((TransactionId) tuple->t_cmin))
{
- if (TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (TransactionIdDidCommit((TransactionId) tuple->t_cmin))
tuple->t_infomask |= HEAP_XMIN_COMMITTED;
else
{
@@ -457,7 +462,7 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple)
return false;
}
SnapshotDirty->xmin = tuple->t_xmin;
- return true; /* in insertion by other */
+ return true; /* in insertion by other */
}
else
tuple->t_infomask |= HEAP_XMIN_COMMITTED;
@@ -473,7 +478,7 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple)
if (tuple->t_infomask & HEAP_MARKED_FOR_UPDATE)
return true;
SnapshotDirty->tid = tuple->t_ctid;
- return false; /* updated by other */
+ return false; /* updated by other */
}
if (TransactionIdIsCurrentTransactionId(tuple->t_xmax))
@@ -488,7 +493,7 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple)
}
/* running xact */
SnapshotDirty->xmax = tuple->t_xmax;
- return true; /* in updation by other */
+ return true; /* in updation by other */
}
/* xmax transaction committed */
@@ -498,7 +503,7 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple)
return true;
SnapshotDirty->tid = tuple->t_ctid;
- return false; /* updated by other */
+ return false; /* updated by other */
}
bool
@@ -514,7 +519,7 @@ HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot)
if (tuple->t_infomask & HEAP_MOVED_OFF)
{
- if (TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -522,7 +527,7 @@ HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot)
}
else if (tuple->t_infomask & HEAP_MOVED_IN)
{
- if (!TransactionIdDidCommit((TransactionId)tuple->t_cmin))
+ if (!TransactionIdDidCommit((TransactionId) tuple->t_cmin))
{
tuple->t_infomask |= HEAP_XMIN_INVALID;
return false;
@@ -555,17 +560,17 @@ HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot)
tuple->t_infomask |= HEAP_XMIN_COMMITTED;
}
- /*
- * By here, the inserting transaction has committed -
- * have to check when...
+ /*
+ * By here, the inserting transaction has committed - have to check
+ * when...
*/
if (tuple->t_xmin >= snapshot->xmax)
return false;
if (tuple->t_xmin >= snapshot->xmin)
{
- uint32 i;
-
+ uint32 i;
+
for (i = 0; i < snapshot->xcnt; i++)
{
if (tuple->t_xmin == snapshot->xip[i])
@@ -584,15 +589,15 @@ HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot)
if (TransactionIdIsCurrentTransactionId(tuple->t_xmax))
{
if (CommandIdGEScanCommandId(tuple->t_cmax))
- return true; /* deleted after scan started */
+ return true; /* deleted after scan started */
else
- return false; /* deleted before scan started */
+ return false; /* deleted before scan started */
}
if (!TransactionIdDidCommit(tuple->t_xmax))
{
if (TransactionIdDidAbort(tuple->t_xmax))
- tuple->t_infomask |= HEAP_XMAX_INVALID; /* aborted */
+ tuple->t_infomask |= HEAP_XMAX_INVALID; /* aborted */
return true;
}
@@ -604,8 +609,8 @@ HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot)
return true;
if (tuple->t_xmax >= snapshot->xmin)
{
- uint32 i;
-
+ uint32 i;
+
for (i = 0; i < snapshot->xcnt; i++)
{
if (tuple->t_xmax == snapshot->xip[i])