aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-09-01 04:40:42 +0000
committerBruce Momjian <bruce@momjian.us>1998-09-01 04:40:42 +0000
commitfa1a8d6a97068295fe30ac646aec7493a6305bc2 (patch)
tree645f7cef3c78fbab4d6d7bbc7c9a61ad2893d273 /src/backend/utils
parentaf74855a608da4cd7ef88ceb2241ec1c75537f39 (diff)
downloadpostgresql-fa1a8d6a97068295fe30ac646aec7493a6305bc2.tar.gz
postgresql-fa1a8d6a97068295fe30ac646aec7493a6305bc2.zip
OK, folks, here is the pgindent output.
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/adt/acl.c10
-rw-r--r--src/backend/utils/adt/arrayfuncs.c50
-rw-r--r--src/backend/utils/adt/cash.c55
-rw-r--r--src/backend/utils/adt/chunk.c16
-rw-r--r--src/backend/utils/adt/date.c259
-rw-r--r--src/backend/utils/adt/dt.c63
-rw-r--r--src/backend/utils/adt/float.c10
-rw-r--r--src/backend/utils/adt/geo_ops.c71
-rw-r--r--src/backend/utils/adt/int.c4
-rw-r--r--src/backend/utils/adt/int8.c36
-rw-r--r--src/backend/utils/adt/like.c20
-rw-r--r--src/backend/utils/adt/misc.c10
-rw-r--r--src/backend/utils/adt/name.c4
-rw-r--r--src/backend/utils/adt/not_in.c6
-rw-r--r--src/backend/utils/adt/numutils.c4
-rw-r--r--src/backend/utils/adt/oid.c24
-rw-r--r--src/backend/utils/adt/oracle_compat.c12
-rw-r--r--src/backend/utils/adt/regexp.c4
-rw-r--r--src/backend/utils/adt/regproc.c82
-rw-r--r--src/backend/utils/adt/ruleutils.c2136
-rw-r--r--src/backend/utils/adt/selfuncs.c5
-rw-r--r--src/backend/utils/adt/sets.c6
-rw-r--r--src/backend/utils/adt/varchar.c91
-rw-r--r--src/backend/utils/adt/varlena.c92
-rw-r--r--src/backend/utils/adt/version.c13
-rw-r--r--src/backend/utils/cache/catcache.c8
-rw-r--r--src/backend/utils/cache/fcache.c7
-rw-r--r--src/backend/utils/cache/inval.c25
-rw-r--r--src/backend/utils/cache/lsyscache.c8
-rw-r--r--src/backend/utils/cache/relcache.c54
-rw-r--r--src/backend/utils/cache/syscache.c28
-rw-r--r--src/backend/utils/error/assert.c4
-rw-r--r--src/backend/utils/error/elog.c59
-rw-r--r--src/backend/utils/error/exc.c8
-rw-r--r--src/backend/utils/fmgr/fmgr.c4
-rw-r--r--src/backend/utils/hash/dynahash.c6
-rw-r--r--src/backend/utils/init/findbe.c12
-rw-r--r--src/backend/utils/init/miscinit.c13
-rw-r--r--src/backend/utils/init/postinit.c12
-rw-r--r--src/backend/utils/mb/common.c57
-rw-r--r--src/backend/utils/mb/conv.c684
-rw-r--r--src/backend/utils/mb/mbutils.c269
-rw-r--r--src/backend/utils/mb/utftest.c44
-rw-r--r--src/backend/utils/mb/variable.c70
-rw-r--r--src/backend/utils/mb/wchar.c569
-rw-r--r--src/backend/utils/mb/wstrcmp.c22
-rw-r--r--src/backend/utils/mb/wstrncmp.c45
-rw-r--r--src/backend/utils/misc/database.c16
-rw-r--r--src/backend/utils/misc/superuser.c6
-rw-r--r--src/backend/utils/misc/trace.c178
-rw-r--r--src/backend/utils/mmgr/aset.c5
-rw-r--r--src/backend/utils/mmgr/mcxt.c5
-rw-r--r--src/backend/utils/mmgr/palloc.c6
-rw-r--r--src/backend/utils/mmgr/portalmem.c4
-rw-r--r--src/backend/utils/time/tqual.c12
55 files changed, 2820 insertions, 2503 deletions
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index db5ea074c81..15c590dc811 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.30 1998/09/01 03:25:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.31 1998/09/01 04:32:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -151,8 +151,8 @@ aclparse(char *s, AclItem *aip, unsigned *modechg)
{
case ACL_IDTYPE_UID:
htup = SearchSysCacheTuple(USENAME,
- PointerGetDatum(name),
- 0, 0, 0);
+ PointerGetDatum(name),
+ 0, 0, 0);
if (!HeapTupleIsValid(htup))
elog(ERROR, "aclparse: non-existent user \"%s\"", name);
aip->ai_id = ((Form_pg_shadow) GETSTRUCT(htup))->usesysid;
@@ -262,8 +262,8 @@ aclitemout(AclItem *aip)
{
case ACL_IDTYPE_UID:
htup = SearchSysCacheTuple(USESYSID,
- ObjectIdGetDatum(aip->ai_id),
- 0, 0, 0);
+ ObjectIdGetDatum(aip->ai_id),
+ 0, 0, 0);
if (!HeapTupleIsValid(htup))
{
char *tmp = int2out(aip->ai_id);
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index cb604baa0ff..04a224feaeb 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.33 1998/09/01 03:25:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.34 1998/09/01 04:32:24 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -43,23 +43,19 @@
/*-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-*/
static int _ArrayCount(char *str, int *dim, int typdelim);
-static char *
-_ReadArrayStr(char *arrayStr, int nitems, int ndim, int *dim,
+static char *_ReadArrayStr(char *arrayStr, int nitems, int ndim, int *dim,
FmgrInfo *inputproc, Oid typelem, int32 typmod,
char typdelim, int typlen, bool typbyval,
char typalign, int *nbytes);
#ifdef LOARRAY
-static char *
-_ReadLOArray(char *str, int *nbytes, int *fd, bool *chunkFlag,
+static char *_ReadLOArray(char *str, int *nbytes, int *fd, bool *chunkFlag,
int ndim, int *dim, int baseSize);
#endif
-static void
-_CopyArrayEls(char **values, char *p, int nitems, int typlen,
+static void _CopyArrayEls(char **values, char *p, int nitems, int typlen,
char typalign, bool typbyval);
-static void
-system_cache_lookup(Oid element_type, bool input, int *typlen,
+static void system_cache_lookup(Oid element_type, bool input, int *typlen,
bool *typbyval, char *typdelim, Oid *typelem, Oid *proc,
char *typalign);
static Datum _ArrayCast(char *value, bool byval, int len);
@@ -68,18 +64,15 @@ static Datum _ArrayCast(char *value, bool byval, int len);
static char *_AdvanceBy1word(char *str, char **word);
#endif
-static void
-_ArrayRange(int *st, int *endp, int bsize, char *destPtr,
+static void _ArrayRange(int *st, int *endp, int bsize, char *destPtr,
ArrayType *array, int from);
static int _ArrayClipCount(int *stI, int *endpI, ArrayType *array);
-static void
-_LOArrayRange(int *st, int *endp, int bsize, int srcfd,
+static void _LOArrayRange(int *st, int *endp, int bsize, int srcfd,
int destfd, ArrayType *array, int isSrcLO, bool *isNull);
-static void
-_ReadArray(int *st, int *endp, int bsize, int srcfd, int destfd,
+static void _ReadArray(int *st, int *endp, int bsize, int srcfd, int destfd,
ArrayType *array, int isDestLO, bool *isNull);
-static int ArrayCastAndSet(char *src, bool typbyval, int typlen, char *dest);
-static int SanityCheckInput(int ndim, int n, int *dim, int *lb, int *indx);
+static int ArrayCastAndSet(char *src, bool typbyval, int typlen, char *dest);
+static int SanityCheckInput(int ndim, int n, int *dim, int *lb, int *indx);
static int array_read(char *destptr, int eltsize, int nitems, char *srcptr);
static char *array_seek(char *ptr, int eltsize, int nitems);
@@ -608,7 +601,8 @@ array_out(ArrayType *v, Oid element_type)
FmgrInfo outputproc;
char typalign;
- char *p, *tmp,
+ char *p,
+ *tmp,
*retval,
**values,
delim[2];
@@ -698,9 +692,11 @@ array_out(ArrayType *v, Oid element_type)
*/
overall_length += 2;
}
- for (tmp=values[i];*tmp;tmp++) {
+ for (tmp = values[i]; *tmp; tmp++)
+ {
overall_length += 1;
- if (*tmp=='"') overall_length += 1;
+ if (*tmp == '"')
+ overall_length += 1;
}
overall_length += 1;
}
@@ -729,12 +725,14 @@ array_out(ArrayType *v, Oid element_type)
if (!typbyval)
{
strcat(p, "\"");
- l=strlen(p);
- for (tmp=values[k];*tmp;tmp++) {
- if (*tmp=='"') p[l++]='\\';
- p[l++]=*tmp;
- }
- p[l]='\0';
+ l = strlen(p);
+ for (tmp = values[k]; *tmp; tmp++)
+ {
+ if (*tmp == '"')
+ p[l++] = '\\';
+ p[l++] = *tmp;
+ }
+ p[l] = '\0';
strcat(p, "\"");
}
else
diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c
index dde1eb2f2c6..262d2d4deda 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.25 1998/09/01 03:25:49 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.26 1998/09/01 04:32:26 momjian Exp $
*/
#include <stdio.h>
@@ -34,6 +34,7 @@ static const char *num_word(Cash value);
#ifdef USE_LOCALE
static struct lconv *lconvert = NULL;
+
#endif
/* cash_in()
@@ -46,7 +47,7 @@ static struct lconv *lconvert = NULL;
* monetary values returned by localeconv() can be multiple
* bytes/characters. This code assumes one byte only. - tgl 97/04/14
* XXX UNHACK Allow the currency symbol to be multi-byte.
- * - thomas 1998-03-01
+ * - thomas 1998-03-01
*/
Cash *
cash_in(const char *str)
@@ -77,11 +78,11 @@ cash_in(const char *str)
/* best guess is 2 in this case I think */
fpoint = ((lconvert->frac_digits != CHAR_MAX) ? lconvert->frac_digits : 2); /* int_frac_digits? */
- dsymbol = ((*lconvert->mon_decimal_point != '\0')? *lconvert->mon_decimal_point: '.');
- ssymbol = ((*lconvert->mon_thousands_sep != '\0')? *lconvert->mon_thousands_sep: ',');
- csymbol = ((*lconvert->currency_symbol != '\0')? lconvert->currency_symbol: "$");
- psymbol = ((*lconvert->positive_sign != '\0')? *lconvert->positive_sign: '+');
- nsymbol = ((*lconvert->negative_sign != '\0')? lconvert->negative_sign: "-");
+ dsymbol = ((*lconvert->mon_decimal_point != '\0') ? *lconvert->mon_decimal_point : '.');
+ ssymbol = ((*lconvert->mon_thousands_sep != '\0') ? *lconvert->mon_thousands_sep : ',');
+ csymbol = ((*lconvert->currency_symbol != '\0') ? lconvert->currency_symbol : "$");
+ psymbol = ((*lconvert->positive_sign != '\0') ? *lconvert->positive_sign : '+');
+ nsymbol = ((*lconvert->negative_sign != '\0') ? lconvert->negative_sign : "-");
#else
fpoint = 2;
dsymbol = '.';
@@ -92,27 +93,29 @@ cash_in(const char *str)
#endif
#ifdef CASHDEBUG
-printf( "cashin- precision '%d'; decimal '%c'; thousands '%c'; currency '%s'; positive '%c'; negative '%s'\n",
- fpoint, dsymbol, ssymbol, csymbol, psymbol, nsymbol);
+ printf("cashin- precision '%d'; decimal '%c'; thousands '%c'; currency '%s'; positive '%c'; negative '%s'\n",
+ fpoint, dsymbol, ssymbol, csymbol, psymbol, nsymbol);
#endif
/* we need to add all sorts of checking here. For now just */
/* strip all leading whitespace and any leading currency symbol */
- while (isspace(*s)) s++;
- if (strncmp(s,csymbol,strlen(csymbol)) == 0) s += strlen(csymbol);
+ while (isspace(*s))
+ s++;
+ if (strncmp(s, csymbol, strlen(csymbol)) == 0)
+ s += strlen(csymbol);
#ifdef CASHDEBUG
-printf( "cashin- string is '%s'\n", s);
+ printf("cashin- string is '%s'\n", s);
#endif
/* a leading minus or paren signifies a negative number */
/* again, better heuristics needed */
- if (strncmp(s,nsymbol,strlen(nsymbol)) == 0)
+ if (strncmp(s, nsymbol, strlen(nsymbol)) == 0)
{
sgn = -1;
s += strlen(nsymbol);
#ifdef CASHDEBUG
-printf( "cashin- negative symbol; string is '%s'\n", s);
+ printf("cashin- negative symbol; string is '%s'\n", s);
#endif
}
else if (*s == '(')
@@ -125,14 +128,16 @@ printf( "cashin- negative symbol; string is '%s'\n", s);
s++;
#ifdef CASHDEBUG
-printf( "cashin- string is '%s'\n", s);
+ printf("cashin- string is '%s'\n", s);
#endif
- while (isspace(*s)) s++;
- if (strncmp(s,csymbol,strlen(csymbol)) == 0) s += strlen(csymbol);
+ while (isspace(*s))
+ s++;
+ if (strncmp(s, csymbol, strlen(csymbol)) == 0)
+ s += strlen(csymbol);
#ifdef CASHDEBUG
-printf( "cashin- string is '%s'\n", s);
+ printf("cashin- string is '%s'\n", s);
#endif
for (;; s++)
@@ -184,7 +189,7 @@ printf( "cashin- string is '%s'\n", s);
*result = (value * sgn);
#ifdef CASHDEBUG
-printf( "cashin- result is %d\n", *result);
+ printf("cashin- result is %d\n", *result);
#endif
return result;
@@ -219,14 +224,14 @@ cash_out(Cash *in_value)
lconvert = localeconv();
mon_group = *lconvert->mon_grouping;
- comma = ((*lconvert->mon_thousands_sep != '\0')? *lconvert->mon_thousands_sep: ',');
+ comma = ((*lconvert->mon_thousands_sep != '\0') ? *lconvert->mon_thousands_sep : ',');
/* frac_digits in the C locale seems to return CHAR_MAX */
/* best guess is 2 in this case I think */
points = ((lconvert->frac_digits != CHAR_MAX) ? lconvert->frac_digits : 2); /* int_frac_digits? */
convention = lconvert->n_sign_posn;
- dsymbol = ((*lconvert->mon_decimal_point != '\0')? *lconvert->mon_decimal_point: '.');
- csymbol = ((*lconvert->currency_symbol != '\0')? lconvert->currency_symbol: "$");
- nsymbol = ((*lconvert->negative_sign != '\0')? lconvert->negative_sign: "-");
+ dsymbol = ((*lconvert->mon_decimal_point != '\0') ? *lconvert->mon_decimal_point : '.');
+ csymbol = ((*lconvert->currency_symbol != '\0') ? lconvert->currency_symbol : "$");
+ nsymbol = ((*lconvert->negative_sign != '\0') ? lconvert->negative_sign : "-");
#else
mon_group = 3;
comma = ',';
@@ -273,8 +278,8 @@ cash_out(Cash *in_value)
value /= 10;
}
- strncpy((buf+count-strlen(csymbol)+1),csymbol,strlen(csymbol));
- count -= strlen(csymbol)-1;
+ strncpy((buf + count - strlen(csymbol) + 1), csymbol, strlen(csymbol));
+ count -= strlen(csymbol) - 1;
if (buf[LAST_DIGIT] == ',')
buf[LAST_DIGIT] = buf[LAST_PAREN];
diff --git a/src/backend/utils/adt/chunk.c b/src/backend/utils/adt/chunk.c
index 05d9a52bc54..2f340f41ade 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.17 1998/09/01 03:25:52 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/chunk.c,v 1.18 1998/09/01 04:32:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -40,25 +40,21 @@
static CHUNK_INFO cInfo;
/* non-export function prototypes */
-static int
-_FindBestChunk(int size, int *dmax, int *dbest, int dim,
+static int _FindBestChunk(int size, int *dmax, int *dbest, int dim,
int A[MAXPAT][MAXDIM + 1], int N);
static int get_next(int *d, int k, int C, int *dmax);
static void initialize_info(CHUNK_INFO *A, int ndim, int *dim, int *chunk);
#ifdef LOARRAY
-static void
-_ConvertToChunkFile(int n, int baseSize, int *dim, int *C,
+static void _ConvertToChunkFile(int n, int baseSize, int *dim, int *C,
int srcfd, int destfd);
-static void
-read_chunk(int *chunk_no, int *C, char *a_chunk, int srcfd,
+static void read_chunk(int *chunk_no, int *C, char *a_chunk, int srcfd,
int n, int baseSize, int *PX, int *dist);
static int write_chunk(struct varlena * a_chunk, int ofile);
static int seek_and_read(int pos, int size, char *buff, int fp, int from);
#endif
-static int
-GetChunkSize(FILE *fd, int ndim, int dim[MAXDIM], int baseSize,
+static int GetChunkSize(FILE *fd, int ndim, int dim[MAXDIM], int baseSize,
int d[MAXDIM]);
/*------------------------------------------------------------------------
@@ -421,7 +417,7 @@ seek_and_read(int pos, int size, char *buff, int fp, int from)
}
-#endif /* LOARRAY */
+#endif /* LOARRAY */
/*----------------------------------------------------------------------------
* _ReadChunkArray --
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 720178c4005..efbb8e45dcf 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.26 1998/09/01 03:25:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.27 1998/09/01 04:32:29 momjian Exp $
*
* NOTES
* This code is actually (almost) unused.
@@ -102,8 +102,7 @@ static int correct_dir(char *direction, int *signptr);
#endif
-static int
-istinterval(char *i_string,
+static int istinterval(char *i_string,
AbsoluteTime *i_start,
AbsoluteTime *i_end);
@@ -207,36 +206,39 @@ reltime2tm(int32 time, struct tm * tm)
} /* reltime2tm() */
#if FALSE
-char *timestring;
-long quantity;
-int i;
-int unitnr;
-
-timestring = (char *) palloc(Max(strlen(INVALID_RELTIME_STR),
- UNITMAXLEN) + 1);
-if (timevalue == INVALID_RELTIME)
+int
+dummyfunc()
{
- strcpy(timestring, INVALID_RELTIME_STR);
- return timestring;
-}
+ char *timestring;
+ long quantity;
+ int i;
+ int unitnr;
+
+ timestring = (char *) palloc(Max(strlen(INVALID_RELTIME_STR),
+ UNITMAXLEN) + 1);
+ if (timevalue == INVALID_RELTIME)
+ {
+ strcpy(timestring, INVALID_RELTIME_STR);
+ return timestring;
+ }
-if (timevalue == 0)
- i = 1; /* unit = 'seconds' */
-else
- for (i = 12; i >= 0; i = i - 2)
- if ((timevalue % sec_tab[i]) == 0)
- break; /* appropriate unit found */
-unitnr = i;
-quantity = (timevalue / sec_tab[unitnr]);
-if (quantity > 1 || quantity < -1)
- unitnr++; /* adjust index for PLURAL of unit */
-if (quantity >= 0)
- sprintf(timestring, "%c %lu %s", RELTIME_LABEL,
- quantity, unit_tab[unitnr]);
-else
- sprintf(timestring, "%c %lu %s %s", RELTIME_LABEL,
- (quantity * -1), unit_tab[unitnr], RELTIME_PAST);
-return timestring;
+ if (timevalue == 0)
+ i = 1; /* unit = 'seconds' */
+ else
+ for (i = 12; i >= 0; i = i - 2)
+ if ((timevalue % sec_tab[i]) == 0)
+ break; /* appropriate unit found */
+ unitnr = i;
+ quantity = (timevalue / sec_tab[unitnr]);
+ if (quantity > 1 || quantity < -1)
+ unitnr++; /* adjust index for PLURAL of unit */
+ if (quantity >= 0)
+ sprintf(timestring, "%c %lu %s", RELTIME_LABEL,
+ quantity, unit_tab[unitnr]);
+ else
+ sprintf(timestring, "%c %lu %s %s", RELTIME_LABEL,
+ (quantity * -1), unit_tab[unitnr], RELTIME_PAST);
+ return timestring;
}
#endif
@@ -987,126 +989,123 @@ isreltime(char *str)
} /* isreltime() */
#if FALSE
-char *p;
-char c;
-int i;
-char unit[UNITMAXLEN];
-char direction[DIRMAXLEN];
-int localSign;
-int localUnitNumber;
-long localQuantity;
-
-if (!PointerIsValid(sign))
-{
- sign = &localSign;
-}
-
-if (!PointerIsValid(unitnr))
+int
+dummyfunc()
{
- unitnr = &localUnitNumber;
-}
+ char *p;
+ char c;
+ int i;
+ char unit[UNITMAXLEN];
+ char direction[DIRMAXLEN];
+ int localSign;
+ int localUnitNumber;
+ long localQuantity;
+
+ if (!PointerIsValid(sign))
+ sign = &localSign;
+
+ if (!PointerIsValid(unitnr))
+ unitnr = &localUnitNumber;
+
+ if (!PointerIsValid(quantity))
+ quantity = &localQuantity;
+
+ unit[0] = '\0';
+ direction[0] = '\0';
+ p = timestring;
+ /* skip leading blanks */
+ while ((c = *p) != '\0')
+ {
+ if (c != ' ')
+ break;
+ p++;
+ }
-if (!PointerIsValid(quantity))
-{
- quantity = &localQuantity;
-}
+ /* Test whether 'invalid time' identifier or not */
+ if (!strncmp(INVALID_RELTIME_STR, p, strlen(INVALID_RELTIME_STR) + 1))
+ return 2; /* correct 'invalid time' identifier found */
-unit[0] = '\0';
-direction[0] = '\0';
-p = timestring;
- /* skip leading blanks */
-while ((c = *p) != '\0')
-{
+ /* handle label of relative time */
+ if (c != RELTIME_LABEL)
+ return 0; /* syntax error */
+ c = *++p;
if (c != ' ')
- break;
+ return 0; /* syntax error */
p++;
-}
-
- /* Test whether 'invalid time' identifier or not */
-if (!strncmp(INVALID_RELTIME_STR, p, strlen(INVALID_RELTIME_STR) + 1))
- return 2; /* correct 'invalid time' identifier found */
-
- /* handle label of relative time */
-if (c != RELTIME_LABEL)
- return 0; /* syntax error */
-c = *++p;
-if (c != ' ')
- return 0; /* syntax error */
-p++;
- /* handle the quantity */
-*quantity = 0;
-for (;;)
-{
- c = *p;
- if (isdigit(c))
- {
- *quantity = *quantity * 10 + (c - '0');
- p++;
- }
- else
+ /* handle the quantity */
+ *quantity = 0;
+ for (;;)
{
- if (c == ' ')
- break; /* correct quantity found */
+ c = *p;
+ if (isdigit(c))
+ {
+ *quantity = *quantity * 10 + (c - '0');
+ p++;
+ }
else
- return 0; /* syntax error */
+ {
+ if (c == ' ')
+ break; /* correct quantity found */
+ else
+ return 0; /* syntax error */
+ }
}
-}
- /* handle unit */
-p++;
-i = 0;
-for (;;)
-{
- c = *p;
- if (c >= 'a' && c <= 'z' && i <= (UNITMAXLEN - 1))
- {
- unit[i] = c;
- p++;
- i++;
- }
- else
+ /* handle unit */
+ p++;
+ i = 0;
+ for (;;)
{
- if ((c == ' ' || c == '\0')
- && correct_unit(unit, unitnr))
- break; /* correct unit found */
+ c = *p;
+ if (c >= 'a' && c <= 'z' && i <= (UNITMAXLEN - 1))
+ {
+ unit[i] = c;
+ p++;
+ i++;
+ }
else
- return 0; /* syntax error */
+ {
+ if ((c == ' ' || c == '\0')
+ && correct_unit(unit, unitnr))
+ break; /* correct unit found */
+ else
+ return 0; /* syntax error */
+ }
}
-}
- /* handle optional direction */
-if (c == ' ')
- p++;
-i = 0;
-*sign = 1;
-for (;;)
-{
- c = *p;
- if (c >= 'a' && c <= 'z' && i <= (DIRMAXLEN - 1))
- {
- direction[i] = c;
+ /* handle optional direction */
+ if (c == ' ')
p++;
- i++;
- }
- else
+ i = 0;
+ *sign = 1;
+ for (;;)
{
- if ((c == ' ' || c == '\0') && i == 0)
+ c = *p;
+ if (c >= 'a' && c <= 'z' && i <= (DIRMAXLEN - 1))
{
- *sign = 1;
- break; /* no direction specified */
+ direction[i] = c;
+ p++;
+ i++;
}
- if ((c == ' ' || c == '\0') && i != 0)
+ else
{
- direction[i] = '\0';
- correct_dir(direction, sign);
- break; /* correct direction found */
+ if ((c == ' ' || c == '\0') && i == 0)
+ {
+ *sign = 1;
+ break; /* no direction specified */
+ }
+ if ((c == ' ' || c == '\0') && i != 0)
+ {
+ direction[i] = '\0';
+ correct_dir(direction, sign);
+ break; /* correct direction found */
+ }
+ else
+ return 0; /* syntax error */
}
- else
- return 0; /* syntax error */
}
-}
-return 1;
+ return 1;
}
/*
diff --git a/src/backend/utils/adt/dt.c b/src/backend/utils/adt/dt.c
index fa6854fdc92..ae9c4663d2f 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.56 1998/09/01 03:25:57 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.57 1998/09/01 04:32:30 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,15 +32,12 @@
#include "utils/builtins.h"
static int DecodeDate(char *str, int fmask, int *tmask, struct tm * tm);
-static int
-DecodeNumber(int flen, char *field,
+static int DecodeNumber(int flen, char *field,
int fmask, int *tmask, struct tm * tm, double *fsec);
-static int
-DecodeNumberField(int len, char *str,
+static int DecodeNumberField(int len, char *str,
int fmask, int *tmask, struct tm * tm, double *fsec);
static int DecodeSpecial(int field, char *lowtoken, int *val);
-static int
-DecodeTime(char *str, int fmask, int *tmask,
+static int DecodeTime(char *str, int fmask, int *tmask,
struct tm * tm, double *fsec);
static int DecodeTimezone(char *str, int *tzp);
static int DecodeUnits(int field, char *lowtoken, int *val);
@@ -2208,7 +2205,7 @@ static datetkn deltatktbl[] = {
{"mils", UNITS, DTK_MILLENIUM}, /* "millenia" relative time units */
{"millenia", UNITS, DTK_MILLENIUM}, /* "millenia" relative time units */
{DMILLENIUM, UNITS, DTK_MILLENIUM}, /* "millenium" relative time units */
- {"millisecon", UNITS, DTK_MILLISEC}, /* relative time units */
+ {"millisecon", UNITS, DTK_MILLISEC}, /* relative time units */
{"min", UNITS, DTK_MINUTE}, /* "minute" relative time units */
{"mins", UNITS, DTK_MINUTE},/* "minutes" relative time units */
{"mins", UNITS, DTK_MINUTE},/* "minutes" relative time units */
@@ -2223,18 +2220,18 @@ static datetkn deltatktbl[] = {
{DMILLISEC, UNITS, DTK_MILLISEC},
{"mseconds", UNITS, DTK_MILLISEC},
{"msecs", UNITS, DTK_MILLISEC},
- {"qtr", UNITS, DTK_QUARTER}, /* "quarter" relative time */
+ {"qtr", UNITS, DTK_QUARTER},/* "quarter" relative time */
{DQUARTER, UNITS, DTK_QUARTER}, /* "quarter" relative time */
- {"reltime", IGNORE, 0}, /* for pre-v6.1 "Undefined Reltime" */
+ {"reltime", IGNORE, 0}, /* for pre-v6.1 "Undefined Reltime" */
{"s", UNITS, DTK_SECOND},
{"sec", UNITS, DTK_SECOND},
{DSECOND, UNITS, DTK_SECOND},
{"seconds", UNITS, DTK_SECOND},
{"secs", UNITS, DTK_SECOND},
- {DTIMEZONE, UNITS, DTK_TZ}, /* "timezone" time offset */
- {"tz", UNITS, DTK_TZ}, /* "timezone" time offset */
+ {DTIMEZONE, UNITS, DTK_TZ}, /* "timezone" time offset */
+ {"tz", UNITS, DTK_TZ}, /* "timezone" time offset */
{"tz_hour", UNITS, DTK_TZ_HOUR}, /* timezone hour units */
- {"tz_minute", UNITS, DTK_TZ_MINUTE}, /* timezone minutes units */
+ {"tz_minute", UNITS, DTK_TZ_MINUTE}, /* timezone minutes units */
{"undefined", RESERV, DTK_INVALID}, /* pre-v6.1 invalid time */
{"us", UNITS, DTK_MICROSEC},/* "microsecond" relative time units */
{"usec", UNITS, DTK_MICROSEC}, /* "microsecond" relative time
@@ -3645,7 +3642,7 @@ DecodeSpecial(int field, char *lowtoken, int *val)
* an unsigned floating point number. - thomas 1997-11-16
*
* Allow ISO-style time span, with implicit units on number of days
- * preceeding an hh:mm:ss field. - thomas 1998-04-30
+ * preceeding an hh:mm:ss field. - thomas 1998-04-30
*/
int
DecodeDateDelta(char **field, int *ftype, int nf, int *dtype, struct tm * tm, double *fsec)
@@ -3688,8 +3685,10 @@ DecodeDateDelta(char **field, int *ftype, int nf, int *dtype, struct tm * tm, do
break;
case DTK_TZ:
- /* Timezone is a token with a leading sign character
- * and otherwise the same as a non-signed numeric field
+
+ /*
+ * Timezone is a token with a leading sign character and
+ * otherwise the same as a non-signed numeric field
*/
case DTK_DATE:
case DTK_NUMBER:
@@ -4258,7 +4257,7 @@ EncodeDateTime(struct tm * tm, double fsec, int *tzp, char **tzn, int style, cha
*
* Support "traditional Postgres" and ISO-8601 styles.
* Actually, afaik ISO does not address time interval formatting,
- * but this looks similar to the spec for absolute date/time.
+ * but this looks similar to the spec for absolute date/time.
* - thomas 1998-04-30
*/
int
@@ -4270,7 +4269,7 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
switch (style)
{
- /* compatible with ISO date formats */
+ /* compatible with ISO date formats */
case USE_ISO_DATES:
break;
@@ -4284,7 +4283,7 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
{
is_before |= (tm->tm_year < 0);
sprintf(cp, "%d year%s",
- abs(tm->tm_year), ((abs(tm->tm_year) != 1) ? "s" : ""));
+ abs(tm->tm_year), ((abs(tm->tm_year) != 1) ? "s" : ""));
cp += strlen(cp);
is_nonzero = TRUE;
}
@@ -4292,26 +4291,26 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
if (tm->tm_mon != 0)
{
is_before |= (tm->tm_mon < 0);
- sprintf(cp, "%s%d mon%s", (is_nonzero? " ": ""),
- abs(tm->tm_mon), ((abs(tm->tm_mon) != 1) ? "s" : ""));
+ sprintf(cp, "%s%d mon%s", (is_nonzero ? " " : ""),
+ abs(tm->tm_mon), ((abs(tm->tm_mon) != 1) ? "s" : ""));
cp += strlen(cp);
is_nonzero = TRUE;
}
switch (style)
{
- /* compatible with ISO date formats */
+ /* compatible with ISO date formats */
case USE_ISO_DATES:
if (tm->tm_mday != 0)
{
is_before |= (tm->tm_mday < 0);
- sprintf(cp, "%s%d", (is_nonzero? " ": ""), abs(tm->tm_mday));
+ sprintf(cp, "%s%d", (is_nonzero ? " " : ""), abs(tm->tm_mday));
cp += strlen(cp);
is_nonzero = TRUE;
}
is_before |= ((tm->tm_hour < 0) || (tm->tm_min < 0));
- sprintf(cp, "%s%02d:%02d", (is_nonzero? " ": ""),
- abs(tm->tm_hour), abs(tm->tm_min));
+ sprintf(cp, "%s%02d:%02d", (is_nonzero ? " " : ""),
+ abs(tm->tm_hour), abs(tm->tm_min));
cp += strlen(cp);
if ((tm->tm_hour != 0) || (tm->tm_min != 0))
is_nonzero = TRUE;
@@ -4341,7 +4340,7 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
if (tm->tm_mday != 0)
{
is_before |= (tm->tm_mday < 0);
- sprintf(cp, "%s%d day%s", (is_nonzero? " ": ""),
+ sprintf(cp, "%s%d day%s", (is_nonzero ? " " : ""),
abs(tm->tm_mday), ((abs(tm->tm_mday) != 1) ? "s" : ""));
cp += strlen(cp);
is_nonzero = TRUE;
@@ -4349,7 +4348,7 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
if (tm->tm_hour != 0)
{
is_before |= (tm->tm_hour < 0);
- sprintf(cp, "%s%d hour%s", (is_nonzero? " ": ""),
+ sprintf(cp, "%s%d hour%s", (is_nonzero ? " " : ""),
abs(tm->tm_hour), ((abs(tm->tm_hour) != 1) ? "s" : ""));
cp += strlen(cp);
is_nonzero = TRUE;
@@ -4358,8 +4357,8 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
if (tm->tm_min != 0)
{
is_before |= (tm->tm_min < 0);
- sprintf(cp, "%s%d min%s", (is_nonzero? " ": ""),
- abs(tm->tm_min), ((abs(tm->tm_min) != 1) ? "s" : ""));
+ sprintf(cp, "%s%d min%s", (is_nonzero ? " " : ""),
+ abs(tm->tm_min), ((abs(tm->tm_min) != 1) ? "s" : ""));
cp += strlen(cp);
is_nonzero = TRUE;
}
@@ -4369,7 +4368,7 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
{
fsec += tm->tm_sec;
is_before |= (fsec < 0);
- sprintf(cp, "%s%.2f secs", (is_nonzero? " ": ""), fabs(fsec));
+ sprintf(cp, "%s%.2f secs", (is_nonzero ? " " : ""), fabs(fsec));
cp += strlen(cp);
is_nonzero = TRUE;
@@ -4378,8 +4377,8 @@ EncodeTimeSpan(struct tm * tm, double fsec, int style, char *str)
else if (tm->tm_sec != 0)
{
is_before |= (tm->tm_sec < 0);
- sprintf(cp, "%s%d sec%s", (is_nonzero? " ": ""),
- abs(tm->tm_sec), ((abs(tm->tm_sec) != 1) ? "s" : ""));
+ sprintf(cp, "%s%d sec%s", (is_nonzero ? " " : ""),
+ abs(tm->tm_sec), ((abs(tm->tm_sec) != 1) ? "s" : ""));
cp += strlen(cp);
is_nonzero = TRUE;
}
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index 69cd1a42018..b1de92f643e 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.32 1998/09/01 03:25:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.33 1998/09/01 04:32:32 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -158,7 +158,7 @@ CheckFloat4Val(double val)
if (val != 0.0 && fabs(val) < FLOAT4_MIN)
elog(ERROR, "Bad float4 input format -- underflow");
return;
-#endif /* UNSAFE_FLOATS */
+#endif /* UNSAFE_FLOATS */
}
/*
@@ -183,7 +183,7 @@ CheckFloat8Val(double val)
if (val != 0.0 && fabs(val) < FLOAT8_MIN)
elog(ERROR, "Bad float8 input format -- underflow");
return;
-#endif /* UNSAFE_FLOATS */
+#endif /* UNSAFE_FLOATS */
}
/*
@@ -1491,7 +1491,7 @@ double x;
return w - TWO52[sx];
}
-#endif /* !HAVE_RINT */
+#endif /* !HAVE_RINT */
#ifndef HAVE_CBRT
@@ -1506,4 +1506,4 @@ double x;
return isneg ? -tmpres : tmpres;
}
-#endif /* !HAVE_CBRT */
+#endif /* !HAVE_CBRT */
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
index 2775f6b5fc9..1a99c366160 100644
--- a/src/backend/utils/adt/geo_ops.c
+++ b/src/backend/utils/adt/geo_ops.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.36 1998/09/01 03:26:01 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.37 1998/09/01 04:32:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -777,6 +777,7 @@ line_in(char *str)
LSEG lseg;
int isopen;
char *s;
+
#endif
if (!PointerIsValid(str))
@@ -800,9 +801,11 @@ line_in(char *str)
char *
line_out(LINE *line)
{
- char *result;
+ char *result;
+
#ifdef ENABLE_LINE_TYPE
- LSEG lseg;
+ LSEG lseg;
+
#endif
if (!PointerIsValid(line))
@@ -2343,7 +2346,7 @@ close_pl(Point *pt, LINE *line)
*
* Some tricky code here, relying on boolean expressions
* evaluating to only zero or one to use as an array index.
- * bug fixes by gthaker@atl.lmco.com; May 1, 1998
+ * bug fixes by gthaker@atl.lmco.com; May 1, 1998
*/
Point *
close_ps(Point *pt, LSEG *lseg)
@@ -2356,7 +2359,7 @@ close_ps(Point *pt, LSEG *lseg)
#ifdef GEODEBUG
printf("close_sp:pt->x %f pt->y %f\nlseg(0).x %f lseg(0).y %f lseg(1).x %f lseg(1).y %f\n",
- pt->x, pt->y, lseg->p[0].x, lseg->p[0].y, lseg->p[1].x, lseg->p[1].y);
+ pt->x, pt->y, lseg->p[0].x, lseg->p[0].y, lseg->p[1].x, lseg->p[1].y);
#endif
result = NULL;
@@ -2372,14 +2375,14 @@ close_ps(Point *pt, LSEG *lseg)
#endif
/* first check if point is below or above the entire lseg. */
if (pt->y < lseg->p[!yh].y)
- result = point_copy(&lseg->p[!yh]); /* below the lseg */
+ result = point_copy(&lseg->p[!yh]); /* below the lseg */
else if (pt->y > lseg->p[yh].y)
- result = point_copy(&lseg->p[yh]); /* above the lseg */
+ result = point_copy(&lseg->p[yh]); /* above the lseg */
if (result != NULL)
- return result;
+ return result;
/* point lines along (to left or right) of the vertical lseg. */
-
+
result = palloc(sizeof(*result));
result->x = lseg->p[0].x;
result->y = pt->y;
@@ -2392,11 +2395,11 @@ close_ps(Point *pt, LSEG *lseg)
#endif
/* first check if point is left or right of the entire lseg. */
if (pt->x < lseg->p[!xh].x)
- result = point_copy(&lseg->p[!xh]); /* left of the lseg */
+ result = point_copy(&lseg->p[!xh]); /* left of the lseg */
else if (pt->x > lseg->p[xh].x)
- result = point_copy(&lseg->p[xh]); /* right of the lseg */
+ result = point_copy(&lseg->p[xh]); /* right of the lseg */
if (result != NULL)
- return result;
+ return result;
/* point lines along (at top or below) the horiz. lseg. */
result = palloc(sizeof(*result));
@@ -2405,31 +2408,41 @@ close_ps(Point *pt, LSEG *lseg)
return result;
}
- /* vert. and horiz. cases are down, now check if the closest
- * point is one of the end points or someplace on the lseg. */
+ /*
+ * vert. and horiz. cases are down, now check if the closest point is
+ * one of the end points or someplace on the lseg.
+ */
/* TODO: Ask if "tmp" should be freed to prevent memory leak */
invm = -1.0 / point_sl(&(lseg->p[0]), &(lseg->p[1]));
- tmp = line_construct_pm(&lseg->p[!yh], invm); /* lower edge of the "band" */
- if (pt->y < (tmp->A*pt->x + tmp->C)) { /* we are below the lower edge */
- result = point_copy(&lseg->p[!yh]); /* below the lseg, take lower end pt */
-/* fprintf(stderr,"below: tmp A %f B %f C %f m %f\n",tmp->A,tmp->B,tmp->C, tmp->m); */
- return result;
+ tmp = line_construct_pm(&lseg->p[!yh], invm); /* lower edge of the
+ * "band" */
+ if (pt->y < (tmp->A * pt->x + tmp->C))
+ { /* we are below the lower edge */
+ result = point_copy(&lseg->p[!yh]); /* below the lseg, take
+ * lower end pt */
+/* fprintf(stderr,"below: tmp A %f B %f C %f m %f\n",tmp->A,tmp->B,tmp->C, tmp->m); */
+ return result;
}
- tmp = line_construct_pm(&lseg->p[yh], invm); /* upper edge of the "band" */
- if (pt->y > (tmp->A*pt->x + tmp->C)) { /* we are below the lower edge */
- result = point_copy(&lseg->p[yh]); /* above the lseg, take higher end pt */
-/* fprintf(stderr,"above: tmp A %f B %f C %f m %f\n",tmp->A,tmp->B,tmp->C, tmp->m); */
- return result;
+ tmp = line_construct_pm(&lseg->p[yh], invm); /* upper edge of the
+ * "band" */
+ if (pt->y > (tmp->A * pt->x + tmp->C))
+ { /* we are below the lower edge */
+ result = point_copy(&lseg->p[yh]); /* above the lseg, take
+ * higher end pt */
+/* fprintf(stderr,"above: tmp A %f B %f C %f m %f\n",tmp->A,tmp->B,tmp->C, tmp->m); */
+ return result;
}
- /* at this point the "normal" from point will hit lseg. The closet point
- * will be somewhere on the lseg */
+ /*
+ * at this point the "normal" from point will hit lseg. The closet
+ * point will be somewhere on the lseg
+ */
tmp = line_construct_pm(pt, invm);
-/* fprintf(stderr,"tmp A %f B %f C %f m %f\n",tmp->A,tmp->B,tmp->C, tmp->m); */
+/* fprintf(stderr,"tmp A %f B %f C %f m %f\n",tmp->A,tmp->B,tmp->C, tmp->m); */
result = interpt_sl(lseg, tmp);
-/* fprintf(stderr,"result.x %f result.y %f\n", result->x, result->y); */
+/* fprintf(stderr,"result.x %f result.y %f\n", result->x, result->y); */
return result;
} /* close_ps() */
@@ -4428,7 +4441,7 @@ box_circle(BOX *box)
} /* box_circle() */
-POLYGON *
+POLYGON *
circle_poly(int npts, CIRCLE *circle)
{
POLYGON *poly;
diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c
index d1e1a062dc2..4eb646392f6 100644
--- a/src/backend/utils/adt/int.c
+++ b/src/backend/utils/adt/int.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.16 1998/09/01 03:26:03 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.17 1998/09/01 04:32:35 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -80,7 +80,7 @@ int2out(int16 sh)
int16 *
int28in(char *shs)
{
- int16 **result;
+ int16 **result;
int nums;
if (shs == NULL)
diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c
index f2ebad62a61..4ffdcbf225b 100644
--- a/src/backend/utils/adt/int8.c
+++ b/src/backend/utils/adt/int8.c
@@ -208,7 +208,7 @@ int48ge(int32 val1, int64 * val2)
int64 *
int8um(int64 * val)
{
- int64 temp = 0;
+ int64 temp = 0;
int64 *result = palloc(sizeof(int64));
if (!PointerIsValid(val))
@@ -217,7 +217,7 @@ int8um(int64 * val)
#if FALSE
*result = temp - (*val);
#else
- result = int8mi(&temp, val);
+ result = int8mi(&temp, val);
#endif
return result;
@@ -281,17 +281,18 @@ int8larger(int64 * val1, int64 * val2)
{
#if FALSE
int64 *result = palloc(sizeof(int64));
+
#endif
if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
return NULL;
#if FALSE
- *result = ((*val1 > *val2)? *val1: *val2);
+ *result = ((*val1 > *val2) ? *val1 : *val2);
return result;
#endif
- return (*val1 > *val2)? val1: val2;
+ return (*val1 > *val2) ? val1 : val2;
} /* int8larger() */
int64 *
@@ -299,17 +300,18 @@ int8smaller(int64 * val1, int64 * val2)
{
#if FALSE
int64 *result = palloc(sizeof(int64));
+
#endif
if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
return NULL;
#if FALSE
- *result = ((*val1 < *val2)? *val1: *val2);
+ *result = ((*val1 < *val2) ? *val1 : *val2);
return result;
#endif
- return (*val1 < *val2)? val1: val2;
+ return (*val1 < *val2) ? val1 : val2;
} /* int8smaller() */
@@ -400,7 +402,7 @@ int48mul(int32 val1, int64 * val2)
if (!PointerIsValid(val2))
return NULL;
- *result = (int64) val1 * *val2;
+ *result = (int64) val1 **val2;
return result;
} /* int48mul() */
@@ -442,14 +444,16 @@ int84(int64 * val)
elog(ERROR, "Invalid (null) int64, can't convert int8 to int4", NULL);
#if FALSE
- /* 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 likely...
- * - thomas 1998-06-09
+
+ /*
+ * 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
+ * likely... - thomas 1998-06-09
*/
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;
@@ -501,10 +505,10 @@ i8tod(int64 * val)
* Convert double float to 8-byte integer.
* Do a range check before the conversion.
* Note that the comparison probably isn't quite right
- * since we only have ~52 bits of precision in a double float
- * and so subtracting one from a large number gives the large
- * number exactly. However, for some reason the comparison below
- * does the right thing on my i686/linux-rh4.2 box.
+ * since we only have ~52 bits of precision in a double float
+ * and so subtracting one from a large number gives the large
+ * number exactly. However, for some reason the comparison below
+ * does the right thing on my i686/linux-rh4.2 box.
* - thomas 1998-06-16
*/
int64 *
diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c
index bae7ae062e1..eb764e7c01a 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
@@ -40,18 +40,18 @@ static int like(pg_wchar *text, pg_wchar *p);
static bool
fixedlen_like(char *s, struct varlena * p, int charlen)
{
- pg_wchar *sterm,
+ pg_wchar *sterm,
*pterm;
int result;
- int len;
+ int len;
if (!s || !p)
return FALSE;
/* be sure sterm is null-terminated */
#ifdef MULTIBYTE
- sterm = (pg_wchar *) palloc((charlen + 1)*sizeof(pg_wchar));
- (void)pg_mb2wchar_with_len((unsigned char *)s,sterm,charlen);
+ sterm = (pg_wchar *) palloc((charlen + 1) * sizeof(pg_wchar));
+ (void) pg_mb2wchar_with_len((unsigned char *) s, sterm, charlen);
#else
sterm = (char *) palloc(charlen + 1);
StrNCpy(sterm, s, charlen + 1);
@@ -65,8 +65,8 @@ fixedlen_like(char *s, struct varlena * p, int charlen)
/* palloc the length of the text + the null character */
len = VARSIZE(p) - VARHDRSZ;
#ifdef MULTIBYTE
- pterm = (pg_wchar *) palloc((len + 1)*sizeof(pg_wchar));
- (void)pg_mb2wchar_with_len((unsigned char *)VARDATA(p),pterm,len);
+ pterm = (pg_wchar *) palloc((len + 1) * sizeof(pg_wchar));
+ (void) pg_mb2wchar_with_len((unsigned char *) VARDATA(p), pterm, len);
#else
pterm = (char *) palloc(len + 1);
memmove(pterm, VARDATA(p), len);
@@ -111,7 +111,7 @@ textnlike(struct varlena * s, struct varlena * p)
}
-/* $Revision: 1.19 $
+/* $Revision: 1.20 $
** "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,7 +146,7 @@ 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;
@@ -189,7 +189,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/misc.c b/src/backend/utils/adt/misc.c
index 83632d70ca2..c6c84357d7a 100644
--- a/src/backend/utils/adt/misc.c
+++ b/src/backend/utils/adt/misc.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v 1.14 1998/09/01 03:26:07 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v 1.15 1998/09/01 04:32:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -73,13 +73,13 @@ oidrand(Oid o, int32 X)
return true;
/*
- * We do this because the cancel key is actually a random, so we don't
- * want them to be able to request random numbers using our postmaster
- * seeded value.
+ * We do this because the cancel key is actually a random, so we don't
+ * want them to be able to request random numbers using our postmaster
+ * seeded value.
*/
if (!random_initialized)
{
- srandom((unsigned int)time(NULL));
+ srandom((unsigned int) time(NULL));
random_initialized = true;
}
diff --git a/src/backend/utils/adt/name.c b/src/backend/utils/adt/name.c
index ad37559bd03..f3a813ca01b 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.14 1998/09/01 03:26:10 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.15 1998/09/01 04:32:40 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -199,7 +199,7 @@ namestrcmp(Name name, char *str)
if (!name && !str)
return 0;
if (!name)
- return -1; /* NULL < anything */
+ return -1; /* NULL < anything */
if (!str)
return 1; /* NULL < anything */
return strncmp(name->data, str, NAMEDATALEN);
diff --git a/src/backend/utils/adt/not_in.c b/src/backend/utils/adt/not_in.c
index 0bb9412e0e5..52d8cd0c17e 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.12 1998/09/01 03:26:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.13 1998/09/01 04:32:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -72,14 +72,14 @@ int4notin(int16 not_in_arg, char *relation_and_attr)
/* the last argument should be a ScanKey, not an integer! - jolly */
/* it looks like the arguments are out of order, too */
/* but skeyData is never initialized! does this work?? - ay 2/95 */
- scan_descriptor = heap_beginscan(relation_to_scan, false, SnapshotNow,
+ scan_descriptor = heap_beginscan(relation_to_scan, false, SnapshotNow,
0, &skeyData);
retval = true;
/* do a scan of the relation, and do the check */
while (HeapTupleIsValid(current_tuple = heap_getnext(scan_descriptor, 0)) &&
- retval)
+ retval)
{
value = heap_getattr(current_tuple,
(AttrNumber) attrid,
diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c
index 86a999709f4..b30b2fe557b 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.25 1998/09/01 03:26:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.26 1998/09/01 04:32:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -77,7 +77,7 @@ pg_atoi(char *s, int size, int c)
errno = ERANGE;
elog(ERROR, "pg_atoi: error reading \"%s\": %m", s);
}
-#endif /* HAS_LONG_LONG */
+#endif /* HAS_LONG_LONG */
break;
case sizeof(int16):
if (l < SHRT_MIN)
diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c
index 153e80854aa..b98215f8754 100644
--- a/src/backend/utils/adt/oid.c
+++ b/src/backend/utils/adt/oid.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.17 1998/09/01 03:26:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.18 1998/09/01 04:32:44 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -31,7 +31,7 @@
Oid *
oid8in(char *oidString)
{
- Oid **result;
+ Oid **result;
int nums;
if (oidString == NULL)
@@ -128,8 +128,9 @@ oid8eq(Oid *arg1, Oid *arg2)
bool
oid8lt(Oid *arg1, Oid *arg2)
{
- int i;
- for (i=0; i < 8; i++)
+ int i;
+
+ for (i = 0; i < 8; i++)
if (!int4eq(arg1[i], arg2[i]))
return int4lt(arg1[i], arg2[i]);
return false;
@@ -138,8 +139,9 @@ oid8lt(Oid *arg1, Oid *arg2)
bool
oid8le(Oid *arg1, Oid *arg2)
{
- int i;
- for (i=0; i < 8; i++)
+ int i;
+
+ for (i = 0; i < 8; i++)
if (!int4eq(arg1[i], arg2[i]))
return int4le(arg1[i], arg2[i]);
return true;
@@ -148,8 +150,9 @@ oid8le(Oid *arg1, Oid *arg2)
bool
oid8ge(Oid *arg1, Oid *arg2)
{
- int i;
- for (i=0; i < 8; i++)
+ int i;
+
+ for (i = 0; i < 8; i++)
if (!int4eq(arg1[i], arg2[i]))
return int4ge(arg1[i], arg2[i]);
return true;
@@ -158,8 +161,9 @@ oid8ge(Oid *arg1, Oid *arg2)
bool
oid8gt(Oid *arg1, Oid *arg2)
{
- int i;
- for (i=0; i < 8; i++)
+ int i;
+
+ for (i = 0; i < 8; i++)
if (!int4eq(arg1[i], arg2[i]))
return int4gt(arg1[i], arg2[i]);
return false;
diff --git a/src/backend/utils/adt/oracle_compat.c b/src/backend/utils/adt/oracle_compat.c
index 2297d3246c1..084e0911a48 100644
--- a/src/backend/utils/adt/oracle_compat.c
+++ b/src/backend/utils/adt/oracle_compat.c
@@ -1,7 +1,7 @@
/*
* Edmund Mergl <E.Mergl@bawue.de>
*
- * $Id: oracle_compat.c,v 1.15 1998/08/11 18:38:07 momjian Exp $
+ * $Id: oracle_compat.c,v 1.16 1998/09/01 04:32:45 momjian Exp $
*
*/
@@ -54,7 +54,7 @@ lower(text *string)
ptr_ret = VARDATA(ret);
while (m--)
- *ptr_ret++ = tolower((unsigned char)*ptr++);
+ *ptr_ret++ = tolower((unsigned char) *ptr++);
return ret;
}
@@ -92,7 +92,7 @@ upper(text *string)
ptr_ret = VARDATA(ret);
while (m--)
- *ptr_ret++ = toupper((unsigned char)*ptr++);
+ *ptr_ret++ = toupper((unsigned char) *ptr++);
return ret;
}
@@ -131,15 +131,15 @@ initcap(text *string)
ptr = VARDATA(string);
ptr_ret = VARDATA(ret);
- *ptr_ret++ = toupper((unsigned char)*ptr++);
+ *ptr_ret++ = toupper((unsigned char) *ptr++);
--m;
while (m--)
{
if (*(ptr_ret - 1) == ' ' || *(ptr_ret - 1) == ' ')
- *ptr_ret++ = toupper((unsigned char)*ptr++);
+ *ptr_ret++ = toupper((unsigned char) *ptr++);
else
- *ptr_ret++ = tolower((unsigned char)*ptr++);
+ *ptr_ret++ = tolower((unsigned char) *ptr++);
}
return ret;
diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c
index 377c3285d9a..6efb350266f 100644
--- a/src/backend/utils/adt/regexp.c
+++ b/src/backend/utils/adt/regexp.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.19 1998/09/01 03:26:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.20 1998/09/01 04:32:46 momjian Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
@@ -36,7 +36,7 @@
#if defined(DISABLE_XOPEN_NLS)
#undef _XOPEN_SOURCE
-#endif /* DISABLE_XOPEN_NLS */
+#endif /* DISABLE_XOPEN_NLS */
/* this is the number of cached regular expressions held. */
#ifndef MAX_CACHED_RES
diff --git a/src/backend/utils/adt/regproc.c b/src/backend/utils/adt/regproc.c
index 4a9f1a0bc0a..056e2fe3f5d 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.25 1998/09/01 03:26:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.26 1998/09/01 04:32:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,7 +28,7 @@
/*****************************************************************************
* USER I/O ROUTINES *
*****************************************************************************/
-
+
/*
* regprocin - converts "proname" to proid
*
@@ -46,27 +46,29 @@ regprocin(char *pro_name_and_oid)
if (!IsBootstrapProcessingMode())
{
+
/*
- * we need to use the oid because there can be multiple entries
- * with the same name. We accept 1323_int4eq and 1323.
+ * we need to use the oid because there can be multiple entries
+ * with the same name. We accept 1323_int4eq and 1323.
*/
- if (strrchr(pro_name_and_oid,'_') != NULL)
+ if (strrchr(pro_name_and_oid, '_') != NULL)
{
proctup = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(atoi(strrchr(pro_name_and_oid,'_')+1)),
- 0, 0, 0);
+ ObjectIdGetDatum(atoi(strrchr(pro_name_and_oid, '_') + 1)),
+ 0, 0, 0);
}
else if (atoi(pro_name_and_oid) != InvalidOid)
{
proctup = SearchSysCacheTuple(PROOID,
- /* atoi stops at the _ */
- ObjectIdGetDatum(atoi(pro_name_and_oid)),
- 0, 0, 0);
+ /* atoi stops at the _ */
+ ObjectIdGetDatum(atoi(pro_name_and_oid)),
+ 0, 0, 0);
}
if (HeapTupleIsValid(proctup))
- result = (RegProcedure) proctup->t_oid;
- else elog(ERROR, "regprocin: no such procedure %s", pro_name_and_oid);
+ result = (RegProcedure) proctup->t_oid;
+ else
+ elog(ERROR, "regprocin: no such procedure %s", pro_name_and_oid);
}
else
{
@@ -74,7 +76,7 @@ regprocin(char *pro_name_and_oid)
HeapScanDesc procscan;
ScanKeyData key;
bool isnull;
-
+
proc = heap_openr(ProcedureRelationName);
if (!RelationIsValid(proc))
{
@@ -87,7 +89,7 @@ regprocin(char *pro_name_and_oid)
(AttrNumber) 1,
(RegProcedure) F_NAMEEQ,
(Datum) pro_name_and_oid);
-
+
procscan = heap_beginscan(proc, 0, SnapshotNow, 1, &key);
if (!HeapScanIsValid(procscan))
{
@@ -99,23 +101,23 @@ regprocin(char *pro_name_and_oid)
proctup = heap_getnext(procscan, 0);
if (HeapTupleIsValid(proctup))
{
- result = (RegProcedure) heap_getattr(proctup,
- ObjectIdAttributeNumber,
- RelationGetDescr(proc),
- &isnull);
- if (isnull)
- elog(FATAL, "regprocin: null procedure %s", pro_name_and_oid);
+ result = (RegProcedure) heap_getattr(proctup,
+ ObjectIdAttributeNumber,
+ RelationGetDescr(proc),
+ &isnull);
+ if (isnull)
+ elog(FATAL, "regprocin: null procedure %s", pro_name_and_oid);
}
else
- result = (RegProcedure) 0;
+ result = (RegProcedure) 0;
heap_endscan(procscan);
heap_close(proc);
- }
+ }
#ifdef EBUG
elog(DEBUG, "regprocin: no such procedure %s", pro_name_and_oid);
-#endif /* defined(EBUG) */
+#endif /* defined(EBUG) */
return (int32) result;
}
@@ -133,15 +135,15 @@ regprocout(RegProcedure proid)
if (!IsBootstrapProcessingMode())
{
proctup = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(proid),
- 0, 0, 0);
-
+ ObjectIdGetDatum(proid),
+ 0, 0, 0);
+
if (HeapTupleIsValid(proctup))
{
- char *s;
-
- s = ((Form_pg_proc) GETSTRUCT(proctup))->proname.data;
- snprintf(result, NAMEDATALEN, "%s_%d", s, proid);
+ char *s;
+
+ s = ((Form_pg_proc) GETSTRUCT(proctup))->proname.data;
+ snprintf(result, NAMEDATALEN, "%s_%d", s, proid);
}
else
{
@@ -154,7 +156,7 @@ regprocout(RegProcedure proid)
Relation proc;
HeapScanDesc procscan;
ScanKeyData key;
-
+
proc = heap_openr(ProcedureRelationName);
if (!RelationIsValid(proc))
{
@@ -167,7 +169,7 @@ regprocout(RegProcedure proid)
(AttrNumber) ObjectIdAttributeNumber,
(RegProcedure) F_INT4EQ,
(Datum) proid);
-
+
procscan = heap_beginscan(proc, 0, SnapshotNow, 1, &key);
if (!HeapScanIsValid(procscan))
{
@@ -183,7 +185,7 @@ regprocout(RegProcedure proid)
bool isnull;
s = (char *) heap_getattr(proctup, 1,
- RelationGetDescr(proc), &isnull);
+ RelationGetDescr(proc), &isnull);
if (!isnull)
StrNCpy(result, s, NAMEDATALEN);
else
@@ -191,8 +193,8 @@ regprocout(RegProcedure proid)
}
else
{
- result[0] = '-';
- result[1] = '\0';
+ result[0] = '-';
+ result[1] = '\0';
}
heap_endscan(procscan);
heap_close(proc);
@@ -200,8 +202,8 @@ regprocout(RegProcedure proid)
}
#ifdef EBUG
- elog(DEBUG, "regprocout: no such procedure %d", proid);
-#endif /* defined(EBUG) */
+ elog(DEBUG, "regprocout: no such procedure %d", proid);
+#endif /* defined(EBUG) */
return result;
}
@@ -232,15 +234,15 @@ oid8types(Oid **oidArray)
if (*sp != InvalidOid)
{
typetup = SearchSysCacheTuple(TYPOID,
- ObjectIdGetDatum(*sp),
- 0, 0, 0);
+ ObjectIdGetDatum(*sp),
+ 0, 0, 0);
if (HeapTupleIsValid(typetup))
{
char *s;
s = ((Form_pg_type) GETSTRUCT(typetup))->typname.data;
StrNCpy(VARDATA(result) + strlen(VARDATA(result)), s,
- NAMEDATALEN);
+ NAMEDATALEN);
strcat(VARDATA(result), " ");
}
}
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 593d670d374..f9774bf62f5 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,35 +3,35 @@
* out of it's tuple
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.2 1998/09/01 03:26:17 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.3 1998/09/01 04:32:49 momjian Exp $
*
- * This software is copyrighted by Jan Wieck - Hamburg.
+ * This software is copyrighted by Jan Wieck - Hamburg.
*
- * The author hereby grants permission to use, copy, modify,
- * distribute, and license this software and its documentation
- * for any purpose, provided that existing copyright notices are
- * retained in all copies and that this notice is included
- * verbatim in any distributions. No written agreement, license,
- * or royalty fee is required for any of the authorized uses.
- * Modifications to this software may be copyrighted by their
- * author and need not follow the licensing terms described
- * here, provided that the new terms are clearly indicated on
- * the first page of each file where they apply.
+ * The author hereby grants permission to use, copy, modify,
+ * distribute, and license this software and its documentation
+ * for any purpose, provided that existing copyright notices are
+ * retained in all copies and that this notice is included
+ * verbatim in any distributions. No written agreement, license,
+ * or royalty fee is required for any of the authorized uses.
+ * Modifications to this software may be copyrighted by their
+ * author and need not follow the licensing terms described
+ * here, provided that the new terms are clearly indicated on
+ * the first page of each file where they apply.
*
- * IN NO EVENT SHALL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
- * SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN
- * IF THE AUTHOR HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
+ * IN NO EVENT SHALL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO ANY
+ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
+ * SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN
+ * IF THE AUTHOR HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
*
- * THE AUTHOR AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON
- * AN "AS IS" BASIS, AND THE AUTHOR AND DISTRIBUTORS HAVE NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
- * ENHANCEMENTS, OR MODIFICATIONS.
+ * THE AUTHOR AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON
+ * AN "AS IS" BASIS, AND THE AUTHOR AND DISTRIBUTORS HAVE NO
+ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
+ * ENHANCEMENTS, OR MODIFICATIONS.
*
**********************************************************************/
@@ -70,8 +70,8 @@ static char *query_getview = "SELECT * FROM pg_rewrite WHERE rulename = $1 or ru
* Global functions
* ----------
*/
-text *pg_get_ruledef(NameData *rname);
-text *pg_get_viewdef(NameData *rname);
+text *pg_get_ruledef(NameData *rname);
+text *pg_get_viewdef(NameData *rname);
/* ----------
@@ -103,90 +103,91 @@ static bool check_if_rte_used(int rt_index, Node *node, int sup);
text *
pg_get_ruledef(NameData *rname)
{
- text *ruledef;
- Datum args[1];
- char nulls[2];
- int spirc;
- HeapTuple ruletup;
- TupleDesc rulettc;
- char *tmp;
- int len;
-
- /* ----------
- * We need the rules name somewhere deep down
- * ----------
- */
- rulename = nameout(rname);
-
- /* ----------
- * Connect to SPI manager
- * ----------
- */
- if (SPI_connect() != SPI_OK_CONNECT)
- elog(ERROR, "get_ruledef: cannot connect to SPI manager");
-
- /* ----------
- * On the first call prepare the plan to lookup pg_proc.
- * We read pg_proc over the SPI manager instead of using
- * the syscache to be checked for read access on pg_proc.
- * ----------
- */
- if (plan_getrule == NULL) {
- Oid argtypes[1];
- void *plan;
-
- argtypes[0] = NAMEOID;
- plan = SPI_prepare(query_getrule, 1, argtypes);
- if (plan == NULL)
- elog(ERROR, "SPI_prepare() failed for \"%s\"", query_getrule);
- plan_getrule = SPI_saveplan(plan);
- }
-
- /* ----------
- * Get the pg_rewrite tuple for this rule
- * ----------
- */
- args[0] = PointerGetDatum(rulename);
- nulls[0] = (rulename == NULL) ? 'n' : ' ';
- nulls[1] = '\0';
- spirc = SPI_execp(plan_getrule, args, nulls, 1);
- if (spirc != SPI_OK_SELECT) {
- elog(ERROR, "failed to get pg_rewrite tuple for %s", rulename);
- }
- if (SPI_processed != 1) {
- if (SPI_finish() != SPI_OK_FINISH)
- elog(ERROR, "get_ruledef: SPI_finish() failed");
- ruledef = SPI_palloc(VARHDRSZ + 1);
- VARSIZE(ruledef) = VARHDRSZ + 1;
- VARDATA(ruledef)[0] = '-';
+ text *ruledef;
+ Datum args[1];
+ char nulls[2];
+ int spirc;
+ HeapTuple ruletup;
+ TupleDesc rulettc;
+ char *tmp;
+ int len;
+
+ /* ----------
+ * We need the rules name somewhere deep down
+ * ----------
+ */
+ rulename = nameout(rname);
+
+ /* ----------
+ * Connect to SPI manager
+ * ----------
+ */
+ if (SPI_connect() != SPI_OK_CONNECT)
+ elog(ERROR, "get_ruledef: cannot connect to SPI manager");
+
+ /* ----------
+ * On the first call prepare the plan to lookup pg_proc.
+ * We read pg_proc over the SPI manager instead of using
+ * the syscache to be checked for read access on pg_proc.
+ * ----------
+ */
+ if (plan_getrule == NULL)
+ {
+ Oid argtypes[1];
+ void *plan;
+
+ argtypes[0] = NAMEOID;
+ plan = SPI_prepare(query_getrule, 1, argtypes);
+ if (plan == NULL)
+ elog(ERROR, "SPI_prepare() failed for \"%s\"", query_getrule);
+ plan_getrule = SPI_saveplan(plan);
+ }
+
+ /* ----------
+ * Get the pg_rewrite tuple for this rule
+ * ----------
+ */
+ args[0] = PointerGetDatum(rulename);
+ nulls[0] = (rulename == NULL) ? 'n' : ' ';
+ nulls[1] = '\0';
+ spirc = SPI_execp(plan_getrule, args, nulls, 1);
+ if (spirc != SPI_OK_SELECT)
+ elog(ERROR, "failed to get pg_rewrite tuple for %s", rulename);
+ if (SPI_processed != 1)
+ {
+ if (SPI_finish() != SPI_OK_FINISH)
+ elog(ERROR, "get_ruledef: SPI_finish() failed");
+ ruledef = SPI_palloc(VARHDRSZ + 1);
+ VARSIZE(ruledef) = VARHDRSZ + 1;
+ VARDATA(ruledef)[0] = '-';
+ return ruledef;
+ }
+
+ ruletup = SPI_tuptable->vals[0];
+ rulettc = SPI_tuptable->tupdesc;
+
+ /* ----------
+ * Get the rules definition and put it into executors memory
+ * ----------
+ */
+ tmp = make_ruledef(ruletup, rulettc);
+ len = strlen(tmp) + VARHDRSZ;
+ ruledef = SPI_palloc(len);
+ VARSIZE(ruledef) = len;
+ memcpy(VARDATA(ruledef), tmp, len - VARHDRSZ);
+
+ /* ----------
+ * Disconnect from SPI manager
+ * ----------
+ */
+ if (SPI_finish() != SPI_OK_FINISH)
+ elog(ERROR, "get_ruledef: SPI_finish() failed");
+
+ /* ----------
+ * Easy - isn't it?
+ * ----------
+ */
return ruledef;
- }
-
- ruletup = SPI_tuptable->vals[0];
- rulettc = SPI_tuptable->tupdesc;
-
- /* ----------
- * Get the rules definition and put it into executors memory
- * ----------
- */
- tmp = make_ruledef(ruletup, rulettc);
- len = strlen(tmp) + VARHDRSZ;
- ruledef = SPI_palloc(len);
- VARSIZE(ruledef) = len;
- memcpy(VARDATA(ruledef), tmp, len - VARHDRSZ);
-
- /* ----------
- * Disconnect from SPI manager
- * ----------
- */
- if (SPI_finish() != SPI_OK_FINISH)
- elog(ERROR, "get_ruledef: SPI_finish() failed");
-
- /* ----------
- * Easy - isn't it?
- * ----------
- */
- return ruledef;
}
@@ -198,91 +199,92 @@ pg_get_ruledef(NameData *rname)
text *
pg_get_viewdef(NameData *rname)
{
- text *ruledef;
- Datum args[2];
- char nulls[3];
- int spirc;
- HeapTuple ruletup;
- TupleDesc rulettc;
- char *tmp;
- int len;
- char name1[NAMEDATALEN + 5];
- char name2[NAMEDATALEN + 5];
-
- /* ----------
- * We need the rules name somewhere deep down
- * ----------
- */
- rulename = nameout(rname);
-
- /* ----------
- * Connect to SPI manager
- * ----------
- */
- if (SPI_connect() != SPI_OK_CONNECT)
- elog(ERROR, "get_viewdef: cannot connect to SPI manager");
-
- /* ----------
- * On the first call prepare the plan to lookup pg_proc.
- * We read pg_proc over the SPI manager instead of using
- * the syscache to be checked for read access on pg_proc.
- * ----------
- */
- if (plan_getview == NULL) {
- Oid argtypes[2];
- void *plan;
-
- argtypes[0] = NAMEOID;
- argtypes[1] = NAMEOID;
- plan = SPI_prepare(query_getview, 2, argtypes);
- if (plan == NULL)
- elog(ERROR, "SPI_prepare() failed for \"%s\"", query_getview);
- plan_getview = SPI_saveplan(plan);
- }
-
- /* ----------
- * Get the pg_rewrite tuple for this rule
- * ----------
- */
- sprintf(name1, "_RET%s", rulename);
- sprintf(name2, "_ret%s", rulename);
- args[0] = PointerGetDatum(name1);
- args[1] = PointerGetDatum(name2);
- nulls[0] = ' ';
- nulls[1] = ' ';
- nulls[2] = '\0';
- spirc = SPI_execp(plan_getview, args, nulls, 1);
- if (spirc != SPI_OK_SELECT) {
- elog(ERROR, "failed to get pg_rewrite tuple for view %s", rulename);
- }
- if (SPI_processed != 1) {
- tmp = "Not a view";
- } else {
+ text *ruledef;
+ Datum args[2];
+ char nulls[3];
+ int spirc;
+ HeapTuple ruletup;
+ TupleDesc rulettc;
+ char *tmp;
+ int len;
+ char name1[NAMEDATALEN + 5];
+ char name2[NAMEDATALEN + 5];
+
/* ----------
- * Get the rules definition and put it into executors memory
+ * We need the rules name somewhere deep down
* ----------
*/
- ruletup = SPI_tuptable->vals[0];
- rulettc = SPI_tuptable->tupdesc;
- tmp = make_viewdef(ruletup, rulettc);
- }
- len = strlen(tmp) + VARHDRSZ;
- ruledef = SPI_palloc(len);
- VARSIZE(ruledef) = len;
- memcpy(VARDATA(ruledef), tmp, len - VARHDRSZ);
-
- /* ----------
- * Disconnect from SPI manager
- * ----------
- */
- if (SPI_finish() != SPI_OK_FINISH)
- elog(ERROR, "get_viewdef: SPI_finish() failed");
-
- /* ----------
- * Easy - isn't it?
- * ----------
- */
- return ruledef;
+ rulename = nameout(rname);
+
+ /* ----------
+ * Connect to SPI manager
+ * ----------
+ */
+ if (SPI_connect() != SPI_OK_CONNECT)
+ elog(ERROR, "get_viewdef: cannot connect to SPI manager");
+
+ /* ----------
+ * On the first call prepare the plan to lookup pg_proc.
+ * We read pg_proc over the SPI manager instead of using
+ * the syscache to be checked for read access on pg_proc.
+ * ----------
+ */
+ if (plan_getview == NULL)
+ {
+ Oid argtypes[2];
+ void *plan;
+
+ argtypes[0] = NAMEOID;
+ argtypes[1] = NAMEOID;
+ plan = SPI_prepare(query_getview, 2, argtypes);
+ if (plan == NULL)
+ elog(ERROR, "SPI_prepare() failed for \"%s\"", query_getview);
+ plan_getview = SPI_saveplan(plan);
+ }
+
+ /* ----------
+ * Get the pg_rewrite tuple for this rule
+ * ----------
+ */
+ sprintf(name1, "_RET%s", rulename);
+ sprintf(name2, "_ret%s", rulename);
+ args[0] = PointerGetDatum(name1);
+ args[1] = PointerGetDatum(name2);
+ nulls[0] = ' ';
+ nulls[1] = ' ';
+ nulls[2] = '\0';
+ spirc = SPI_execp(plan_getview, args, nulls, 1);
+ if (spirc != SPI_OK_SELECT)
+ elog(ERROR, "failed to get pg_rewrite tuple for view %s", rulename);
+ if (SPI_processed != 1)
+ tmp = "Not a view";
+ else
+ {
+ /* ----------
+ * Get the rules definition and put it into executors memory
+ * ----------
+ */
+ ruletup = SPI_tuptable->vals[0];
+ rulettc = SPI_tuptable->tupdesc;
+ tmp = make_viewdef(ruletup, rulettc);
+ }
+ len = strlen(tmp) + VARHDRSZ;
+ ruledef = SPI_palloc(len);
+ VARSIZE(ruledef) = len;
+ memcpy(VARDATA(ruledef), tmp, len - VARHDRSZ);
+
+ /* ----------
+ * Disconnect from SPI manager
+ * ----------
+ */
+ if (SPI_finish() != SPI_OK_FINISH)
+ elog(ERROR, "get_viewdef: SPI_finish() failed");
+
+ /* ----------
+ * Easy - isn't it?
+ * ----------
+ */
+ return ruledef;
}
@@ -294,135 +296,151 @@ pg_get_viewdef(NameData *rname)
static char *
make_ruledef(HeapTuple ruletup, TupleDesc rulettc)
{
- char *buf;
- char ev_type;
- Oid ev_class;
- int2 ev_attr;
- bool is_instead;
- char *ev_qual;
- char *ev_action;
- List *actions = NIL;
- int fno;
- bool isnull;
-
- /* ----------
- * Allocate space for the returned rule definition text
- * ----------
- */
- buf = palloc(8192);
-
- /* ----------
- * Get the attribute values from the rules tuple
- * ----------
- */
- fno = SPI_fnumber(rulettc, "ev_type");
- ev_type = (char)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "ev_class");
- ev_class = (Oid)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "ev_attr");
- ev_attr = (int2)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "is_instead");
- is_instead = (bool)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "ev_qual");
- ev_qual = SPI_getvalue(ruletup, rulettc, fno);
- if (isnull) ev_qual = NULL;
-
- fno = SPI_fnumber(rulettc, "ev_action");
- ev_action = SPI_getvalue(ruletup, rulettc, fno);
- if (isnull) ev_action = NULL;
- if (ev_action != NULL) {
- actions = (List *)stringToNode(ev_action);
- }
-
- /* ----------
- * Build the rules definition text
- * ----------
- */
- strcpy(buf, "CREATE RULE ");
-
- /* The rule name */
- strcat(buf, rulename);
- strcat(buf, " AS ON ");
-
- /* The event the rule is fired for */
- switch (ev_type) {
- case '1': strcat(buf, "SELECT TO ");
+ char *buf;
+ char ev_type;
+ Oid ev_class;
+ int2 ev_attr;
+ bool is_instead;
+ char *ev_qual;
+ char *ev_action;
+ List *actions = NIL;
+ int fno;
+ bool isnull;
+
+ /* ----------
+ * Allocate space for the returned rule definition text
+ * ----------
+ */
+ buf = palloc(8192);
+
+ /* ----------
+ * Get the attribute values from the rules tuple
+ * ----------
+ */
+ fno = SPI_fnumber(rulettc, "ev_type");
+ ev_type = (char) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "ev_class");
+ ev_class = (Oid) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "ev_attr");
+ ev_attr = (int2) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "is_instead");
+ is_instead = (bool) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "ev_qual");
+ ev_qual = SPI_getvalue(ruletup, rulettc, fno);
+ if (isnull)
+ ev_qual = NULL;
+
+ fno = SPI_fnumber(rulettc, "ev_action");
+ ev_action = SPI_getvalue(ruletup, rulettc, fno);
+ if (isnull)
+ ev_action = NULL;
+ if (ev_action != NULL)
+ actions = (List *) stringToNode(ev_action);
+
+ /* ----------
+ * Build the rules definition text
+ * ----------
+ */
+ strcpy(buf, "CREATE RULE ");
+
+ /* The rule name */
+ strcat(buf, rulename);
+ strcat(buf, " AS ON ");
+
+ /* The event the rule is fired for */
+ switch (ev_type)
+ {
+ case '1':
+ strcat(buf, "SELECT TO ");
break;
- case '2': strcat(buf, "UPDATE TO ");
+ case '2':
+ strcat(buf, "UPDATE TO ");
break;
- case '3': strcat(buf, "INSERT TO ");
+ case '3':
+ strcat(buf, "INSERT TO ");
break;
- case '4': strcat(buf, "DELETE TO ");
+ case '4':
+ strcat(buf, "DELETE TO ");
break;
- default:
- elog(ERROR, "get_ruledef: rule %s has unsupported event type %d",
- rulename, ev_type);
- break;
- }
+ default:
+ elog(ERROR, "get_ruledef: rule %s has unsupported event type %d",
+ rulename, ev_type);
+ break;
+ }
- /* The relation the rule is fired on */
- strcat(buf, get_relation_name(ev_class));
- if (ev_attr > 0) {
- strcat(buf, ".");
- strcat(buf, get_attribute_name(ev_class, ev_attr));
- }
+ /* The relation the rule is fired on */
+ strcat(buf, get_relation_name(ev_class));
+ if (ev_attr > 0)
+ {
+ strcat(buf, ".");
+ strcat(buf, get_attribute_name(ev_class, ev_attr));
+ }
- /* If the rule has an event qualification, add it */
- if (ev_qual == NULL) ev_qual = "";
- if (strlen(ev_qual) > 0) {
- Node *qual;
- Query *query;
+ /* If the rule has an event qualification, add it */
+ if (ev_qual == NULL)
+ ev_qual = "";
+ if (strlen(ev_qual) > 0)
+ {
+ Node *qual;
+ Query *query;
- qual = stringToNode(ev_qual);
- query = (Query *)lfirst(actions);
+ qual = stringToNode(ev_qual);
+ query = (Query *) lfirst(actions);
- strcat(buf, " WHERE ");
- strcat(buf, get_rule_expr(query->rtable, 0, qual, TRUE));
- }
+ strcat(buf, " WHERE ");
+ strcat(buf, get_rule_expr(query->rtable, 0, qual, TRUE));
+ }
- strcat(buf, " DO ");
+ strcat(buf, " DO ");
- /* The INSTEAD keyword (if so) */
- if (is_instead)
- strcat(buf, "INSTEAD ");
+ /* The INSTEAD keyword (if so) */
+ if (is_instead)
+ strcat(buf, "INSTEAD ");
- /* Finally the rules actions */
- if (length(actions) > 1) {
- List *action;
- Query *query;
+ /* Finally the rules actions */
+ if (length(actions) > 1)
+ {
+ List *action;
+ Query *query;
- strcat(buf, "(");
- foreach (action, actions) {
- query = (Query *)lfirst(action);
- strcat(buf, get_query_def(query));
- strcat(buf, "; ");
+ strcat(buf, "(");
+ foreach(action, actions)
+ {
+ query = (Query *) lfirst(action);
+ strcat(buf, get_query_def(query));
+ strcat(buf, "; ");
+ }
+ strcat(buf, ");");
}
- strcat(buf, ");");
- } else {
- if (length(actions) == 0) {
- strcat(buf, "NOTHING;");
- } else {
- Query *query;
-
- query = (Query *)lfirst(actions);
- strcat(buf, get_query_def(query));
- strcat(buf, ";");
+ else
+ {
+ if (length(actions) == 0)
+ {
+ strcat(buf, "NOTHING;");
+ }
+ else
+ {
+ Query *query;
+
+ query = (Query *) lfirst(actions);
+ strcat(buf, get_query_def(query));
+ strcat(buf, ";");
+ }
}
- }
- /* ----------
- * That's it
- * ----------
- */
- return buf;
+ /* ----------
+ * That's it
+ * ----------
+ */
+ return buf;
}
@@ -434,61 +452,62 @@ make_ruledef(HeapTuple ruletup, TupleDesc rulettc)
static char *
make_viewdef(HeapTuple ruletup, TupleDesc rulettc)
{
- char buf[8192];
- Query *query;
- char ev_type;
- Oid ev_class;
- int2 ev_attr;
- bool is_instead;
- char *ev_qual;
- char *ev_action;
- List *actions = NIL;
- int fno;
- bool isnull;
-
- /* ----------
- * Get the attribute values from the rules tuple
- * ----------
- */
- fno = SPI_fnumber(rulettc, "ev_type");
- ev_type = (char)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "ev_class");
- ev_class = (Oid)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "ev_attr");
- ev_attr = (int2)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "is_instead");
- is_instead = (bool)SPI_getbinval(ruletup, rulettc, fno, &isnull);
-
- fno = SPI_fnumber(rulettc, "ev_qual");
- ev_qual = SPI_getvalue(ruletup, rulettc, fno);
- if (isnull) ev_qual = "";
-
- fno = SPI_fnumber(rulettc, "ev_action");
- ev_action = SPI_getvalue(ruletup, rulettc, fno);
- if (isnull) ev_action = NULL;
- if (ev_action != NULL) {
- actions = (List *)stringToNode(ev_action);
- }
-
- if (length(actions) != 1)
- return "Not a view";
-
- query = (Query *)lfirst(actions);
-
- if (ev_type != '1' || ev_attr >= 0 || !is_instead || strcmp(ev_qual, ""))
- return "Not a view";
-
- strcpy(buf, get_select_query_def(query));
- strcat(buf, ";");
-
- /* ----------
- * That's it
- * ----------
- */
- return pstrdup(buf);
+ char buf[8192];
+ Query *query;
+ char ev_type;
+ Oid ev_class;
+ int2 ev_attr;
+ bool is_instead;
+ char *ev_qual;
+ char *ev_action;
+ List *actions = NIL;
+ int fno;
+ bool isnull;
+
+ /* ----------
+ * Get the attribute values from the rules tuple
+ * ----------
+ */
+ fno = SPI_fnumber(rulettc, "ev_type");
+ ev_type = (char) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "ev_class");
+ ev_class = (Oid) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "ev_attr");
+ ev_attr = (int2) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "is_instead");
+ is_instead = (bool) SPI_getbinval(ruletup, rulettc, fno, &isnull);
+
+ fno = SPI_fnumber(rulettc, "ev_qual");
+ ev_qual = SPI_getvalue(ruletup, rulettc, fno);
+ if (isnull)
+ ev_qual = "";
+
+ fno = SPI_fnumber(rulettc, "ev_action");
+ ev_action = SPI_getvalue(ruletup, rulettc, fno);
+ if (isnull)
+ ev_action = NULL;
+ if (ev_action != NULL)
+ actions = (List *) stringToNode(ev_action);
+
+ if (length(actions) != 1)
+ return "Not a view";
+
+ query = (Query *) lfirst(actions);
+
+ if (ev_type != '1' || ev_attr >= 0 || !is_instead || strcmp(ev_qual, ""))
+ return "Not a view";
+
+ strcpy(buf, get_select_query_def(query));
+ strcat(buf, ";");
+
+ /* ----------
+ * That's it
+ * ----------
+ */
+ return pstrdup(buf);
}
@@ -501,34 +520,35 @@ make_viewdef(HeapTuple ruletup, TupleDesc rulettc)
static char *
get_query_def(Query *query)
{
- switch (query->commandType) {
- case CMD_SELECT:
- return get_select_query_def(query);
- break;
-
- case CMD_UPDATE:
- return get_update_query_def(query);
- break;
-
- case CMD_INSERT:
- return get_insert_query_def(query);
- break;
-
- case CMD_DELETE:
- return get_delete_query_def(query);
- break;
-
- case CMD_NOTHING:
- return "NOTHING";
- break;
-
- default:
- elog(ERROR, "get_ruledef of %s: query command type %d not implemented yet",
- rulename, query->commandType);
- break;
- }
-
- return NULL;
+ switch (query->commandType)
+ {
+ case CMD_SELECT:
+ return get_select_query_def(query);
+ break;
+
+ case CMD_UPDATE:
+ return get_update_query_def(query);
+ break;
+
+ case CMD_INSERT:
+ return get_insert_query_def(query);
+ break;
+
+ case CMD_DELETE:
+ return get_delete_query_def(query);
+ break;
+
+ case CMD_NOTHING:
+ return "NOTHING";
+ break;
+
+ default:
+ elog(ERROR, "get_ruledef of %s: query command type %d not implemented yet",
+ rulename, query->commandType);
+ break;
+ }
+
+ return NULL;
}
@@ -539,144 +559,162 @@ get_query_def(Query *query)
static char *
get_select_query_def(Query *query)
{
- char buf[8192];
- char *sep;
- TargetEntry *tle;
- RangeTblEntry *rte;
- bool *rt_used;
- int rt_length;
- int rt_numused = 0;
- bool rt_constonly = TRUE;
- int i;
- List *l;
-
- /* ----------
- * First we need need to know which and how many of the
- * range table entries in the query are used in the target list
- * or queries qualification
- * ----------
- */
- rt_length = length(query->rtable);
- rt_used = palloc(sizeof(bool) * rt_length);
- for (i = 0; i < rt_length; i++) {
- if (check_if_rte_used(i + 1, (Node *)(query->targetList), 0)) {
- rt_used[i] = TRUE;
- rt_numused++;
- } else {
- if (check_if_rte_used(i + 1, (Node *)(query->qual), 0)) {
- rt_used[i] = TRUE;
- rt_numused++;
- } else {
- rt_used[i] = FALSE;
- }
- }
- }
-
- /* ----------
- * Now check if any of the used rangetable entries is different
- * from *NEW* and *CURRENT*. If so we must omit the FROM clause
- * later.
- * ----------
- */
- i = 0;
- foreach (l, query->rtable) {
- if (!rt_used[i++])
- continue;
-
- rte = (RangeTblEntry *)lfirst(l);
- if (!strcmp(rte->refname, "*NEW*"))
- continue;
- if (!strcmp(rte->refname, "*CURRENT*"))
- continue;
-
- rt_constonly = FALSE;
- break;
- }
-
- /* ----------
- * Build up the query string - first we say SELECT
- * ----------
- */
- strcpy(buf, "SELECT");
-
- /* Then we tell what to select (the targetlist) */
- sep = " ";
- foreach (l, query->targetList) {
- bool tell_as = FALSE;
-
- tle = (TargetEntry *)lfirst(l);
- strcat(buf, sep);
- sep = ", ";
-
- strcat(buf, get_tle_expr(query->rtable, 0, tle, (rt_numused > 1)));
-
- /* Check if we must say AS ... */
- if (nodeTag(tle->expr) != T_Var) {
- tell_as = strcmp(tle->resdom->resname, "?column?");
- } else {
- Var *var = (Var *)(tle->expr);
- char *attname;
-
- rte = (RangeTblEntry *)nth(var->varno - 1, query->rtable);
- attname = get_attribute_name(rte->relid, var->varattno);
- if (strcmp(attname, tle->resdom->resname))
- tell_as = TRUE;
+ char buf[8192];
+ char *sep;
+ TargetEntry *tle;
+ RangeTblEntry *rte;
+ bool *rt_used;
+ int rt_length;
+ int rt_numused = 0;
+ bool rt_constonly = TRUE;
+ int i;
+ List *l;
+
+ /* ----------
+ * First we need need to know which and how many of the
+ * range table entries in the query are used in the target list
+ * or queries qualification
+ * ----------
+ */
+ rt_length = length(query->rtable);
+ rt_used = palloc(sizeof(bool) * rt_length);
+ for (i = 0; i < rt_length; i++)
+ {
+ if (check_if_rte_used(i + 1, (Node *) (query->targetList), 0))
+ {
+ rt_used[i] = TRUE;
+ rt_numused++;
+ }
+ else
+ {
+ if (check_if_rte_used(i + 1, (Node *) (query->qual), 0))
+ {
+ rt_used[i] = TRUE;
+ rt_numused++;
+ }
+ else
+ rt_used[i] = FALSE;
+ }
}
- /* and do if so */
- if (tell_as) {
- strcat(buf, " AS ");
- strcat(buf, tle->resdom->resname);
+ /* ----------
+ * Now check if any of the used rangetable entries is different
+ * from *NEW* and *CURRENT*. If so we must omit the FROM clause
+ * later.
+ * ----------
+ */
+ i = 0;
+ foreach(l, query->rtable)
+ {
+ if (!rt_used[i++])
+ continue;
+
+ rte = (RangeTblEntry *) lfirst(l);
+ if (!strcmp(rte->refname, "*NEW*"))
+ continue;
+ if (!strcmp(rte->refname, "*CURRENT*"))
+ continue;
+
+ rt_constonly = FALSE;
+ break;
}
- }
- /* If we need other tables that *NEW* or *CURRENT* add the FROM clause */
- if (!rt_constonly && rt_numused > 0) {
- strcat(buf, " FROM");
+ /* ----------
+ * Build up the query string - first we say SELECT
+ * ----------
+ */
+ strcpy(buf, "SELECT");
- i = 0;
+ /* Then we tell what to select (the targetlist) */
sep = " ";
- foreach (l, query->rtable) {
- if (rt_used[i++]) {
- rte = (RangeTblEntry *)lfirst(l);
+ foreach(l, query->targetList)
+ {
+ bool tell_as = FALSE;
- if (!strcmp(rte->refname, "*NEW*"))
- continue;
+ tle = (TargetEntry *) lfirst(l);
+ strcat(buf, sep);
+ sep = ", ";
- if (!strcmp(rte->refname, "*CURRENT*"))
- continue;
+ strcat(buf, get_tle_expr(query->rtable, 0, tle, (rt_numused > 1)));
- strcat(buf, sep); sep = ", ";
- strcat(buf, rte->relname);
- if (rt_numused > 1) {
- strcat(buf, " ");
- strcat(buf, rte->refname);
+ /* Check if we must say AS ... */
+ if (nodeTag(tle->expr) != T_Var)
+ tell_as = strcmp(tle->resdom->resname, "?column?");
+ else
+ {
+ Var *var = (Var *) (tle->expr);
+ char *attname;
+
+ rte = (RangeTblEntry *) nth(var->varno - 1, query->rtable);
+ attname = get_attribute_name(rte->relid, var->varattno);
+ if (strcmp(attname, tle->resdom->resname))
+ tell_as = TRUE;
+ }
+
+ /* and do if so */
+ if (tell_as)
+ {
+ strcat(buf, " AS ");
+ strcat(buf, tle->resdom->resname);
}
- }
}
- }
- /* Add the WHERE clause if given */
- if (query->qual != NULL) {
- strcat(buf, " WHERE ");
- strcat(buf, get_rule_expr(query->rtable, 0, query->qual, (rt_numused > 1)));
- }
+ /* If we need other tables that *NEW* or *CURRENT* add the FROM clause */
+ if (!rt_constonly && rt_numused > 0)
+ {
+ strcat(buf, " FROM");
- /* Add the GROUP BY CLAUSE */
- if (query->groupClause != NULL) {
- strcat(buf, " GROUP BY ");
- sep = "";
- foreach (l, query->groupClause) {
- strcat(buf, sep); sep = ", ";
- strcat(buf, get_rule_expr(query->rtable, 0, lfirst(l), (rt_numused > 1)));
+ i = 0;
+ sep = " ";
+ foreach(l, query->rtable)
+ {
+ if (rt_used[i++])
+ {
+ rte = (RangeTblEntry *) lfirst(l);
+
+ if (!strcmp(rte->refname, "*NEW*"))
+ continue;
+
+ if (!strcmp(rte->refname, "*CURRENT*"))
+ continue;
+
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, rte->relname);
+ if (rt_numused > 1)
+ {
+ strcat(buf, " ");
+ strcat(buf, rte->refname);
+ }
+ }
+ }
+ }
+
+ /* Add the WHERE clause if given */
+ if (query->qual != NULL)
+ {
+ strcat(buf, " WHERE ");
+ strcat(buf, get_rule_expr(query->rtable, 0, query->qual, (rt_numused > 1)));
+ }
+
+ /* Add the GROUP BY CLAUSE */
+ if (query->groupClause != NULL)
+ {
+ strcat(buf, " GROUP BY ");
+ sep = "";
+ foreach(l, query->groupClause)
+ {
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, get_rule_expr(query->rtable, 0, lfirst(l), (rt_numused > 1)));
+ }
}
- }
- /* ----------
- * Copy the query string into allocated space and return it
- * ----------
- */
- return pstrdup(buf);
+ /* ----------
+ * Copy the query string into allocated space and return it
+ * ----------
+ */
+ return pstrdup(buf);
}
@@ -687,92 +725,103 @@ get_select_query_def(Query *query)
static char *
get_insert_query_def(Query *query)
{
- char buf[8192];
- char *sep;
- TargetEntry *tle;
- RangeTblEntry *rte;
- bool *rt_used;
- int rt_length;
- int rt_numused = 0;
- bool rt_constonly = TRUE;
- int i;
- List *l;
-
- /* ----------
- * We need to know if other tables than *NEW* or *CURRENT*
- * are used in the query. If not, it's an INSERT ... VALUES,
- * otherwise an INSERT ... SELECT.
- * ----------
- */
- rt_length = length(query->rtable);
- rt_used = palloc(sizeof(bool) * rt_length);
- for (i = 0; i < rt_length; i++) {
- if (check_if_rte_used(i + 1, (Node *)(query->targetList), 0)) {
- rt_used[i] = TRUE;
- rt_numused++;
- } else {
- if (check_if_rte_used(i + 1, (Node *)(query->qual), 0)) {
- rt_used[i] = TRUE;
- rt_numused++;
- } else {
- rt_used[i] = FALSE;
- }
+ char buf[8192];
+ char *sep;
+ TargetEntry *tle;
+ RangeTblEntry *rte;
+ bool *rt_used;
+ int rt_length;
+ int rt_numused = 0;
+ bool rt_constonly = TRUE;
+ int i;
+ List *l;
+
+ /* ----------
+ * We need to know if other tables than *NEW* or *CURRENT*
+ * are used in the query. If not, it's an INSERT ... VALUES,
+ * otherwise an INSERT ... SELECT.
+ * ----------
+ */
+ rt_length = length(query->rtable);
+ rt_used = palloc(sizeof(bool) * rt_length);
+ for (i = 0; i < rt_length; i++)
+ {
+ if (check_if_rte_used(i + 1, (Node *) (query->targetList), 0))
+ {
+ rt_used[i] = TRUE;
+ rt_numused++;
+ }
+ else
+ {
+ if (check_if_rte_used(i + 1, (Node *) (query->qual), 0))
+ {
+ rt_used[i] = TRUE;
+ rt_numused++;
+ }
+ else
+ rt_used[i] = FALSE;
+ }
}
- }
-
- i = 0;
- foreach (l, query->rtable) {
- if (!rt_used[i++])
- continue;
-
- rte = (RangeTblEntry *)lfirst(l);
- if (!strcmp(rte->refname, "*NEW*"))
- continue;
- if (!strcmp(rte->refname, "*CURRENT*"))
- continue;
-
- rt_constonly = FALSE;
- break;
- }
-
- /* ----------
- * Start the query with INSERT INTO relname
- * ----------
- */
- rte = (RangeTblEntry *)nth(query->resultRelation - 1, query->rtable);
- strcpy(buf, "INSERT INTO ");
- strcat(buf, rte->relname);
-
- /* Add the target list */
- sep = " (";
- foreach (l, query->targetList) {
- tle = (TargetEntry *)lfirst(l);
-
- strcat(buf, sep); sep = ", ";
- strcat(buf, tle->resdom->resname);
- }
- strcat(buf, ") ");
-
- /* Add the VALUES or the SELECT */
- if (rt_constonly && query->qual == NULL) {
- strcat(buf, "VALUES (");
- sep = "";
- foreach (l, query->targetList) {
- tle = (TargetEntry *)lfirst(l);
- strcat(buf, sep); sep = ", ";
- strcat(buf, get_tle_expr(query->rtable, 0, tle, (rt_numused > 1)));
+ i = 0;
+ foreach(l, query->rtable)
+ {
+ if (!rt_used[i++])
+ continue;
+
+ rte = (RangeTblEntry *) lfirst(l);
+ if (!strcmp(rte->refname, "*NEW*"))
+ continue;
+ if (!strcmp(rte->refname, "*CURRENT*"))
+ continue;
+
+ rt_constonly = FALSE;
+ break;
}
- strcat(buf, ")");
- } else {
- strcat(buf, get_select_query_def(query));
- }
-
- /* ----------
- * Copy the query string into allocated space and return it
- * ----------
- */
- return pstrdup(buf);
+
+ /* ----------
+ * Start the query with INSERT INTO relname
+ * ----------
+ */
+ rte = (RangeTblEntry *) nth(query->resultRelation - 1, query->rtable);
+ strcpy(buf, "INSERT INTO ");
+ strcat(buf, rte->relname);
+
+ /* Add the target list */
+ sep = " (";
+ foreach(l, query->targetList)
+ {
+ tle = (TargetEntry *) lfirst(l);
+
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, tle->resdom->resname);
+ }
+ strcat(buf, ") ");
+
+ /* Add the VALUES or the SELECT */
+ if (rt_constonly && query->qual == NULL)
+ {
+ strcat(buf, "VALUES (");
+ sep = "";
+ foreach(l, query->targetList)
+ {
+ tle = (TargetEntry *) lfirst(l);
+
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, get_tle_expr(query->rtable, 0, tle, (rt_numused > 1)));
+ }
+ strcat(buf, ")");
+ }
+ else
+ strcat(buf, get_select_query_def(query));
+
+ /* ----------
+ * Copy the query string into allocated space and return it
+ * ----------
+ */
+ return pstrdup(buf);
}
@@ -783,45 +832,48 @@ get_insert_query_def(Query *query)
static char *
get_update_query_def(Query *query)
{
- char buf[8192];
- char *sep;
- TargetEntry *tle;
- RangeTblEntry *rte;
- List *l;
-
- /* ----------
- * Start the query with UPDATE relname SET
- * ----------
- */
- rte = (RangeTblEntry *)nth(query->resultRelation - 1, query->rtable);
- strcpy(buf, "UPDATE ");
- strcat(buf, rte->relname);
- strcat(buf, " SET ");
-
- /* Add the comma separated list of 'attname = value' */
- sep = "";
- foreach (l, query->targetList) {
- tle = (TargetEntry *)lfirst(l);
-
- strcat(buf, sep); sep = ", ";
- strcat(buf, tle->resdom->resname);
- strcat(buf, " = ");
- strcat(buf, get_tle_expr(query->rtable, query->resultRelation,
- tle, TRUE));
- }
-
- /* Finally add a WHERE clause if given */
- if (query->qual != NULL) {
- strcat(buf, " WHERE ");
- strcat(buf, get_rule_expr(query->rtable, query->resultRelation,
- query->qual, TRUE));
- }
-
- /* ----------
- * Copy the query string into allocated space and return it
- * ----------
- */
- return pstrdup(buf);
+ char buf[8192];
+ char *sep;
+ TargetEntry *tle;
+ RangeTblEntry *rte;
+ List *l;
+
+ /* ----------
+ * Start the query with UPDATE relname SET
+ * ----------
+ */
+ rte = (RangeTblEntry *) nth(query->resultRelation - 1, query->rtable);
+ strcpy(buf, "UPDATE ");
+ strcat(buf, rte->relname);
+ strcat(buf, " SET ");
+
+ /* Add the comma separated list of 'attname = value' */
+ sep = "";
+ foreach(l, query->targetList)
+ {
+ tle = (TargetEntry *) lfirst(l);
+
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, tle->resdom->resname);
+ strcat(buf, " = ");
+ strcat(buf, get_tle_expr(query->rtable, query->resultRelation,
+ tle, TRUE));
+ }
+
+ /* Finally add a WHERE clause if given */
+ if (query->qual != NULL)
+ {
+ strcat(buf, " WHERE ");
+ strcat(buf, get_rule_expr(query->rtable, query->resultRelation,
+ query->qual, TRUE));
+ }
+
+ /* ----------
+ * Copy the query string into allocated space and return it
+ * ----------
+ */
+ return pstrdup(buf);
}
@@ -832,28 +884,29 @@ get_update_query_def(Query *query)
static char *
get_delete_query_def(Query *query)
{
- char buf[8192];
- RangeTblEntry *rte;
-
- /* ----------
- * Start the query with DELETE FROM relname
- * ----------
- */
- rte = (RangeTblEntry *)nth(query->resultRelation - 1, query->rtable);
- strcpy(buf, "DELETE FROM ");
- strcat(buf, rte->relname);
-
- /* Add a WHERE clause if given */
- if (query->qual != NULL) {
- strcat(buf, " WHERE ");
- strcat(buf, get_rule_expr(query->rtable, 0, query->qual, FALSE));
- }
-
- /* ----------
- * Copy the query string into allocated space and return it
- * ----------
- */
- return pstrdup(buf);
+ char buf[8192];
+ RangeTblEntry *rte;
+
+ /* ----------
+ * Start the query with DELETE FROM relname
+ * ----------
+ */
+ rte = (RangeTblEntry *) nth(query->resultRelation - 1, query->rtable);
+ strcpy(buf, "DELETE FROM ");
+ strcat(buf, rte->relname);
+
+ /* Add a WHERE clause if given */
+ if (query->qual != NULL)
+ {
+ strcat(buf, " WHERE ");
+ strcat(buf, get_rule_expr(query->rtable, 0, query->qual, FALSE));
+ }
+
+ /* ----------
+ * Copy the query string into allocated space and return it
+ * ----------
+ */
+ return pstrdup(buf);
}
@@ -864,191 +917,197 @@ get_delete_query_def(Query *query)
static char *
get_rule_expr(List *rtable, int rt_index, Node *node, bool varprefix)
{
- char buf[8192];
+ char buf[8192];
- if (node == NULL)
- return pstrdup("");
+ if (node == NULL)
+ return pstrdup("");
- buf[0] = '\0';
+ buf[0] = '\0';
- /* ----------
- * Up to now I don't know if all the node types below
- * can really occur in rules actions and qualifications.
- * There might be some work left.
- * ----------
- */
- switch(nodeTag(node)) {
- case T_TargetEntry:
- {
- TargetEntry *tle = (TargetEntry *)node;
-
- return get_rule_expr(rtable, rt_index,
- (Node *)(tle->expr), varprefix);
- }
- break;
-
- case T_Aggreg:
- {
- Aggreg *agg = (Aggreg *)node;
-
- strcat(buf, agg->aggname);
- strcat(buf, "(");
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)(agg->target), varprefix));
- strcat(buf, ")");
- return pstrdup(buf);
- }
- break;
-
- case T_GroupClause:
- {
- GroupClause *grp = (GroupClause *)node;
+ /* ----------
+ * Up to now I don't know if all the node types below
+ * can really occur in rules actions and qualifications.
+ * There might be some work left.
+ * ----------
+ */
+ switch (nodeTag(node))
+ {
+ case T_TargetEntry:
+ {
+ TargetEntry *tle = (TargetEntry *) node;
+
+ return get_rule_expr(rtable, rt_index,
+ (Node *) (tle->expr), varprefix);
+ }
+ break;
- return get_rule_expr(rtable, rt_index,
- (Node *)(grp->entry), varprefix);
- }
- break;
+ case T_Aggreg:
+ {
+ Aggreg *agg = (Aggreg *) node;
- case T_Expr:
- {
- Expr *expr = (Expr *)node;
-
- /* ----------
- * Expr nodes have to be handled a bit detailed
- * ----------
- */
- switch (expr->opType) {
- case OP_EXPR:
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_leftop(expr),
- varprefix));
- strcat(buf, " ");
- strcat(buf, get_opname(((Oper *)expr->oper)->opno));
- strcat(buf, " ");
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_rightop(expr),
- varprefix));
- return pstrdup(buf);
- break;
-
- case OR_EXPR:
+ strcat(buf, agg->aggname);
strcat(buf, "(");
strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_leftop(expr),
- varprefix));
- strcat(buf, ") OR (");
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_rightop(expr),
- varprefix));
+ (Node *) (agg->target), varprefix));
strcat(buf, ")");
return pstrdup(buf);
- break;
-
- case AND_EXPR:
- strcat(buf, "(");
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_leftop(expr),
- varprefix));
- strcat(buf, ") AND (");
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_rightop(expr),
- varprefix));
- strcat(buf, ")");
- return pstrdup(buf);
- break;
-
- case NOT_EXPR:
- strcat(buf, "NOT (");
- strcat(buf, get_rule_expr(rtable, rt_index,
- (Node *)get_leftop(expr),
- varprefix));
- strcat(buf, ")");
- return pstrdup(buf);
- break;
+ }
+ break;
- case FUNC_EXPR:
- return get_func_expr(rtable, rt_index,
- (Expr *)node,
- varprefix);
- break;
+ case T_GroupClause:
+ {
+ GroupClause *grp = (GroupClause *) node;
- default:
- printf("\n%s\n", nodeToString(node));
- elog(ERROR, "Expr not yet supported");
- }
- }
- break;
+ return get_rule_expr(rtable, rt_index,
+ (Node *) (grp->entry), varprefix);
+ }
+ break;
- case T_Var:
- {
- Var *var = (Var *)node;
- RangeTblEntry *rte = (RangeTblEntry *)nth(var->varno - 1, rtable);
-
- if (!strcmp(rte->refname, "*NEW*")) {
- strcat(buf, "new.");
- } else {
- if (!strcmp(rte->refname, "*CURRENT*")) {
- strcat(buf, "current.");
- } else {
- if (varprefix && var->varno != rt_index) {
- strcat(buf, rte->refname);
- strcat(buf, ".");
+ case T_Expr:
+ {
+ Expr *expr = (Expr *) node;
+
+ /* ----------
+ * Expr nodes have to be handled a bit detailed
+ * ----------
+ */
+ switch (expr->opType)
+ {
+ case OP_EXPR:
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_leftop(expr),
+ varprefix));
+ strcat(buf, " ");
+ strcat(buf, get_opname(((Oper *) expr->oper)->opno));
+ strcat(buf, " ");
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_rightop(expr),
+ varprefix));
+ return pstrdup(buf);
+ break;
+
+ case OR_EXPR:
+ strcat(buf, "(");
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_leftop(expr),
+ varprefix));
+ strcat(buf, ") OR (");
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_rightop(expr),
+ varprefix));
+ strcat(buf, ")");
+ return pstrdup(buf);
+ break;
+
+ case AND_EXPR:
+ strcat(buf, "(");
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_leftop(expr),
+ varprefix));
+ strcat(buf, ") AND (");
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_rightop(expr),
+ varprefix));
+ strcat(buf, ")");
+ return pstrdup(buf);
+ break;
+
+ case NOT_EXPR:
+ strcat(buf, "NOT (");
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ (Node *) get_leftop(expr),
+ varprefix));
+ strcat(buf, ")");
+ return pstrdup(buf);
+ break;
+
+ case FUNC_EXPR:
+ return get_func_expr(rtable, rt_index,
+ (Expr *) node,
+ varprefix);
+ break;
+
+ default:
+ printf("\n%s\n", nodeToString(node));
+ elog(ERROR, "Expr not yet supported");
}
- }
}
- strcat(buf, get_attribute_name(rte->relid, var->varattno));
+ break;
- return pstrdup(buf);
- }
- break;
+ case T_Var:
+ {
+ Var *var = (Var *) node;
+ RangeTblEntry *rte = (RangeTblEntry *) nth(var->varno - 1, rtable);
+
+ if (!strcmp(rte->refname, "*NEW*"))
+ strcat(buf, "new.");
+ else
+ {
+ if (!strcmp(rte->refname, "*CURRENT*"))
+ strcat(buf, "current.");
+ else
+ {
+ if (varprefix && var->varno != rt_index)
+ {
+ strcat(buf, rte->refname);
+ strcat(buf, ".");
+ }
+ }
+ }
+ strcat(buf, get_attribute_name(rte->relid, var->varattno));
- case T_List:
- {
- printf("\n%s\n", nodeToString(node));
- elog(ERROR, "List not yet supported");
- }
- break;
+ return pstrdup(buf);
+ }
+ break;
- case T_SubLink:
- {
- SubLink *sublink = (SubLink *)node;
- Query *query = (Query *)(sublink->subselect);
- List *l;
- char *sep;
-
- if (sublink->lefthand != NULL) {
- strcat(buf, "(");
- sep = "";
- foreach (l, sublink->lefthand) {
- strcat(buf, sep); sep = ", ";
- strcat(buf, get_rule_expr(rtable, rt_index,
- lfirst(l), varprefix));
- }
- strcat(buf, ") IN ");
+ case T_List:
+ {
+ printf("\n%s\n", nodeToString(node));
+ elog(ERROR, "List not yet supported");
}
+ break;
- strcat(buf, "(");
- strcat(buf, get_query_def(query));
- strcat(buf, ")");
+ case T_SubLink:
+ {
+ SubLink *sublink = (SubLink *) node;
+ Query *query = (Query *) (sublink->subselect);
+ List *l;
+ char *sep;
+
+ if (sublink->lefthand != NULL)
+ {
+ strcat(buf, "(");
+ sep = "";
+ foreach(l, sublink->lefthand)
+ {
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, get_rule_expr(rtable, rt_index,
+ lfirst(l), varprefix));
+ }
+ strcat(buf, ") IN ");
+ }
- return pstrdup(buf);
- }
- break;
+ strcat(buf, "(");
+ strcat(buf, get_query_def(query));
+ strcat(buf, ")");
- case T_Const:
- {
- return get_const_expr((Const *)node);
- }
- break;
+ return pstrdup(buf);
+ }
+ break;
- default:
- printf("\n%s\n", nodeToString(node));
- elog(ERROR, "get_ruledef of %s: unknown node type %d get_rule_expr()",
- rulename, nodeTag(node));
- break;
- }
+ case T_Const:
+ return get_const_expr((Const *) node);
+ break;
- return FALSE;
+ default:
+ printf("\n%s\n", nodeToString(node));
+ elog(ERROR, "get_ruledef of %s: unknown node type %d get_rule_expr()",
+ rulename, nodeTag(node));
+ break;
+ }
+
+ return FALSE;
}
@@ -1059,61 +1118,66 @@ get_rule_expr(List *rtable, int rt_index, Node *node, bool varprefix)
static char *
get_func_expr(List *rtable, int rt_index, Expr *expr, bool varprefix)
{
- char buf[8192];
- HeapTuple proctup;
- Form_pg_proc procStruct;
- List *l;
- char *sep;
- Func *func = (Func *)(expr->oper);
- char *proname;
-
- /* ----------
- * Get the functions pg_proc tuple
- * ----------
- */
- proctup = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(func->funcid), 0, 0, 0);
- if (!HeapTupleIsValid(proctup))
- elog(ERROR, "cache lookup for proc %d failed", func->funcid);
-
- procStruct = (Form_pg_proc) GETSTRUCT(proctup);
- proname = nameout(&(procStruct->proname));
-
- if (procStruct->pronargs == 1 && procStruct->proargtypes[0] == InvalidOid) {
- if (!strcmp(proname, "nullvalue")) {
- strcpy(buf, "(");
- strcat(buf, get_rule_expr(rtable, rt_index, lfirst(expr->args),
- varprefix));
- strcat(buf, ") ISNULL");
- return pstrdup(buf);
+ char buf[8192];
+ HeapTuple proctup;
+ Form_pg_proc procStruct;
+ List *l;
+ char *sep;
+ Func *func = (Func *) (expr->oper);
+ char *proname;
+
+ /* ----------
+ * Get the functions pg_proc tuple
+ * ----------
+ */
+ proctup = SearchSysCacheTuple(PROOID,
+ ObjectIdGetDatum(func->funcid), 0, 0, 0);
+ if (!HeapTupleIsValid(proctup))
+ elog(ERROR, "cache lookup for proc %d failed", func->funcid);
+
+ procStruct = (Form_pg_proc) GETSTRUCT(proctup);
+ proname = nameout(&(procStruct->proname));
+
+ if (procStruct->pronargs == 1 && procStruct->proargtypes[0] == InvalidOid)
+ {
+ if (!strcmp(proname, "nullvalue"))
+ {
+ strcpy(buf, "(");
+ strcat(buf, get_rule_expr(rtable, rt_index, lfirst(expr->args),
+ varprefix));
+ strcat(buf, ") ISNULL");
+ return pstrdup(buf);
+ }
+ if (!strcmp(proname, "nonnullvalue"))
+ {
+ strcpy(buf, "(");
+ strcat(buf, get_rule_expr(rtable, rt_index, lfirst(expr->args),
+ varprefix));
+ strcat(buf, ") NOTNULL");
+ return pstrdup(buf);
+ }
}
- if (!strcmp(proname, "nonnullvalue")) {
- strcpy(buf, "(");
- strcat(buf, get_rule_expr(rtable, rt_index, lfirst(expr->args),
- varprefix));
- strcat(buf, ") NOTNULL");
- return pstrdup(buf);
+
+ /* ----------
+ * Build a string of proname(args)
+ * ----------
+ */
+ strcpy(buf, proname);
+ strcat(buf, "(");
+ sep = "";
+ foreach(l, expr->args)
+ {
+ strcat(buf, sep);
+ sep = ", ";
+ strcat(buf, get_rule_expr(rtable, rt_index, lfirst(l), varprefix));
}
- }
-
- /* ----------
- * Build a string of proname(args)
- * ----------
- */
- strcpy(buf, proname);
- strcat(buf, "(");
- sep = "";
- foreach (l, expr->args) {
- strcat(buf, sep); sep = ", ";
- strcat(buf, get_rule_expr(rtable, rt_index, lfirst(l), varprefix));
- }
- strcat(buf, ")");
-
- /* ----------
- * Copy the function call string into allocated space and return it
- * ----------
- */
- return pstrdup(buf);
+ strcat(buf, ")");
+
+ /* ----------
+ * Copy the function call string into allocated space and return it
+ * ----------
+ */
+ return pstrdup(buf);
}
@@ -1132,75 +1196,67 @@ get_func_expr(List *rtable, int rt_index, Expr *expr, bool varprefix)
static char *
get_tle_expr(List *rtable, int rt_index, TargetEntry *tle, bool varprefix)
{
- HeapTuple proctup;
- Form_pg_proc procStruct;
- Expr *expr;
- Func *func;
- Const *second_arg;
-
- /* ----------
- * Check if the result has an atttypmod and if the
- * expression in the targetlist entry is a function call
- * ----------
- */
- if (tle->resdom->restypmod < 0) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
- if (nodeTag(tle->expr) != T_Expr) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
- expr = (Expr *)(tle->expr);
- if (expr->opType != FUNC_EXPR) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
-
- func = (Func *)(expr->oper);
-
- /* ----------
- * Get the functions pg_proc tuple
- * ----------
- */
- proctup = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(func->funcid), 0, 0, 0);
- if (!HeapTupleIsValid(proctup))
- elog(ERROR, "cache lookup for proc %d failed", func->funcid);
-
- procStruct = (Form_pg_proc) GETSTRUCT(proctup);
-
- /* ----------
- * It must be a function with two arguments where the first
- * is of the same type as the return value and the second is
- * an int4.
- * ----------
- */
- if (procStruct->pronargs != 2) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
- if (procStruct->prorettype != procStruct->proargtypes[0]) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
- if (procStruct->proargtypes[1] != INT4OID) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
-
- /* ----------
- * Finally (to be totally safe) the second argument must be a
- * const and match the value in the results atttypmod.
- * ----------
- */
- second_arg = (Const *)nth(1, expr->args);
- if (nodeTag((Node *)second_arg) != T_Const) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
- if ((int4)(second_arg->constvalue) != tle->resdom->restypmod) {
- return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
- }
-
- /* ----------
- * Whow - got it. Now get rid of the padding function
- * ----------
- */
- return get_rule_expr(rtable, rt_index, lfirst(expr->args), varprefix);
+ HeapTuple proctup;
+ Form_pg_proc procStruct;
+ Expr *expr;
+ Func *func;
+ Const *second_arg;
+
+ /* ----------
+ * Check if the result has an atttypmod and if the
+ * expression in the targetlist entry is a function call
+ * ----------
+ */
+ if (tle->resdom->restypmod < 0)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+ if (nodeTag(tle->expr) != T_Expr)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+ expr = (Expr *) (tle->expr);
+ if (expr->opType != FUNC_EXPR)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+
+ func = (Func *) (expr->oper);
+
+ /* ----------
+ * Get the functions pg_proc tuple
+ * ----------
+ */
+ proctup = SearchSysCacheTuple(PROOID,
+ ObjectIdGetDatum(func->funcid), 0, 0, 0);
+ if (!HeapTupleIsValid(proctup))
+ elog(ERROR, "cache lookup for proc %d failed", func->funcid);
+
+ procStruct = (Form_pg_proc) GETSTRUCT(proctup);
+
+ /* ----------
+ * It must be a function with two arguments where the first
+ * is of the same type as the return value and the second is
+ * an int4.
+ * ----------
+ */
+ if (procStruct->pronargs != 2)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+ if (procStruct->prorettype != procStruct->proargtypes[0])
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+ if (procStruct->proargtypes[1] != INT4OID)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+
+ /* ----------
+ * Finally (to be totally safe) the second argument must be a
+ * const and match the value in the results atttypmod.
+ * ----------
+ */
+ second_arg = (Const *) nth(1, expr->args);
+ if (nodeTag((Node *) second_arg) != T_Const)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+ if ((int4) (second_arg->constvalue) != tle->resdom->restypmod)
+ return get_rule_expr(rtable, rt_index, tle->expr, varprefix);
+
+ /* ----------
+ * Whow - got it. Now get rid of the padding function
+ * ----------
+ */
+ return get_rule_expr(rtable, rt_index, lfirst(expr->args), varprefix);
}
@@ -1212,29 +1268,29 @@ get_tle_expr(List *rtable, int rt_index, TargetEntry *tle, bool varprefix)
char *
get_const_expr(Const *constval)
{
- HeapTuple typetup;
- Form_pg_type typeStruct;
- FmgrInfo finfo_output;
- char *extval;
- bool isnull = FALSE;
- char buf[8192];
+ HeapTuple typetup;
+ Form_pg_type typeStruct;
+ FmgrInfo finfo_output;
+ char *extval;
+ bool isnull = FALSE;
+ char buf[8192];
- if (constval->constisnull)
- return "NULL";
+ if (constval->constisnull)
+ return "NULL";
- typetup = SearchSysCacheTuple(TYPOID,
- ObjectIdGetDatum(constval->consttype), 0, 0, 0);
- if (!HeapTupleIsValid(typetup))
- elog(ERROR, "cache lookup of type %d failed", constval->consttype);
+ typetup = SearchSysCacheTuple(TYPOID,
+ ObjectIdGetDatum(constval->consttype), 0, 0, 0);
+ if (!HeapTupleIsValid(typetup))
+ elog(ERROR, "cache lookup of type %d failed", constval->consttype);
- typeStruct = (Form_pg_type) GETSTRUCT(typetup);
+ typeStruct = (Form_pg_type) GETSTRUCT(typetup);
- fmgr_info(typeStruct->typoutput, &finfo_output);
- extval = (char *)(*fmgr_faddr(&finfo_output))(constval->constvalue,
- &isnull, -1);
+ fmgr_info(typeStruct->typoutput, &finfo_output);
+ extval = (char *) (*fmgr_faddr(&finfo_output)) (constval->constvalue,
+ &isnull, -1);
- sprintf(buf, "'%s'::%s", extval, nameout(&(typeStruct->typname)));
- return pstrdup(buf);
+ sprintf(buf, "'%s'::%s", extval, nameout(&(typeStruct->typname)));
+ return pstrdup(buf);
}
@@ -1245,16 +1301,16 @@ get_const_expr(Const *constval)
static char *
get_relation_name(Oid relid)
{
- HeapTuple classtup;
- Form_pg_class classStruct;
+ HeapTuple classtup;
+ Form_pg_class classStruct;
- classtup = SearchSysCacheTuple(RELOID,
- ObjectIdGetDatum(relid), 0, 0, 0);
- if (!HeapTupleIsValid(classtup))
- elog(ERROR, "cache lookup of relation %d failed", relid);
+ classtup = SearchSysCacheTuple(RELOID,
+ ObjectIdGetDatum(relid), 0, 0, 0);
+ if (!HeapTupleIsValid(classtup))
+ elog(ERROR, "cache lookup of relation %d failed", relid);
- classStruct = (Form_pg_class) GETSTRUCT(classtup);
- return nameout(&(classStruct->relname));
+ classStruct = (Form_pg_class) GETSTRUCT(classtup);
+ return nameout(&(classStruct->relname));
}
@@ -1266,17 +1322,17 @@ get_relation_name(Oid relid)
static char *
get_attribute_name(Oid relid, int2 attnum)
{
- HeapTuple atttup;
- Form_pg_attribute attStruct;
+ HeapTuple atttup;
+ Form_pg_attribute attStruct;
- atttup = SearchSysCacheTuple(ATTNUM,
- ObjectIdGetDatum(relid), (Datum)attnum, 0, 0);
- if (!HeapTupleIsValid(atttup))
- elog(ERROR, "cache lookup of attribute %d in relation %d failed",
- attnum, relid);
+ atttup = SearchSysCacheTuple(ATTNUM,
+ ObjectIdGetDatum(relid), (Datum) attnum, 0, 0);
+ if (!HeapTupleIsValid(atttup))
+ elog(ERROR, "cache lookup of attribute %d in relation %d failed",
+ attnum, relid);
- attStruct = (Form_pg_attribute) GETSTRUCT(atttup);
- return nameout(&(attStruct->attname));
+ attStruct = (Form_pg_attribute) GETSTRUCT(atttup);
+ return nameout(&(attStruct->attname));
}
@@ -1289,88 +1345,92 @@ get_attribute_name(Oid relid, int2 attnum)
static bool
check_if_rte_used(int rt_index, Node *node, int sup)
{
- if (node == NULL)
- return FALSE;
+ if (node == NULL)
+ return FALSE;
- switch(nodeTag(node)) {
- case T_TargetEntry:
- {
- TargetEntry *tle = (TargetEntry *)node;
+ switch (nodeTag(node))
+ {
+ case T_TargetEntry:
+ {
+ TargetEntry *tle = (TargetEntry *) node;
- return check_if_rte_used(rt_index,
- (Node *)(tle->expr), sup);
- }
- break;
+ return check_if_rte_used(rt_index,
+ (Node *) (tle->expr), sup);
+ }
+ break;
- case T_Aggreg:
- {
- Aggreg *agg = (Aggreg *)node;
- return check_if_rte_used(rt_index,
- (Node *)(agg->target), sup);
- }
- break;
+ case T_Aggreg:
+ {
+ Aggreg *agg = (Aggreg *) node;
- case T_GroupClause:
- {
- GroupClause *grp = (GroupClause *)node;
- return check_if_rte_used(rt_index,
- (Node *)(grp->entry), sup);
- }
- break;
+ return check_if_rte_used(rt_index,
+ (Node *) (agg->target), sup);
+ }
+ break;
- case T_Expr:
- {
- Expr *expr = (Expr *)node;
- return check_if_rte_used(rt_index,
- (Node *)(expr->args), sup);
- }
- break;
+ case T_GroupClause:
+ {
+ GroupClause *grp = (GroupClause *) node;
- case T_Var:
- {
- Var *var = (Var *)node;
- return var->varno == rt_index && var->varlevelsup == sup;
- }
- break;
+ return check_if_rte_used(rt_index,
+ (Node *) (grp->entry), sup);
+ }
+ break;
- case T_List:
- {
- List *l;
+ case T_Expr:
+ {
+ Expr *expr = (Expr *) node;
- foreach (l, (List *)node) {
- if (check_if_rte_used(rt_index, lfirst(l), sup))
- return TRUE;
+ return check_if_rte_used(rt_index,
+ (Node *) (expr->args), sup);
}
- return FALSE;
- }
- break;
+ break;
- case T_SubLink:
- {
- SubLink *sublink = (SubLink *)node;
- Query *query = (Query *)sublink->subselect;
+ case T_Var:
+ {
+ Var *var = (Var *) node;
- if (check_if_rte_used(rt_index, (Node *)(query->qual), sup + 1))
- return TRUE;
+ return var->varno == rt_index && var->varlevelsup == sup;
+ }
+ break;
- if (check_if_rte_used(rt_index, (Node *)(sublink->lefthand), sup))
- return TRUE;
+ case T_List:
+ {
+ List *l;
- return FALSE;
- }
- break;
+ foreach(l, (List *) node)
+ {
+ if (check_if_rte_used(rt_index, lfirst(l), sup))
+ return TRUE;
+ }
+ return FALSE;
+ }
+ break;
- case T_Const:
- return FALSE;
- break;
+ case T_SubLink:
+ {
+ SubLink *sublink = (SubLink *) node;
+ Query *query = (Query *) sublink->subselect;
- default:
- elog(ERROR, "get_ruledef of %s: unknown node type %d in check_if_rte_used()",
- rulename, nodeTag(node));
- break;
- }
+ if (check_if_rte_used(rt_index, (Node *) (query->qual), sup + 1))
+ return TRUE;
- return FALSE;
-}
+ if (check_if_rte_used(rt_index, (Node *) (sublink->lefthand), sup))
+ return TRUE;
+
+ return FALSE;
+ }
+ break;
+ case T_Const:
+ return FALSE;
+ break;
+
+ default:
+ elog(ERROR, "get_ruledef of %s: unknown node type %d in check_if_rte_used()",
+ rulename, nodeTag(node));
+ break;
+ }
+ return FALSE;
+}
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 6389dc4b0d8..c8dfc204420 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.22 1998/09/01 03:26:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.23 1998/09/01 04:32:50 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,8 +41,7 @@
#define FunctionalSelectivity(nIndKeys,attNum) (attNum==InvalidAttrNumber)
static float32data getattdisbursion(Oid relid, AttrNumber attnum);
-static void
-gethilokey(Oid relid, AttrNumber attnum, Oid opid,
+static void gethilokey(Oid relid, AttrNumber attnum, Oid opid,
char **high, char **low);
diff --git a/src/backend/utils/adt/sets.c b/src/backend/utils/adt/sets.c
index 588876dadde..54aadc407c5 100644
--- a/src/backend/utils/adt/sets.c
+++ b/src/backend/utils/adt/sets.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.17 1998/09/01 03:26:19 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.18 1998/09/01 04:32:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -112,8 +112,8 @@ SetDefine(char *querystr, char *typename)
RelationSetLockForWrite(procrel);
tup = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(setoid),
- 0, 0, 0);
+ ObjectIdGetDatum(setoid),
+ 0, 0, 0);
if (HeapTupleIsValid(tup))
{
newtup = heap_modifytuple(tup,
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 9f76c7c61a7..6f8f82d8406 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.38 1998/09/01 03:26:22 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.39 1998/09/01 04:32:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -137,7 +137,8 @@ bpchar(char *s, int32 len)
{
char *result,
*r;
- int rlen, slen;
+ int rlen,
+ slen;
int i;
if (s == NULL)
@@ -152,8 +153,8 @@ bpchar(char *s, int32 len)
elog(ERROR, "bpchar: length of char() must be less than 4096");
#ifdef STRINGDEBUG
-printf("bpchar- convert string length %d (%d) ->%d (%d)\n",
- VARSIZE(s)-VARHDRSZ, VARSIZE(s), rlen, len);
+ printf("bpchar- convert string length %d (%d) ->%d (%d)\n",
+ VARSIZE(s) - VARHDRSZ, VARSIZE(s), rlen, len);
#endif
result = (char *) palloc(len);
@@ -163,7 +164,7 @@ printf("bpchar- convert string length %d (%d) ->%d (%d)\n",
s = VARDATA(s);
#ifdef STRINGDEBUG
-printf("bpchar- string is '");
+ printf("bpchar- string is '");
#endif
for (i = 0; (i < rlen) && (i < slen); i++)
@@ -172,14 +173,14 @@ printf("bpchar- string is '");
break;
#ifdef STRINGDEBUG
-printf("%c", *s);
+ printf("%c", *s);
#endif
*r++ = *s++;
}
#ifdef STRINGDEBUG
-printf("'\n");
+ printf("'\n");
#endif
/* blank pad the string if necessary */
@@ -187,7 +188,7 @@ printf("'\n");
*r++ = ' ';
return result;
-} /* bpchar() */
+} /* bpchar() */
/* bpchar_char()
@@ -197,7 +198,7 @@ int32
bpchar_char(char *s)
{
return (int32) *VARDATA(s);
-} /* bpchar_char() */
+} /* bpchar_char() */
/* char_bpchar()
* Convert char to bpchar(1).
@@ -205,21 +206,21 @@ bpchar_char(char *s)
char *
char_bpchar(int32 c)
{
- char *result;
+ char *result;
- result = palloc(VARHDRSZ+1);
+ result = palloc(VARHDRSZ + 1);
- VARSIZE(result) = VARHDRSZ+1;
+ VARSIZE(result) = VARHDRSZ + 1;
*(VARDATA(result)) = (char) c;
return result;
-} /* char_bpchar() */
+} /* char_bpchar() */
/* bpchar_name()
* Converts a bpchar() type to a NameData type.
*/
-NameData *
+NameData *
bpchar_name(char *s)
{
NameData *result;
@@ -229,29 +230,33 @@ bpchar_name(char *s)
return NULL;
len = VARSIZE(s) - VARHDRSZ;
- if (len > NAMEDATALEN) len = NAMEDATALEN;
+ if (len > NAMEDATALEN)
+ len = NAMEDATALEN;
- while (len > 0) {
- if (*(VARDATA(s)+len-1) != ' ') break;
+ while (len > 0)
+ {
+ if (*(VARDATA(s) + len - 1) != ' ')
+ break;
len--;
}
#ifdef STRINGDEBUG
-printf("bpchar- convert string length %d (%d) ->%d\n",
- VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+ printf("bpchar- convert string length %d (%d) ->%d\n",
+ VARSIZE(s) - VARHDRSZ, VARSIZE(s), len);
#endif
result = (NameData *) palloc(NAMEDATALEN);
StrNCpy(result->data, VARDATA(s), NAMEDATALEN);
/* now null pad to full length... */
- while (len < NAMEDATALEN) {
+ while (len < NAMEDATALEN)
+ {
*(result->data + len) = '\0';
len++;
}
return result;
-} /* bpchar_name() */
+} /* bpchar_name() */
/* name_bpchar()
* Converts a NameData type to a bpchar type.
@@ -268,8 +273,8 @@ name_bpchar(NameData *s)
len = strlen(s->data);
#ifdef STRINGDEBUG
-printf("bpchar- convert string length %d (%d) ->%d\n",
- VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+ printf("bpchar- convert string length %d (%d) ->%d\n",
+ VARSIZE(s) - VARHDRSZ, VARSIZE(s), len);
#endif
result = (char *) palloc(VARHDRSZ + len);
@@ -277,7 +282,7 @@ printf("bpchar- convert string length %d (%d) ->%d\n",
VARSIZE(result) = len + VARHDRSZ;
return result;
-} /* name_bpchar() */
+} /* name_bpchar() */
/*****************************************************************************
@@ -372,7 +377,7 @@ varchar(char *s, int32 slen)
strncpy(VARDATA(result), VARDATA(s), len);
return result;
-} /* varchar() */
+} /* varchar() */
/*****************************************************************************
@@ -400,7 +405,10 @@ bpcharlen(char *arg)
{
#ifdef MULTIBYTE
unsigned char *s;
- int len, l, wl;
+ int len,
+ l,
+ wl;
+
#endif
if (!PointerIsValid(arg))
elog(ERROR, "Bad (null) char() external representation", NULL);
@@ -408,13 +416,14 @@ bpcharlen(char *arg)
l = bcTruelen(arg);
len = 0;
s = VARDATA(arg);
- while (l > 0) {
- wl = pg_mblen(s);
- l -= wl;
- s += wl;
- len++;
+ while (l > 0)
+ {
+ wl = pg_mblen(s);
+ l -= wl;
+ s += wl;
+ len++;
}
- return(len);
+ return (len);
#else
return bcTruelen(arg);
#endif
@@ -565,7 +574,10 @@ varcharlen(char *arg)
{
#ifdef MULTIBYTE
unsigned char *s;
- int len, l, wl;
+ int len,
+ l,
+ wl;
+
#endif
if (!PointerIsValid(arg))
elog(ERROR, "Bad (null) varchar() external representation", NULL);
@@ -574,13 +586,14 @@ varcharlen(char *arg)
len = 0;
s = VARDATA(arg);
l = VARSIZE(arg) - VARHDRSZ;
- while (l > 0) {
- wl = pg_mblen(s);
- l -= wl;
- s += wl;
- len++;
+ while (l > 0)
+ {
+ wl = pg_mblen(s);
+ l -= wl;
+ s += wl;
+ len++;
}
- return(len);
+ return (len);
#else
return VARSIZE(arg) - VARHDRSZ;
#endif
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 22e0e981240..4410aa1c9aa 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.41 1998/09/01 03:26:23 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.42 1998/09/01 04:32:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -208,9 +208,12 @@ textlen(text *t)
{
#ifdef MULTIBYTE
unsigned char *s;
- int len, l, wl;
+ int len,
+ l,
+ wl;
+
#endif
-
+
if (!PointerIsValid(t))
elog(ERROR, "Null input to textlen");
@@ -218,17 +221,18 @@ textlen(text *t)
len = 0;
s = VARDATA(t);
l = VARSIZE(t) - VARHDRSZ;
- while (l > 0) {
- wl = pg_mblen(s);
- l -= wl;
- s += wl;
- len++;
+ while (l > 0)
+ {
+ wl = pg_mblen(s);
+ l -= wl;
+ s += wl;
+ len++;
}
- return(len);
+ return (len);
#else
return VARSIZE(t) - VARHDRSZ;
#endif
-
+
} /* textlen() */
/*
@@ -322,9 +326,11 @@ text_substr(text *string, int32 m, int32 n)
{
text *ret;
int len;
+
#ifdef MULTIBYTE
- int i;
- char *p;
+ int i;
+ char *p;
+
#endif
if ((string == (text *) NULL) || (m <= 0))
@@ -332,7 +338,7 @@ text_substr(text *string, int32 m, int32 n)
len = VARSIZE(string) - VARHDRSZ;
#ifdef MULTIBYTE
- len = pg_mbstrlen_with_len(VARDATA(string),len);
+ len = pg_mbstrlen_with_len(VARDATA(string), len);
#endif
/* m will now become a zero-based starting position */
@@ -350,13 +356,11 @@ text_substr(text *string, int32 m, int32 n)
#ifdef MULTIBYTE
p = VARDATA(string);
- for (i=0;i<m;i++) {
- p += pg_mblen(p);
- }
+ for (i = 0; i < m; i++)
+ p += pg_mblen(p);
m = p - VARDATA(string);
- for (i=0;i<n;i++) {
- p += pg_mblen(p);
- }
+ for (i = 0; i < n; i++)
+ p += pg_mblen(p);
n = p - (VARDATA(string) + m);
#endif
ret = (text *) palloc(VARHDRSZ + n);
@@ -385,10 +389,13 @@ textpos(text *t1, text *t2)
p;
int len1,
len2;
- pg_wchar *p1,
+ pg_wchar *p1,
*p2;
+
#ifdef MULTIBYTE
- pg_wchar *ps1, *ps2;
+ pg_wchar *ps1,
+ *ps2;
+
#endif
if (!PointerIsValid(t1) || !PointerIsValid(t2))
@@ -400,11 +407,11 @@ textpos(text *t1, text *t2)
len1 = (VARSIZE(t1) - VARHDRSZ);
len2 = (VARSIZE(t2) - VARHDRSZ);
#ifdef MULTIBYTE
- ps1 = p1 = (pg_wchar *) palloc((len1 + 1)*sizeof(pg_wchar));
- (void)pg_mb2wchar_with_len((unsigned char *)VARDATA(t1),p1,len1);
+ ps1 = p1 = (pg_wchar *) palloc((len1 + 1) * sizeof(pg_wchar));
+ (void) pg_mb2wchar_with_len((unsigned char *) VARDATA(t1), p1, len1);
len1 = pg_wchar_strlen(p1);
- ps2 = p2 = (pg_wchar *) palloc((len2 + 1)*sizeof(pg_wchar));
- (void)pg_mb2wchar_with_len((unsigned char *)VARDATA(t2),p2,len2);
+ ps2 = p2 = (pg_wchar *) palloc((len2 + 1) * sizeof(pg_wchar));
+ (void) pg_mb2wchar_with_len((unsigned char *) VARDATA(t2), p2, len2);
len2 = pg_wchar_strlen(p2);
#else
p1 = VARDATA(t1);
@@ -477,8 +484,9 @@ textne(text *arg1, text *arg2)
int
varstr_cmp(char *arg1, int len1, char *arg2, int len2)
{
- int result;
- char *a1p, *a2p;
+ int result;
+ char *a1p,
+ *a2p;
#ifdef USE_LOCALE
a1p = (unsigned char *) palloc(len1 + 1);
@@ -518,8 +526,10 @@ varstr_cmp(char *arg1, int len1, char *arg2, int len2)
int
text_cmp(text *arg1, text *arg2)
{
- char *a1p, *a2p;
- int len1, len2;
+ char *a1p,
+ *a2p;
+ int len1,
+ len2;
if (arg1 == NULL || arg2 == NULL)
return (bool) FALSE;
@@ -539,7 +549,7 @@ text_cmp(text *arg1, text *arg2)
bool
text_lt(text *arg1, text *arg2)
{
- return (bool)(text_cmp(arg1, arg2) < 0);
+ return (bool) (text_cmp(arg1, arg2) < 0);
} /* text_lt() */
/* text_le()
@@ -548,7 +558,7 @@ text_lt(text *arg1, text *arg2)
bool
text_le(text *arg1, text *arg2)
{
- return (bool)(text_cmp(arg1, arg2) <= 0);
+ return (bool) (text_cmp(arg1, arg2) <= 0);
} /* text_le() */
bool
@@ -725,7 +735,7 @@ byteaSetBit(text *v, int32 n, int32 newBit)
/* text_name()
* Converts a text() type to a NameData type.
*/
-NameData *
+NameData *
text_name(text *s)
{
NameData *result;
@@ -735,24 +745,26 @@ text_name(text *s)
return NULL;
len = VARSIZE(s) - VARHDRSZ;
- if (len > NAMEDATALEN) len = NAMEDATALEN;
+ if (len > NAMEDATALEN)
+ len = NAMEDATALEN;
#ifdef STRINGDEBUG
-printf("text- convert string length %d (%d) ->%d\n",
- VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+ printf("text- convert string length %d (%d) ->%d\n",
+ VARSIZE(s) - VARHDRSZ, VARSIZE(s), len);
#endif
result = palloc(NAMEDATALEN);
StrNCpy(result->data, VARDATA(s), NAMEDATALEN);
/* now null pad to full length... */
- while (len < NAMEDATALEN) {
+ while (len < NAMEDATALEN)
+ {
*(result->data + len) = '\0';
len++;
}
return result;
-} /* text_name() */
+} /* text_name() */
/* name_text()
* Converts a NameData type to a text type.
@@ -769,8 +781,8 @@ name_text(NameData *s)
len = strlen(s->data);
#ifdef STRINGDEBUG
-printf("text- convert string length %d (%d) ->%d\n",
- VARSIZE(s)-VARHDRSZ, VARSIZE(s), len);
+ printf("text- convert string length %d (%d) ->%d\n",
+ VARSIZE(s) - VARHDRSZ, VARSIZE(s), len);
#endif
result = palloc(VARHDRSZ + len);
@@ -778,4 +790,4 @@ printf("text- convert string length %d (%d) ->%d\n",
VARSIZE(result) = len + VARHDRSZ;
return result;
-} /* name_text() */
+} /* name_text() */
diff --git a/src/backend/utils/adt/version.c b/src/backend/utils/adt/version.c
index e0af6b2d6df..f15e788bc80 100644
--- a/src/backend/utils/adt/version.c
+++ b/src/backend/utils/adt/version.c
@@ -1,11 +1,11 @@
/*-------------------------------------------------------------------------
*
* version.c--
- * Returns the version string
+ * Returns the version string
*
* IDENTIFICATION
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/version.c,v 1.1 1998/04/29 12:38:05 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/version.c,v 1.2 1998/09/01 04:32:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -14,12 +14,13 @@
#include "version.h"
-text* version(void);
+text *version(void);
-text* version(void)
+text *
+version(void)
{
- int n = strlen(PG_VERSION_STR) + VARHDRSZ;
- text *ret = (text *) palloc(n);
+ int n = strlen(PG_VERSION_STR) + VARHDRSZ;
+ text *ret = (text *) palloc(n);
VARSIZE(ret) = n;
strcpy(VARDATA(ret), PG_VERSION_STR);
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index ebc263d8a2c..d54d2584ae8 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.33 1998/09/01 03:26:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.34 1998/09/01 04:32:57 momjian Exp $
*
* Notes:
* XXX This needs to use exception.h to handle recovery when
@@ -102,7 +102,7 @@ do { \
elog(DEBUG, "CatalogCacheInitializeCache: called w/relname %s", \
cache->cc_relname) \
} while(0)
-
+
#define CatalogCacheInitializeCache_DEBUG2 \
do { \
if (cache->cc_key[i] > 0) { \
@@ -665,7 +665,7 @@ do { \
cp->cc_skey[i].sk_argument); \
} \
} while(0)
-
+
#else
#define InitSysCache_DEBUG1
#endif
@@ -894,7 +894,7 @@ SearchSysCache(struct catcache * cache,
CACHE3_elog(DEBUG, "SearchSysCache(%s): found in bucket %d",
RelationGetRelationName(relation), hash);
heap_close(relation);
-#endif /* CACHEDEBUG */
+#endif /* CACHEDEBUG */
return ct->ct_tup;
}
diff --git a/src/backend/utils/cache/fcache.c b/src/backend/utils/cache/fcache.c
index 8933c664412..8ebef95a2d8 100644
--- a/src/backend/utils/cache/fcache.c
+++ b/src/backend/utils/cache/fcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.17 1998/09/01 03:26:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.18 1998/09/01 04:32:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -36,8 +36,7 @@
#endif
static Oid GetDynamicFuncArgType(Var *arg, ExprContext *econtext);
-static FunctionCachePtr
-init_fcache(Oid foid,
+static FunctionCachePtr init_fcache(Oid foid,
bool use_syscache,
List *argList,
ExprContext *econtext);
@@ -126,7 +125,7 @@ init_fcache(Oid foid,
* ----------------
*/
typeTuple = SearchSysCacheTuple(TYPOID,
- ObjectIdGetDatum(procedureStruct->prorettype),
+ ObjectIdGetDatum(procedureStruct->prorettype),
0, 0, 0);
if (!HeapTupleIsValid(typeTuple))
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index 631fc2a18c9..d21540776de 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.15 1998/09/01 03:26:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/inval.c,v 1.16 1998/09/01 04:33:00 momjian Exp $
*
* Note - this code is real crufty...
*
@@ -33,8 +33,7 @@
static InvalidationEntry InvalidationEntryAllocate(uint16 size);
static void LocalInvalidInvalidate(LocalInvalid invalid, void (*function) ());
-static LocalInvalid
-LocalInvalidRegister(LocalInvalid invalid,
+static LocalInvalid LocalInvalidRegister(LocalInvalid invalid,
InvalidationEntry entry);
static void getmyrelids(void);
@@ -166,7 +165,7 @@ elog(DEBUG, "CacheIdRegisterLocalInvalid(%d, %d, [%d, %d])", \
ItemPointerGetOffsetNumber(pointer))
#else
#define CacheIdRegisterLocalInvalid_DEBUG1
-#endif /* INVALIDDEBUG */
+#endif /* INVALIDDEBUG */
static void
CacheIdRegisterLocalInvalid(Index cacheId,
@@ -218,7 +217,7 @@ RelationIdRegisterLocalInvalid(Oid relationId, Oid objectId)
#ifdef INVALIDDEBUG
elog(DEBUG, "RelationRegisterLocalInvalid(%d, %d)", relationId,
objectId);
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
/* ----------------
* create a message describing the relation descriptor
@@ -267,7 +266,7 @@ getmyrelids()
MyAMRelationId = tuple->t_oid;
tuple = SearchSysCacheTuple(RELNAME,
- PointerGetDatum(AccessMethodOperatorRelationName),
+ PointerGetDatum(AccessMethodOperatorRelationName),
0, 0, 0);
Assert(HeapTupleIsValid(tuple));
MyAMOPRelationId = tuple->t_oid;
@@ -287,7 +286,7 @@ elog(DEBUG, "CacheIdInvalidate(%d, %d, 0x%x[%d])", cacheId, hashIndex,\
pointer, ItemPointerIsValid(pointer))
#else
#define CacheIdInvalidate_DEBUG1
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
static void
CacheIdInvalidate(Index cacheId,
@@ -380,7 +379,7 @@ elog(DEBUG,\
#else
#define InvalidationMessageRegisterSharedInvalid_DEBUG1
#define InvalidationMessageRegisterSharedInvalid_DEBUG2
-#endif /* INVALIDDEBUG */
+#endif /* INVALIDDEBUG */
static void
InvalidationMessageRegisterSharedInvalid(InvalidationMessage message)
@@ -430,7 +429,7 @@ elog(DEBUG, "InvalidationMessageCacheInvalidate(c, %d, %d, [%d, %d])",\
#else
#define InvalidationMessageCacheInvalidate_DEBUG1
#define InvalidationMessageCacheInvalidate_DEBUG2
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
static void
InvalidationMessageCacheInvalidate(InvalidationMessage message)
@@ -536,7 +535,7 @@ DiscardInvalid()
*/
#ifdef INVALIDDEBUG
elog(DEBUG, "DiscardInvalid called");
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
InvalidateSharedInvalid(CacheIdInvalidate, ResetSystemCaches);
}
@@ -557,7 +556,7 @@ RegisterInvalid(bool send)
*/
#ifdef INVALIDDEBUG
elog(DEBUG, "RegisterInvalid(%d) called", send);
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
/* ----------------
* Note: Invalid is a global variable
@@ -582,7 +581,7 @@ SetRefreshWhenInvalidate(bool on)
{
#ifdef INVALIDDEBUG
elog(DEBUG, "RefreshWhenInvalidate(%d) called", on);
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
RefreshWhenInvalidate = on;
}
@@ -603,7 +602,7 @@ elog(DEBUG, "RelationInvalidateHeapTuple(%s, [%d,%d])", \
ItemPointerGetOffsetNumber(&tuple->t_ctid))
#else
#define RelationInvalidateHeapTuple_DEBUG1
-#endif /* defined(INVALIDDEBUG) */
+#endif /* defined(INVALIDDEBUG) */
void
RelationInvalidateHeapTuple(Relation relation, HeapTuple tuple)
diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c
index 7189f16c6e3..e804f5aa1cb 100644
--- a/src/backend/utils/cache/lsyscache.c
+++ b/src/backend/utils/cache/lsyscache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.21 1998/09/01 03:26:30 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.22 1998/09/01 04:33:01 momjian Exp $
*
* NOTES
* Eventually, the index information should go through here, too.
@@ -136,9 +136,9 @@ get_attisset(Oid relid, char *attname)
attno = get_attnum(relid, attname);
tuple = SearchSysCacheTuple(ATTNAME,
- ObjectIdGetDatum(relid),
- PointerGetDatum(attname),
- 0, 0);
+ ObjectIdGetDatum(relid),
+ PointerGetDatum(attname),
+ 0, 0);
if (!HeapTupleIsValid(tuple))
elog(ERROR, "get_attisset: no attribute %s in relation %d",
attname, relid);
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 078f532c959..ba4acc9fa23 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.49 1998/09/01 03:26:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.50 1998/09/01 04:33:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -81,8 +81,7 @@
#include "utils/syscache.h"
-static void
-RelationFlushRelation(Relation *relationPtr,
+static void RelationFlushRelation(Relation *relationPtr,
bool onlyFlushReferenceCountZero);
static Relation RelationNameCacheGetRelation(char *relationName);
static void init_irels(void);
@@ -195,7 +194,7 @@ do { \
RELATION = NULL; \
} while(0)
-#define RelationIdCacheLookup(ID, RELATION) \
+#define RelationIdCacheLookup(ID, RELATION) \
do { \
RelIdCacheEnt *hentry; \
bool found; \
@@ -233,8 +232,7 @@ do { \
} while(0)
/* non-export function prototypes */
-static void
-formrdesc(char *relationName, u_int natts,
+static void formrdesc(char *relationName, u_int natts,
FormData_pg_attribute *att);
#if 0 /* See comments at line 1304 */
@@ -246,14 +244,11 @@ static HeapTuple ScanPgRelation(RelationBuildDescInfo buildinfo);
static HeapTuple scan_pg_rel_seq(RelationBuildDescInfo buildinfo);
static HeapTuple scan_pg_rel_ind(RelationBuildDescInfo buildinfo);
static Relation AllocateRelationDesc(u_int natts, Form_pg_class relp);
-static void
-RelationBuildTupleDesc(RelationBuildDescInfo buildinfo,
+static void RelationBuildTupleDesc(RelationBuildDescInfo buildinfo,
Relation relation, u_int natts);
-static void
-build_tupdesc_seq(RelationBuildDescInfo buildinfo,
+static void build_tupdesc_seq(RelationBuildDescInfo buildinfo,
Relation relation, u_int natts);
-static void
-build_tupdesc_ind(RelationBuildDescInfo buildinfo,
+static void build_tupdesc_ind(RelationBuildDescInfo buildinfo,
Relation relation, u_int natts);
static Relation RelationBuildDesc(RelationBuildDescInfo buildinfo);
static void IndexedAccessMethodInitialize(Relation relation);
@@ -596,11 +591,11 @@ build_tupdesc_ind(RelationBuildDescInfo buildinfo,
for (i = 1; i <= relation->rd_rel->relnatts; i++)
{
atttup = (HeapTuple) AttributeNumIndexScan(attrel,
- RelationGetRelid(relation), i);
+ RelationGetRelid(relation), i);
if (!HeapTupleIsValid(atttup))
elog(ERROR, "cannot find attribute %d of relation %s", i,
- relation->rd_rel->relname.data);
+ relation->rd_rel->relname.data);
attp = (Form_pg_attribute) GETSTRUCT(atttup);
relation->rd_att->attrs[i - 1] =
@@ -714,7 +709,7 @@ RelationBuildRuleLock(Relation relation)
* add attribute data to relation->rd_att
* ----------------
*/
- while (HeapTupleIsValid(pg_rewrite_tuple=heap_getnext(pg_rewrite_scan, 0)))
+ while (HeapTupleIsValid(pg_rewrite_tuple = heap_getnext(pg_rewrite_scan, 0)))
{
bool isnull;
Datum ruleaction;
@@ -1094,7 +1089,7 @@ formrdesc(char *relationName,
RelationCacheInsert(relation);
RelationInitLockInfo(relation);
-
+
/*
* Determining this requires a scan on pg_class, but to do the scan
* the rdesc for pg_class must already exist. Therefore we must do
@@ -1689,8 +1684,8 @@ AttrDefaultFetch(Relation relation)
for (found = 0;;)
{
- Buffer buffer;
-
+ Buffer buffer;
+
indexRes = index_getnext(sd, ForwardScanDirection);
if (!indexRes)
break;
@@ -1708,29 +1703,29 @@ AttrDefaultFetch(Relation relation)
continue;
if (attrdef[i].adsrc != NULL)
elog(ERROR, "AttrDefaultFetch: second record found for attr %s in rel %s",
- relation->rd_att->attrs[adform->adnum - 1]->attname.data,
- relation->rd_rel->relname.data);
+ relation->rd_att->attrs[adform->adnum - 1]->attname.data,
+ relation->rd_rel->relname.data);
val = (struct varlena *) fastgetattr(tuple,
Anum_pg_attrdef_adbin,
adrel->rd_att, &isnull);
if (isnull)
elog(ERROR, "AttrDefaultFetch: adbin IS NULL for attr %s in rel %s",
- relation->rd_att->attrs[adform->adnum - 1]->attname.data,
- relation->rd_rel->relname.data);
+ relation->rd_att->attrs[adform->adnum - 1]->attname.data,
+ relation->rd_rel->relname.data);
attrdef[i].adbin = textout(val);
val = (struct varlena *) fastgetattr(tuple,
Anum_pg_attrdef_adsrc,
adrel->rd_att, &isnull);
if (isnull)
elog(ERROR, "AttrDefaultFetch: adsrc IS NULL for attr %s in rel %s",
- relation->rd_att->attrs[adform->adnum - 1]->attname.data,
- relation->rd_rel->relname.data);
+ relation->rd_att->attrs[adform->adnum - 1]->attname.data,
+ relation->rd_rel->relname.data);
attrdef[i].adsrc = textout(val);
break;
}
ReleaseBuffer(buffer);
-
+
if (i >= ndef)
elog(ERROR, "AttrDefaultFetch: unexpected record found for attr %d in rel %s",
adform->adnum,
@@ -1777,8 +1772,8 @@ RelCheckFetch(Relation relation)
for (found = 0;;)
{
- Buffer buffer;
-
+ Buffer buffer;
+
indexRes = index_getnext(sd, ForwardScanDirection);
if (!indexRes)
break;
@@ -1790,7 +1785,7 @@ RelCheckFetch(Relation relation)
continue;
if (found == ncheck)
elog(ERROR, "RelCheckFetch: unexpected record found for rel %s",
- relation->rd_rel->relname.data);
+ relation->rd_rel->relname.data);
rcname = (Name) fastgetattr(tuple,
Anum_pg_relcheck_rcname,
@@ -1982,7 +1977,8 @@ init_irels(void)
#define SMD(i) strat[0].strategyMapData[i].entry[0]
/* have to reinit the function pointers in the strategy maps */
- for (i = 0; i < am->amstrategies * relform->relnatts; i++) {
+ for (i = 0; i < am->amstrategies * relform->relnatts; i++)
+ {
fmgr_info(SMD(i).sk_procedure,
&(SMD(i).sk_func));
SMD(i).sk_nargs = SMD(i).sk_func.fn_nargs;
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index cebbe28ac1b..25b3e0a4309 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.21 1998/09/01 03:26:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.22 1998/09/01 04:33:03 momjian Exp $
*
* NOTES
* These routines allow the parser/planner/executor to perform
@@ -205,7 +205,7 @@ static struct cachedesc cacheinfo[] = {
0,
0
},
- offsetof(FormData_pg_type, typalign) +sizeof(char),
+ offsetof(FormData_pg_type, typalign) + sizeof(char),
TypeNameIndex,
TypeNameIndexScan},
{TypeRelationName, /* TYPOID */
@@ -241,7 +241,7 @@ static struct cachedesc cacheinfo[] = {
sizeof(FormData_pg_opclass),
NULL,
NULL},
- {IndexRelationName, /* INDRELIDKEY */ /* never used */
+ {IndexRelationName, /* INDRELIDKEY *//* never used */
2,
{
Anum_pg_index_indrelid,
@@ -438,6 +438,7 @@ InitCatalogCache()
}
}
}
+
/*
* SearchSysCacheTupleCopy--
*
@@ -445,11 +446,11 @@ InitCatalogCache()
* that the user is required to pfree().
*/
HeapTuple
-SearchSysCacheTupleCopy(int cacheId,/* cache selection code */
- Datum key1,
- Datum key2,
- Datum key3,
- Datum key4)
+SearchSysCacheTupleCopy(int cacheId, /* cache selection code */
+ Datum key1,
+ Datum key2,
+ Datum key3,
+ Datum key4)
{
HeapTuple cachetup;
@@ -457,9 +458,9 @@ SearchSysCacheTupleCopy(int cacheId,/* cache selection code */
if (PointerIsValid(cachetup))
return heap_copytuple(cachetup);
else
- return cachetup; /* NULL */
+ return cachetup; /* NULL */
}
-
+
/*
* SearchSysCacheTuple--
@@ -588,7 +589,7 @@ SearchSysCacheGetAttribute(int cacheId,
elog(DEBUG,
"SearchSysCacheGetAttribute: Lookup in %s(%d) failed",
cacheName, cacheId);
-#endif /* defined(CACHEDEBUG) */
+#endif /* defined(CACHEDEBUG) */
return NULL;
}
@@ -623,6 +624,7 @@ SearchSysCacheGetAttribute(int cacheId,
if (isNull)
{
+
/*
* Used to be an elog(DEBUG, ...) here and a claim that it should
* be a FATAL error, I don't think either is warranted -mer 6/9/92
@@ -681,7 +683,7 @@ TypeDefaultRetrieve(Oid typId)
#ifdef CACHEDEBUG
elog(DEBUG, "TypeDefaultRetrieve: Lookup in %s(%d) failed",
cacheinfo[TYPOID].name, TYPOID);
-#endif /* defined(CACHEDEBUG) */
+#endif /* defined(CACHEDEBUG) */
return NULL;
}
@@ -700,7 +702,7 @@ TypeDefaultRetrieve(Oid typId)
#ifdef CACHEDEBUG
elog(DEBUG, "TypeDefaultRetrieve: No extractable typdefault in %s(%d)",
cacheinfo[TYPOID].name, TYPOID);
-#endif /* defined(CACHEDEBUG) */
+#endif /* defined(CACHEDEBUG) */
return NULL;
}
diff --git a/src/backend/utils/error/assert.c b/src/backend/utils/error/assert.c
index b923028b5fa..5f3312d9eaf 100644
--- a/src/backend/utils/error/assert.c
+++ b/src/backend/utils/error/assert.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/error/assert.c,v 1.11 1998/09/01 03:26:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/assert.c,v 1.12 1998/09/01 04:33:05 momjian Exp $
*
* NOTE
* This should eventually work with elog(), dlog(), etc.
@@ -50,7 +50,7 @@ ExceptionalCondition(char *conditionName,
else
{
EPRINTF("TRAP: %s(\"%s:%s\", File: \"%s\", Line: %d)\n",
- exceptionP->message, conditionName,
+ exceptionP->message, conditionName,
(detail == NULL ? "" : detail),
fileName, lineNumber);
}
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 79ae7e81379..09f4627daf8 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.34 1998/09/01 03:26:37 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.35 1998/09/01 04:33:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,7 +17,7 @@
#include <fcntl.h>
#ifndef O_RDONLY
#include <sys/file.h>
-#endif /* O_RDONLY */
+#endif /* O_RDONLY */
#include <sys/types.h>
#include <stdarg.h>
#include <errno.h>
@@ -38,12 +38,12 @@
/*
* Global option to control the use of syslog(3) for logging:
*
- * 0 stdout/stderr only
- * 1 stdout/stderr + syslog
- * 2 syslog only
+ * 0 stdout/stderr only
+ * 1 stdout/stderr + syslog
+ * 2 syslog only
*/
#define UseSyslog pg_options[OPT_SYSLOG]
-#define PG_LOG_FACILITY LOG_LOCAL0
+#define PG_LOG_FACILITY LOG_LOCAL0
#else
#define UseSyslog 0
#endif
@@ -69,10 +69,12 @@ elog(int lev, const char *fmt,...)
#ifndef PG_STANDALONE
extern FILE *Pfout;
+
#endif
#ifdef USE_SYSLOG
int log_level;
+
#endif
int len;
@@ -135,25 +137,26 @@ elog(int lev, const char *fmt,...)
va_end(ap);
#ifdef USE_SYSLOG
- switch (lev) {
- case NOIND:
- log_level = LOG_DEBUG;
- break;
- case DEBUG:
- log_level = LOG_DEBUG;
- break;
- case NOTICE:
- log_level = LOG_NOTICE;
- break;
- case ERROR:
- log_level = LOG_WARNING;
- break;
- case FATAL:
- default:
- log_level = LOG_ERR;
- break;
+ switch (lev)
+ {
+ case NOIND:
+ log_level = LOG_DEBUG;
+ break;
+ case DEBUG:
+ log_level = LOG_DEBUG;
+ break;
+ case NOTICE:
+ log_level = LOG_NOTICE;
+ break;
+ case ERROR:
+ log_level = LOG_WARNING;
+ break;
+ case FATAL:
+ default:
+ log_level = LOG_ERR;
+ break;
}
- write_syslog(log_level, line+TIMESTAMP_SIZE);
+ write_syslog(log_level, line + TIMESTAMP_SIZE);
#endif
len = strlen(strcat(line, "\n"));
@@ -195,7 +198,7 @@ elog(int lev, const char *fmt,...)
else
pq_putnchar("E", 1);
/* pq_putint(-101, 4); *//* should be query id */
- pq_putstr(line+TIMESTAMP_SIZE); /* don't show timestamps */
+ pq_putstr(line + TIMESTAMP_SIZE); /* don't show timestamps */
pq_flush();
}
if (Pfout == NULL)
@@ -207,16 +210,16 @@ elog(int lev, const char *fmt,...)
*/
fputs(line, stderr);
}
-#endif /* !PG_STANDALONE */
+#endif /* !PG_STANDALONE */
if (lev == ERROR)
{
- extern bool InError;
+ extern bool InError;
ProcReleaseSpins(NULL); /* get rid of spinlocks we hold */
if (!InError)
{
- kill(MyProcPid, SIGQUIT); /* abort to traffic cop */
+ kill(MyProcPid, SIGQUIT); /* abort to traffic cop */
pause();
}
diff --git a/src/backend/utils/error/exc.c b/src/backend/utils/error/exc.c
index 3061edcc317..5fc7b2188ae 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.22 1998/09/01 03:26:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/Attic/exc.c,v 1.23 1998/09/01 04:33:08 momjian Exp $
*
* NOTE
* XXX this code needs improvement--check for state violations and
@@ -24,11 +24,9 @@
#include "utils/exc.h"
#include "storage/ipc.h"
-static void
-ExcUnCaught(Exception *excP, ExcDetail detail, ExcData data,
+static void ExcUnCaught(Exception *excP, ExcDetail detail, ExcData data,
ExcMessage message);
-static void
-ExcPrint(Exception *excP, ExcDetail detail, ExcData data,
+static void ExcPrint(Exception *excP, ExcDetail detail, ExcData data,
ExcMessage message);
/*
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 27c2bd213d1..01033503394 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.19 1998/09/01 03:26:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.20 1998/09/01 04:33:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -172,7 +172,7 @@ fmgr_info(Oid procedureId, FmgrInfo *finfo)
if (!(fcp = fmgr_isbuiltin(procedureId)))
{
procedureTuple = SearchSysCacheTuple(PROOID,
- ObjectIdGetDatum(procedureId),
+ ObjectIdGetDatum(procedureId),
0, 0, 0);
if (!HeapTupleIsValid(procedureTuple))
{
diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c
index 42de36b39b1..ecf87b08f5e 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.15 1998/09/01 03:26:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/hash/dynahash.c,v 1.16 1998/09/01 04:33:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -47,7 +47,7 @@
#include "utils/hsearch.h"
#ifndef FRONTEND
#include "utils/mcxt.h"
-#endif /* !FRONTEND */
+#endif /* !FRONTEND */
#include "utils/palloc.h"
/*
@@ -115,7 +115,7 @@ DynaHashFree(Pointer ptr)
#define MEM_ALLOC palloc
#define MEM_FREE pfree
-#endif /* FRONTEND */
+#endif /* FRONTEND */
/* ----------------
* Internal routines
diff --git a/src/backend/utils/init/findbe.c b/src/backend/utils/init/findbe.c
index 115c21e2f7d..eadb0b76595 100644
--- a/src/backend/utils/init/findbe.c
+++ b/src/backend/utils/init/findbe.c
@@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.11 1998/09/01 03:26:51 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.12 1998/09/01 04:33:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -160,8 +160,8 @@ FindExec(char *full_path, char *argv0, char *binary_name)
int pathlen;
/*
- * for the postmaster: First try: use the binary that's located in
- * the same directory as the postmaster, if it was invoked with an
+ * for the postmaster: First try: use the binary that's located in the
+ * same directory as the postmaster, if it was invoked with an
* explicit path. Presumably the user used an explicit path because it
* wasn't in PATH, and we don't want to use incompatible executables.
*
@@ -170,9 +170,9 @@ FindExec(char *full_path, char *argv0, char *binary_name)
* trees (obj/post{master,gres}) because they all put the two binaries
* in the same place.
*
- * for the binary: First try: if we're given some kind of path,
- * use it (making sure that a relative path is made absolute before
- * returning it).
+ * for the binary: First try: if we're given some kind of path, use it
+ * (making sure that a relative path is made absolute before returning
+ * it).
*/
if (argv0 && (p = strrchr(argv0, '/')) && *++p)
{
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index 59106555157..3f6075edf20 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.21 1998/09/01 03:26:53 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.22 1998/09/01 04:33:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -241,9 +241,10 @@ SetDatabaseName(char *name)
const char *
getdatabaseencoding()
{
- elog(ERROR, "you need to enable MB to use this function");
- return("");
+ elog(ERROR, "you need to enable MB to use this function");
+ return ("");
}
+
#endif
#ifdef CYR_RECODE
@@ -433,7 +434,7 @@ SetPgUserName()
free(UserName);
UserName = malloc(strlen(p) + 1);
strcpy(UserName, p);
-#endif /* NO_SECURITY */
+#endif /* NO_SECURITY */
}
/* ----------------------------------------------------------------
@@ -469,8 +470,8 @@ SetUserId()
userName = GetPgUserName();
userTup = SearchSysCacheTuple(USENAME,
- PointerGetDatum(userName),
- 0, 0, 0);
+ PointerGetDatum(userName),
+ 0, 0, 0);
if (!HeapTupleIsValid(userTup))
elog(FATAL, "SetUserId: user \"%s\" is not in \"%s\"",
userName,
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index 790684cda13..12bbcf3034a 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.34 1998/08/24 01:13:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.35 1998/09/01 04:33:17 momjian Exp $
*
* NOTES
* InitPostgres() is the function called from PostgresMain
@@ -121,7 +121,7 @@ InitMyDatabaseInfo(char *name)
int4 owner;
char *path,
myPath[MAXPGPATH + 1];
- int encoding;
+ int encoding;
SetDatabaseName(name);
GetRawDatabaseInfo(name, &owner, &MyDatabaseId, myPath, &encoding);
@@ -201,8 +201,8 @@ VerifySystemDatabase()
static void
VerifyMyDatabase()
{
- const char *name;
- const char *myPath;
+ const char *name;
+ const char *myPath;
/* Failure reason returned by some function. NULL if no failure */
char *reason;
@@ -384,7 +384,7 @@ forcesharedmemory:
#endif
- if (!IsUnderPostmaster) /* postmaster already did this */
+ if (!IsUnderPostmaster) /* postmaster already did this */
{
PostgresIpcKey = key;
AttachSharedMemoryAndSemaphores(key);
@@ -509,6 +509,8 @@ InitPostgres(char *name) /* database name */
/*
* ********************************
*
+ *
+ *
* code after this point assumes we are in the proper directory!
*
* So, how do we implement alternate locations for databases? There are
diff --git a/src/backend/utils/mb/common.c b/src/backend/utils/mb/common.c
index c4e796e79ee..dc71122ed38 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.1 1998/07/24 03:31:56 scrappy Exp $ */
+ * $Id: common.c,v 1.2 1998/09/01 04:33:19 momjian Exp $ */
#include <stdio.h>
#include <string.h>
@@ -14,54 +14,61 @@
* case is ignored.
* if there's no valid encoding, returns -1
*/
-int pg_char_to_encoding(const char *s)
+int
+pg_char_to_encoding(const char *s)
{
- pg_encoding_conv_tbl *p = pg_conv_tbl;
+ pg_encoding_conv_tbl *p = pg_conv_tbl;
- for(;p->encoding >= 0;p++) {
- if (!strcasecmp(s, p->name)) {
- break;
- }
- }
- return(p->encoding);
+ for (; p->encoding >= 0; p++)
+ {
+ if (!strcasecmp(s, p->name))
+ break;
+ }
+ return (p->encoding);
}
/*
* check to see if encoding name is valid
*/
-int pg_valid_client_encoding(const char *name)
+int
+pg_valid_client_encoding(const char *name)
{
- return(pg_char_to_encoding(name));
+ return (pg_char_to_encoding(name));
}
/*
* find encoding table entry by encoding
*/
-pg_encoding_conv_tbl *pg_get_encent_by_encoding(int encoding)
+pg_encoding_conv_tbl *
+pg_get_encent_by_encoding(int encoding)
{
- pg_encoding_conv_tbl *p = pg_conv_tbl;
- for(;p->encoding >= 0;p++) {
- if (p->encoding == encoding) {
- return(p);
- }
- }
- return(0);
+ pg_encoding_conv_tbl *p = pg_conv_tbl;
+
+ for (; p->encoding >= 0; p++)
+ {
+ if (p->encoding == encoding)
+ return (p);
+ }
+ return (0);
}
/*
* convert encoding symbol to encoding char.
* if there's no valid encoding symbol, returns ""
*/
-const char *pg_encoding_to_char(int encoding)
+const char *
+pg_encoding_to_char(int encoding)
{
- pg_encoding_conv_tbl *p = pg_get_encent_by_encoding(encoding);
+ pg_encoding_conv_tbl *p = pg_get_encent_by_encoding(encoding);
- if (!p) return("");
- return(p->name);
+ if (!p)
+ return ("");
+ return (p->name);
}
/* returns the byte length of a multi-byte word for an encoding */
-int pg_encoding_mblen(int encoding, const unsigned char *mbstr)
+int
+pg_encoding_mblen(int encoding, const unsigned char *mbstr)
{
- return((*pg_wchar_table[encoding].mblen)(mbstr));
+ return ((*pg_wchar_table[encoding].mblen) (mbstr));
}
diff --git a/src/backend/utils/mb/conv.c b/src/backend/utils/mb/conv.c
index 01c92e3b9af..ee9649f32d9 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.2 1998/08/24 01:13:59 momjian Exp $
+ * $Id: conv.c,v 1.3 1998/09/01 04:33:21 momjian Exp $
*/
#include <stdio.h>
#include <string.h>
@@ -13,405 +13,505 @@
* convert bogus chars that cannot be represented in the current encoding
* system.
*/
-static void printBogusChar(unsigned char **mic, unsigned char **p)
+static void
+printBogusChar(unsigned char **mic, unsigned char **p)
{
- char strbuf[16];
- int l = pg_mic_mblen(*mic);
-
- *(*p)++ = '(';
- while (l--) {
- sprintf(strbuf,"%02x",*(*mic)++);
- *(*p)++ = strbuf[0];
- *(*p)++ = strbuf[1];
- }
- *(*p)++ = ')';
+ char strbuf[16];
+ int l = pg_mic_mblen(*mic);
+
+ *(*p)++ = '(';
+ while (l--)
+ {
+ sprintf(strbuf, "%02x", *(*mic)++);
+ *(*p)++ = strbuf[0];
+ *(*p)++ = strbuf[1];
+ }
+ *(*p)++ = ')';
}
/*
* SJIS ---> MIC
*/
-static void sjis2mic(unsigned char *sjis, unsigned char *p, int len)
+static void
+sjis2mic(unsigned char *sjis, unsigned char *p, int len)
{
- int c1,c2;
-
- while (len > 0 && (c1 = *sjis++)) {
- if (c1 >= 0xa1 && c1 <= 0xdf) { /* 1 byte kana? */
- len--;
- *p++ = LC_JISX0201K;
- *p++ = c1;
- } else if (c1 > 0x7f) { /* kanji? */
- c2 = *sjis++;
- len -= 2;
- *p++ = LC_JISX0208;
- *p++ = ((c1 & 0x3f)<<1) + 0x9f + (c2 > 0x9e);
- *p++ = c2 + ((c2 > 0x9e)? 2 : 0x60) + (c2 < 0x80);
- } else { /* should be ASCII */
- len--;
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1,
+ c2;
+
+ while (len > 0 && (c1 = *sjis++))
+ {
+ if (c1 >= 0xa1 && c1 <= 0xdf)
+ { /* 1 byte kana? */
+ len--;
+ *p++ = LC_JISX0201K;
+ *p++ = c1;
+ }
+ else if (c1 > 0x7f)
+ { /* kanji? */
+ c2 = *sjis++;
+ len -= 2;
+ *p++ = LC_JISX0208;
+ *p++ = ((c1 & 0x3f) << 1) + 0x9f + (c2 > 0x9e);
+ *p++ = c2 + ((c2 > 0x9e) ? 2 : 0x60) + (c2 < 0x80);
+ }
+ else
+ { /* should be ASCII */
+ len--;
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* MIC ---> SJIS
*/
-static void mic2sjis(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2sjis(unsigned char *mic, unsigned char *p, int len)
{
- int c1,c2;
-
- while (len > 0 && (c1 = *mic)) {
- len -= pg_mic_mblen(mic++);
-
- if (c1 == LC_JISX0201K) {
- *p++ = *mic++;
- } else if (c1 == LC_JISX0208) {
- c1 = *mic++;
- c2 = *mic++;
- *p++ = ((c1 - 0xa1)>>1) + ((c1 < 0xdf)? 0x81 : 0xc1);
- *p++ = c2 - ((c1 & 1)? ((c2 < 0xe0)? 0x61 : 0x60) : 2);
- } else if (c1 > 0x7f) { /* cannot convert to SJIS! */
- mic--;
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1,
+ c2;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ len -= pg_mic_mblen(mic++);
+
+ if (c1 == LC_JISX0201K)
+ *p++ = *mic++;
+ else if (c1 == LC_JISX0208)
+ {
+ c1 = *mic++;
+ c2 = *mic++;
+ *p++ = ((c1 - 0xa1) >> 1) + ((c1 < 0xdf) ? 0x81 : 0xc1);
+ *p++ = c2 - ((c1 & 1) ? ((c2 < 0xe0) ? 0x61 : 0x60) : 2);
+ }
+ else if (c1 > 0x7f)
+ { /* cannot convert to SJIS! */
+ mic--;
+ printBogusChar(&mic, &p);
+ }
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* EUC_JP ---> MIC
*/
-static void euc_jp2mic(unsigned char *euc, unsigned char *p, int len)
+static void
+euc_jp2mic(unsigned char *euc, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *euc++)) {
- if (c1 == SS2) { /* 1 byte kana? */
- len -= 2;
- *p++ = LC_JISX0201K;
- *p++ = *euc++;
- } else if (c1 == SS3) { /* JIS X0212 kanji? */
- len -= 3;
- *p++ = LC_JISX0212;
- *p++ = *euc++;
- *p++ = *euc++;
- } else if (c1 & 0x80) { /* kanji? */
- len -= 2;
- *p++ = LC_JISX0208;
- *p++ = c1;
- *p++ = *euc++;
- } else { /* should be ASCII */
- len--;
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *euc++))
+ {
+ if (c1 == SS2)
+ { /* 1 byte kana? */
+ len -= 2;
+ *p++ = LC_JISX0201K;
+ *p++ = *euc++;
+ }
+ else if (c1 == SS3)
+ { /* JIS X0212 kanji? */
+ len -= 3;
+ *p++ = LC_JISX0212;
+ *p++ = *euc++;
+ *p++ = *euc++;
+ }
+ else if (c1 & 0x80)
+ { /* kanji? */
+ len -= 2;
+ *p++ = LC_JISX0208;
+ *p++ = c1;
+ *p++ = *euc++;
+ }
+ else
+ { /* should be ASCII */
+ len--;
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* MIC ---> EUC_JP
*/
-static void mic2euc_jp(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2euc_jp(unsigned char *mic, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *mic)) {
- len -= pg_mic_mblen(mic++);
-
- if (c1 == LC_JISX0201K) {
- *p++ = SS2;
- *p++ = *mic++;
- } else if (c1 == LC_JISX0212) {
- *p++ = SS3;
- *p++ = *mic++;
- *p++ = *mic++;
- } else if (c1 == LC_JISX0208) {
- *p++ = *mic++;
- *p++ = *mic++;
- } else if (c1 > 0x7f) { /* cannot convert to EUC_JP! */
- mic--;
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ len -= pg_mic_mblen(mic++);
+
+ if (c1 == LC_JISX0201K)
+ {
+ *p++ = SS2;
+ *p++ = *mic++;
+ }
+ else if (c1 == LC_JISX0212)
+ {
+ *p++ = SS3;
+ *p++ = *mic++;
+ *p++ = *mic++;
+ }
+ else if (c1 == LC_JISX0208)
+ {
+ *p++ = *mic++;
+ *p++ = *mic++;
+ }
+ else if (c1 > 0x7f)
+ { /* cannot convert to EUC_JP! */
+ mic--;
+ printBogusChar(&mic, &p);
+ }
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* EUC_KR ---> MIC
*/
-static void euc_kr2mic(unsigned char *euc, unsigned char *p, int len)
+static void
+euc_kr2mic(unsigned char *euc, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *euc++)) {
- if (c1 & 0x80) {
- len -= 2;
- *p++ = LC_KS5601;
- *p++ = c1;
- *p++ = *euc++;
- } else { /* should be ASCII */
- len--;
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *euc++))
+ {
+ if (c1 & 0x80)
+ {
+ len -= 2;
+ *p++ = LC_KS5601;
+ *p++ = c1;
+ *p++ = *euc++;
+ }
+ else
+ { /* should be ASCII */
+ len--;
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* MIC ---> EUC_KR
*/
-static void mic2euc_kr(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2euc_kr(unsigned char *mic, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *mic)) {
- len -= pg_mic_mblen(mic++);
-
- if (c1 == LC_KS5601) {
- *p++ = *mic++;
- *p++ = *mic++;
- } else if (c1 > 0x7f) { /* cannot convert to EUC_KR! */
- mic--;
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ len -= pg_mic_mblen(mic++);
+
+ if (c1 == LC_KS5601)
+ {
+ *p++ = *mic++;
+ *p++ = *mic++;
+ }
+ else if (c1 > 0x7f)
+ { /* cannot convert to EUC_KR! */
+ mic--;
+ printBogusChar(&mic, &p);
+ }
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* EUC_CN ---> MIC
*/
-static void euc_cn2mic(unsigned char *euc, unsigned char *p, int len)
+static void
+euc_cn2mic(unsigned char *euc, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *euc++)) {
- if (c1 & 0x80) {
- len -= 2;
- *p++ = LC_GB2312_80;
- *p++ = c1;
- *p++ = *euc++;
- } else { /* should be ASCII */
- len--;
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *euc++))
+ {
+ if (c1 & 0x80)
+ {
+ len -= 2;
+ *p++ = LC_GB2312_80;
+ *p++ = c1;
+ *p++ = *euc++;
+ }
+ else
+ { /* should be ASCII */
+ len--;
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* MIC ---> EUC_CN
*/
-static void mic2euc_cn(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2euc_cn(unsigned char *mic, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *mic)) {
- len -= pg_mic_mblen(mic++);
-
- if (c1 == LC_GB2312_80) {
- *p++ = *mic++;
- *p++ = *mic++;
- } else if (c1 > 0x7f) { /* cannot convert to EUC_CN! */
- mic--;
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ len -= pg_mic_mblen(mic++);
+
+ if (c1 == LC_GB2312_80)
+ {
+ *p++ = *mic++;
+ *p++ = *mic++;
+ }
+ else if (c1 > 0x7f)
+ { /* cannot convert to EUC_CN! */
+ mic--;
+ printBogusChar(&mic, &p);
+ }
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* EUC_TW ---> MIC
*/
-static void euc_tw2mic(unsigned char *euc, unsigned char *p, int len)
+static void
+euc_tw2mic(unsigned char *euc, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *euc++)) {
- if (c1 == SS2) {
- len -= 4;
- c1 = *euc++; /* plane No. */
- if (c1 == 0xa1) {
- *p++ = LC_CNS11643_1;
- } else if (c1 == 0xa2) {
- *p++ = LC_CNS11643_2;
- } else {
- *p++ = 0x9d; /* LCPRV2 */
- *p++ = 0xa3 - c1 + LC_CNS11643_3;
- }
- *p++ = *euc++;
- *p++ = *euc++;
- } else if (c1 & 0x80) { /* CNS11643-1 */
- len -= 2;
- *p++ = LC_CNS11643_1;
- *p++ = c1;
- *p++ = *euc++;
- } else { /* should be ASCII */
- len --;
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *euc++))
+ {
+ if (c1 == SS2)
+ {
+ len -= 4;
+ c1 = *euc++; /* plane No. */
+ if (c1 == 0xa1)
+ *p++ = LC_CNS11643_1;
+ else if (c1 == 0xa2)
+ *p++ = LC_CNS11643_2;
+ else
+ {
+ *p++ = 0x9d; /* LCPRV2 */
+ *p++ = 0xa3 - c1 + LC_CNS11643_3;
+ }
+ *p++ = *euc++;
+ *p++ = *euc++;
+ }
+ else if (c1 & 0x80)
+ { /* CNS11643-1 */
+ len -= 2;
+ *p++ = LC_CNS11643_1;
+ *p++ = c1;
+ *p++ = *euc++;
+ }
+ else
+ { /* should be ASCII */
+ len--;
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* MIC ---> EUC_TW
*/
-static void mic2euc_tw(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2euc_tw(unsigned char *mic, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *mic)) {
- len -= pg_mic_mblen(mic++);
-
- if (c1 == LC_CNS11643_1 || c1 == LC_CNS11643_2) {
- *p++ = *mic++;
- *p++ = *mic++;
- } else if (c1 == 0x9d) { /* LCPRV2? */
- *p++ = SS2;
- *p++ = c1 - LC_CNS11643_3 + 0xa3;
- *p++ = *mic++;
- *p++ = *mic++;
- } else if (c1 > 0x7f) { /* cannot convert to EUC_TW! */
- mic--;
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ len -= pg_mic_mblen(mic++);
+
+ if (c1 == LC_CNS11643_1 || c1 == LC_CNS11643_2)
+ {
+ *p++ = *mic++;
+ *p++ = *mic++;
+ }
+ else if (c1 == 0x9d)
+ { /* LCPRV2? */
+ *p++ = SS2;
+ *p++ = c1 - LC_CNS11643_3 + 0xa3;
+ *p++ = *mic++;
+ *p++ = *mic++;
+ }
+ else if (c1 > 0x7f)
+ { /* cannot convert to EUC_TW! */
+ mic--;
+ printBogusChar(&mic, &p);
+ }
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
/*
* LATINn ---> MIC
*/
-static void latin2mic(unsigned char *l, unsigned char *p, int len, int lc)
+static void
+latin2mic(unsigned char *l, unsigned char *p, int len, int lc)
{
- int c1;
-
- while (len-- > 0 && (c1 = *l++)) {
- if (c1 > 0x7f) { /* Latin1? */
- *p++ = lc;
- }
- *p++ = c1;
- }
- *p = '\0';
+ int c1;
+
+ while (len-- > 0 && (c1 = *l++))
+ {
+ if (c1 > 0x7f)
+ { /* Latin1? */
+ *p++ = lc;
+ }
+ *p++ = c1;
+ }
+ *p = '\0';
}
/*
* MIC ---> LATINn
*/
-static void mic2latin(unsigned char *mic, unsigned char *p, int len, int lc)
+static void
+mic2latin(unsigned char *mic, unsigned char *p, int len, int lc)
{
- int c1;
-
- while (len > 0 && (c1 = *mic)) {
- len -= pg_mic_mblen(mic++);
-
- if (c1 == lc) {
- *p++ = *mic++;
- } else if (c1 > 0x7f) {
- mic--;
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ len -= pg_mic_mblen(mic++);
+
+ if (c1 == lc)
+ *p++ = *mic++;
+ else if (c1 > 0x7f)
+ {
+ mic--;
+ printBogusChar(&mic, &p);
+ }
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
-static void latin12mic(unsigned char *l, unsigned char *p, int len)
+static void
+latin12mic(unsigned char *l, unsigned char *p, int len)
{
- latin2mic(l, p, len, LC_ISO8859_1);
+ latin2mic(l, p, len, LC_ISO8859_1);
}
-static void mic2latin1(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2latin1(unsigned char *mic, unsigned char *p, int len)
{
- mic2latin(mic, p, len, LC_ISO8859_1);
+ mic2latin(mic, p, len, LC_ISO8859_1);
}
-static void latin22mic(unsigned char *l, unsigned char *p, int len)
+static void
+latin22mic(unsigned char *l, unsigned char *p, int len)
{
- latin2mic(l, p, len, LC_ISO8859_2);
+ latin2mic(l, p, len, LC_ISO8859_2);
}
-static void mic2latin2(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2latin2(unsigned char *mic, unsigned char *p, int len)
{
- mic2latin(mic, p, len, LC_ISO8859_2);
+ mic2latin(mic, p, len, LC_ISO8859_2);
}
-static void latin32mic(unsigned char *l, unsigned char *p, int len)
+static void
+latin32mic(unsigned char *l, unsigned char *p, int len)
{
- latin2mic(l, p, len, LC_ISO8859_3);
+ latin2mic(l, p, len, LC_ISO8859_3);
}
-static void mic2latin3(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2latin3(unsigned char *mic, unsigned char *p, int len)
{
- mic2latin(mic, p, len, LC_ISO8859_3);
+ mic2latin(mic, p, len, LC_ISO8859_3);
}
-static void latin42mic(unsigned char *l, unsigned char *p, int len)
+static void
+latin42mic(unsigned char *l, unsigned char *p, int len)
{
- latin2mic(l, p, len, LC_ISO8859_4);
+ latin2mic(l, p, len, LC_ISO8859_4);
}
-static void mic2latin4(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2latin4(unsigned char *mic, unsigned char *p, int len)
{
- mic2latin(mic, p, len, LC_ISO8859_4);
+ mic2latin(mic, p, len, LC_ISO8859_4);
}
-static void latin52mic(unsigned char *l, unsigned char *p, int len)
+static void
+latin52mic(unsigned char *l, unsigned char *p, int len)
{
- latin2mic(l, p, len, LC_ISO8859_5);
+ latin2mic(l, p, len, LC_ISO8859_5);
}
-static void mic2latin5(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2latin5(unsigned char *mic, unsigned char *p, int len)
{
- mic2latin(mic, p, len, LC_ISO8859_5);
+ mic2latin(mic, p, len, LC_ISO8859_5);
}
/*
* ASCII ---> MIC
*/
-static void ascii2mic(unsigned char *l, unsigned char *p, int len)
+static void
+ascii2mic(unsigned char *l, unsigned char *p, int len)
{
- int c1;
+ int c1;
- while (len-- > 0 && (c1 = *l++)) {
- *p++ = (c1 & 0x7f);
- }
- *p = '\0';
+ while (len-- > 0 && (c1 = *l++))
+ *p++ = (c1 & 0x7f);
+ *p = '\0';
}
/*
* MIC ---> ASCII
*/
-static void mic2ascii(unsigned char *mic, unsigned char *p, int len)
+static void
+mic2ascii(unsigned char *mic, unsigned char *p, int len)
{
- int c1;
-
- while (len > 0 && (c1 = *mic)) {
- if (c1 > 0x7f) {
- printBogusChar(&mic, &p);
- } else { /* should be ASCII */
- *p++ = c1;
- }
- }
- *p = '\0';
+ int c1;
+
+ while (len > 0 && (c1 = *mic))
+ {
+ if (c1 > 0x7f)
+ printBogusChar(&mic, &p);
+ else
+ { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
}
pg_encoding_conv_tbl pg_conv_tbl[] = {
- {SQL_ASCII, "SQL_ASCII", 0, ascii2mic, mic2ascii}, /* SQL/ACII */
- {EUC_JP, "EUC_JP", 0, euc_jp2mic, mic2euc_jp}, /* EUC_JP */
- {EUC_CN, "EUC_CN", 0, euc_cn2mic, mic2euc_cn}, /* EUC_CN */
- {EUC_KR, "EUC_KR", 0, euc_kr2mic, mic2euc_kr}, /* EUC_KR */
- {EUC_TW, "EUC_TW", 0, euc_tw2mic, mic2euc_tw}, /* EUC_TW */
- {UNICODE, "UNICODE", 0, 0, 0}, /* UNICODE */
- {MULE_INTERNAL, "MULE_INTERNAL", 0, 0, 0}, /* MULE_INTERNAL */
- {LATIN1, "LATIN1", 0, latin12mic, mic2latin1}, /* ISO 8859 Latin 1 */
- {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, latin52mic, mic2latin5}, /* ISO 8859 Latin 5 */
- {SJIS, "SJIS", 1, sjis2mic, mic2sjis}, /* SJIS */
- {-1, "", 0, 0, 0} /* end mark */
+ {SQL_ASCII, "SQL_ASCII", 0, ascii2mic, mic2ascii}, /* SQL/ACII */
+ {EUC_JP, "EUC_JP", 0, euc_jp2mic, mic2euc_jp}, /* EUC_JP */
+ {EUC_CN, "EUC_CN", 0, euc_cn2mic, mic2euc_cn}, /* EUC_CN */
+ {EUC_KR, "EUC_KR", 0, euc_kr2mic, mic2euc_kr}, /* EUC_KR */
+ {EUC_TW, "EUC_TW", 0, euc_tw2mic, mic2euc_tw}, /* EUC_TW */
+ {UNICODE, "UNICODE", 0, 0, 0}, /* UNICODE */
+ {MULE_INTERNAL, "MULE_INTERNAL", 0, 0, 0}, /* MULE_INTERNAL */
+ {LATIN1, "LATIN1", 0, latin12mic, mic2latin1}, /* ISO 8859 Latin 1 */
+ {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, latin52mic, mic2latin5}, /* ISO 8859 Latin 5 */
+ {SJIS, "SJIS", 1, sjis2mic, mic2sjis}, /* SJIS */
+ {-1, "", 0, 0, 0} /* end mark */
};
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index 3a473704dc9..2e0a446de20 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -3,7 +3,7 @@
* client encoding and server internal encoding.
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: mbutils.c,v 1.2 1998/07/26 04:31:04 scrappy Exp $ */
+ * $Id: mbutils.c,v 1.3 1998/09/01 04:33:22 momjian Exp $ */
#include <stdio.h>
#include <string.h>
@@ -11,77 +11,85 @@
#include "mb/pg_wchar.h"
static 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 */
-static void (*server_from_mic)(); /* MIC to something */
+static void (*client_to_mic) ();/* something to MIC */
+static void (*client_from_mic) (); /* MIC to something */
+static void (*server_to_mic) ();/* something to MIC */
+static void (*server_from_mic) (); /* MIC to something */
/*
* find encoding table entry by encoding
*/
-static pg_encoding_conv_tbl *get_enc_ent(int encoding)
+static pg_encoding_conv_tbl *
+get_enc_ent(int encoding)
{
- pg_encoding_conv_tbl *p = pg_conv_tbl;
- for(;p->encoding >= 0;p++) {
- if (p->encoding == encoding) {
- return(p);
- }
- }
- return(0);
+ pg_encoding_conv_tbl *p = pg_conv_tbl;
+
+ for (; p->encoding >= 0; p++)
+ {
+ if (p->encoding == encoding)
+ return (p);
+ }
+ return (0);
}
/*
* set the client encoding. if client/server encoding is
* not supported, returns -1
*/
-int pg_set_client_encoding(int encoding)
+int
+pg_set_client_encoding(int encoding)
{
- int current_server_encoding = GetDatabaseEncoding();
-
- client_encoding = encoding;
-
- if (client_encoding == current_server_encoding) { /* server == client? */
- client_to_mic = client_from_mic = 0;
- server_to_mic = server_from_mic = 0;
- } else if (current_server_encoding == MULE_INTERNAL) { /* server == MULE_INETRNAL? */
- client_to_mic = get_enc_ent(encoding)->to_mic;
- client_from_mic = get_enc_ent(encoding)->from_mic;
- server_to_mic = server_from_mic = 0;
- if (client_to_mic == 0 || client_from_mic == 0) {
- return(-1);
- }
- } else if (encoding == MULE_INTERNAL) { /* client == MULE_INETRNAL? */
- client_to_mic = client_from_mic = 0;
- server_to_mic = get_enc_ent(current_server_encoding)->to_mic;
- server_from_mic = get_enc_ent(current_server_encoding)->from_mic;
- if (server_to_mic == 0 || server_from_mic == 0) {
- return(-1);
- }
- } else {
- client_to_mic = get_enc_ent(encoding)->to_mic;
- client_from_mic = get_enc_ent(encoding)->from_mic;
- server_to_mic = get_enc_ent(current_server_encoding)->to_mic;
- server_from_mic = get_enc_ent(current_server_encoding)->from_mic;
- if (client_to_mic == 0 || client_from_mic == 0) {
- return(-1);
- }
- if (server_to_mic == 0 || server_from_mic == 0) {
- return(-1);
- }
- }
- return(0);
+ int current_server_encoding = GetDatabaseEncoding();
+
+ client_encoding = encoding;
+
+ if (client_encoding == current_server_encoding)
+ { /* server == client? */
+ client_to_mic = client_from_mic = 0;
+ server_to_mic = server_from_mic = 0;
+ }
+ else if (current_server_encoding == MULE_INTERNAL)
+ { /* server == MULE_INETRNAL? */
+ client_to_mic = get_enc_ent(encoding)->to_mic;
+ client_from_mic = get_enc_ent(encoding)->from_mic;
+ server_to_mic = server_from_mic = 0;
+ if (client_to_mic == 0 || client_from_mic == 0)
+ return (-1);
+ }
+ else if (encoding == MULE_INTERNAL)
+ { /* client == MULE_INETRNAL? */
+ client_to_mic = client_from_mic = 0;
+ server_to_mic = get_enc_ent(current_server_encoding)->to_mic;
+ server_from_mic = get_enc_ent(current_server_encoding)->from_mic;
+ if (server_to_mic == 0 || server_from_mic == 0)
+ return (-1);
+ }
+ else
+ {
+ client_to_mic = get_enc_ent(encoding)->to_mic;
+ client_from_mic = get_enc_ent(encoding)->from_mic;
+ server_to_mic = get_enc_ent(current_server_encoding)->to_mic;
+ server_from_mic = get_enc_ent(current_server_encoding)->from_mic;
+ if (client_to_mic == 0 || client_from_mic == 0)
+ return (-1);
+ if (server_to_mic == 0 || server_from_mic == 0)
+ return (-1);
+ }
+ return (0);
}
/*
* returns the current client encoding
*/
-int pg_get_client_encoding()
+int
+pg_get_client_encoding()
{
- if (client_encoding == -1) {
- /* this is the first time */
- client_encoding = GetDatabaseEncoding();
- }
- return(client_encoding);
+ if (client_encoding == -1)
+ {
+ /* this is the first time */
+ client_encoding = GetDatabaseEncoding();
+ }
+ return (client_encoding);
}
/*
@@ -89,25 +97,27 @@ int pg_get_client_encoding()
* client_encoding or no conversion function exists,
* returns s. So be careful.
*/
-unsigned char *pg_client_to_server(unsigned char *s, int len)
+unsigned char *
+pg_client_to_server(unsigned char *s, int len)
{
- static unsigned char b1[MAX_PARSE_BUFFER*4]; /* is this enough? */
- static unsigned char b2[MAX_PARSE_BUFFER*4]; /* is this enough? */
- unsigned char *p = s;
-
- if (client_encoding == GetDatabaseEncoding()) {
- return(p);
- }
- if (client_to_mic) {
- (*client_to_mic)(s, b1, len);
- len = strlen(b1);
- p = b1;
- }
- if (server_from_mic) {
- (*server_from_mic)(p, b2, len);
- p = b2;
- }
- return(p);
+ static unsigned char b1[MAX_PARSE_BUFFER * 4]; /* is this enough? */
+ static unsigned char b2[MAX_PARSE_BUFFER * 4]; /* is this enough? */
+ unsigned char *p = s;
+
+ if (client_encoding == GetDatabaseEncoding())
+ return (p);
+ if (client_to_mic)
+ {
+ (*client_to_mic) (s, b1, len);
+ len = strlen(b1);
+ p = b1;
+ }
+ if (server_from_mic)
+ {
+ (*server_from_mic) (p, b2, len);
+ p = b2;
+ }
+ return (p);
}
/*
@@ -115,102 +125,115 @@ unsigned char *pg_client_to_server(unsigned char *s, int len)
* client_encoding or no conversion function exists,
* returns s. So be careful.
*/
-unsigned char *pg_server_to_client(unsigned char *s, int len)
+unsigned char *
+pg_server_to_client(unsigned char *s, int len)
{
- static unsigned char b1[MAX_PARSE_BUFFER*4]; /* is this enough? */
- static unsigned char b2[MAX_PARSE_BUFFER*4]; /* is this enough? */
- unsigned char *p = s;
-
- if (client_encoding == GetDatabaseEncoding()) {
- return(p);
- }
- if (server_to_mic) {
- (*server_to_mic)(s, b1, len);
- len = strlen(b1);
- p = b1;
- }
- if (client_from_mic) {
- (*client_from_mic)(p, b2, len);
- p = b2;
- }
- return(p);
+ static unsigned char b1[MAX_PARSE_BUFFER * 4]; /* is this enough? */
+ static unsigned char b2[MAX_PARSE_BUFFER * 4]; /* is this enough? */
+ unsigned char *p = s;
+
+ if (client_encoding == GetDatabaseEncoding())
+ return (p);
+ if (server_to_mic)
+ {
+ (*server_to_mic) (s, b1, len);
+ len = strlen(b1);
+ p = b1;
+ }
+ if (client_from_mic)
+ {
+ (*client_from_mic) (p, b2, len);
+ p = b2;
+ }
+ return (p);
}
/* convert a multi-byte string to a wchar */
-void pg_mb2wchar(const unsigned char *from, pg_wchar *to)
+void
+pg_mb2wchar(const unsigned char *from, pg_wchar * to)
{
- (*pg_wchar_table[GetDatabaseEncoding()].mb2wchar_with_len)(from,to,strlen(from));
+ (*pg_wchar_table[GetDatabaseEncoding()].mb2wchar_with_len) (from, to, strlen(from));
}
/* convert a multi-byte string to a wchar with a limited length */
-void pg_mb2wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
+void
+pg_mb2wchar_with_len(const unsigned char *from, pg_wchar * to, int len)
{
- (*pg_wchar_table[GetDatabaseEncoding()].mb2wchar_with_len)(from,to,len);
+ (*pg_wchar_table[GetDatabaseEncoding()].mb2wchar_with_len) (from, to, len);
}
/* returns the byte length of a multi-byte word */
-int pg_mblen(const unsigned char *mbstr)
+int
+pg_mblen(const unsigned char *mbstr)
{
- return((*pg_wchar_table[GetDatabaseEncoding()].mblen)(mbstr));
+ return ((*pg_wchar_table[GetDatabaseEncoding()].mblen) (mbstr));
}
/* returns the length (counted as a wchar) of a multi-byte string */
-int pg_mbstrlen(const unsigned char *mbstr)
+int
+pg_mbstrlen(const unsigned char *mbstr)
{
- int len = 0;
- while (*mbstr) {
- mbstr += pg_mblen(mbstr);
- len++;
- }
- return(len);
+ int len = 0;
+
+ while (*mbstr)
+ {
+ mbstr += pg_mblen(mbstr);
+ len++;
+ }
+ return (len);
}
-/* returns the length (counted as a wchar) of a multi-byte string
+/* returns the length (counted as a wchar) of a multi-byte string
(not necessarily NULL terminated) */
-int pg_mbstrlen_with_len(const unsigned char *mbstr, int limit)
+int
+pg_mbstrlen_with_len(const unsigned char *mbstr, int limit)
{
- int len = 0;
- int l;
- while (*mbstr && limit > 0) {
- l = pg_mblen(mbstr);
- limit -= l;
- mbstr += l;
- len++;
- }
- return(len);
+ int len = 0;
+ int l;
+
+ while (*mbstr && limit > 0)
+ {
+ l = pg_mblen(mbstr);
+ limit -= l;
+ mbstr += l;
+ len++;
+ }
+ return (len);
}
/*
* fuctions for utils/init
*/
-static int DatabaseEncoding = MULTIBYTE;
+static int DatabaseEncoding = MULTIBYTE;
void
SetDatabaseEncoding(int encoding)
{
- DatabaseEncoding = encoding;
+ DatabaseEncoding = encoding;
}
int
GetDatabaseEncoding()
{
- return(DatabaseEncoding);
+ return (DatabaseEncoding);
}
/* for builtin-function */
const char *
getdatabaseencoding()
{
- return(pg_encoding_to_char(DatabaseEncoding));
+ return (pg_encoding_to_char(DatabaseEncoding));
}
/* set and get template1 database encoding */
-static int templateEncoding;
-void SetTemplateEncoding(int encoding)
+static int templateEncoding;
+void
+SetTemplateEncoding(int encoding)
{
- templateEncoding = encoding;
+ templateEncoding = encoding;
}
-int GetTemplateEncoding()
+int
+GetTemplateEncoding()
{
- return(templateEncoding);
+ return (templateEncoding);
}
diff --git a/src/backend/utils/mb/utftest.c b/src/backend/utils/mb/utftest.c
index e49f8d77949..c83e54c8ec8 100644
--- a/src/backend/utils/mb/utftest.c
+++ b/src/backend/utils/mb/utftest.c
@@ -1,6 +1,6 @@
/*
* testing of utf2wchar()
- * $Id: utftest.c,v 1.1 1998/07/24 03:31:57 scrappy Exp $
+ * $Id: utftest.c,v 1.2 1998/09/01 04:33:23 momjian Exp $
*/
#include <regex/regex.h>
#include <regex/utils.h>
@@ -10,24 +10,28 @@
main()
{
- /* Example 1 from RFC2044 */
- char utf1[] = {0x41,0xe2,0x89,0xa2,0xce,0x91,0x2e,0};
- /* Example 2 from RFC2044 */
- char utf2[] = {0x48,0x69,0x20,0x4d,0x6f,0x6d,0x20,0xe2,0x98,0xba,0x21,0};
- /* Example 3 from RFC2044 */
- char utf3[] = {0xe6,0x97,0xa5,0xe6,0x9c,0xac,0xe8,0xaa,0x9e,0};
- char *utf[] = {utf1,utf2,utf3};
- pg_wchar ucs[128];
- pg_wchar *p;
- int i;
+ /* Example 1 from RFC2044 */
+ char utf1[] = {0x41, 0xe2, 0x89, 0xa2, 0xce, 0x91, 0x2e, 0};
- for (i=0;i<sizeof(utf)/sizeof(char *);i++) {
- pg_utf2wchar(utf[i],ucs);
- p = ucs;
- while(*p) {
- printf("%04x ",*p);
- p++;
- }
- printf("\n");
- }
+ /* Example 2 from RFC2044 */
+ char utf2[] = {0x48, 0x69, 0x20, 0x4d, 0x6f, 0x6d, 0x20, 0xe2, 0x98, 0xba, 0x21, 0};
+
+ /* Example 3 from RFC2044 */
+ char utf3[] = {0xe6, 0x97, 0xa5, 0xe6, 0x9c, 0xac, 0xe8, 0xaa, 0x9e, 0};
+ char *utf[] = {utf1, utf2, utf3};
+ pg_wchar ucs[128];
+ pg_wchar *p;
+ int i;
+
+ for (i = 0; i < sizeof(utf) / sizeof(char *); i++)
+ {
+ pg_utf2wchar(utf[i], ucs);
+ p = ucs;
+ while (*p)
+ {
+ printf("%04x ", *p);
+ p++;
+ }
+ printf("\n");
+ }
}
diff --git a/src/backend/utils/mb/variable.c b/src/backend/utils/mb/variable.c
index 12cc23d3f30..37b95ccf120 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.1 1998/07/24 03:31:57 scrappy Exp $
+ * $Id: variable.c,v 1.2 1998/09/01 04:33:24 momjian Exp $
*/
#include "mb/pg_wchar.h"
@@ -10,64 +10,66 @@
bool
parse_client_encoding(const char *value)
{
- int encoding;
+ int encoding;
- encoding = pg_valid_client_encoding(value);
- if (encoding < 0) {
- elog(ERROR, "Client encoding %s is not supported", value);
- } else {
- if (pg_set_client_encoding(encoding)) {
- elog(ERROR, "Conversion between %s and %s is not supported",
- value, pg_encoding_to_char(GetDatabaseEncoding()));
- }
- }
- return TRUE;
+ encoding = pg_valid_client_encoding(value);
+ if (encoding < 0)
+ elog(ERROR, "Client encoding %s is not supported", value);
+ else
+ {
+ if (pg_set_client_encoding(encoding))
+ {
+ elog(ERROR, "Conversion between %s and %s is not supported",
+ value, pg_encoding_to_char(GetDatabaseEncoding()));
+ }
+ }
+ return TRUE;
}
bool
show_client_encoding()
{
- elog(NOTICE, "Current client encoding is %s",
- pg_encoding_to_char(pg_get_client_encoding()));
- return TRUE;
+ elog(NOTICE, "Current client encoding is %s",
+ pg_encoding_to_char(pg_get_client_encoding()));
+ return TRUE;
}
bool
reset_client_encoding()
{
- int encoding;
- char *env = getenv("PGCLIENTENCODING");
+ int encoding;
+ char *env = getenv("PGCLIENTENCODING");
- if (env) {
- encoding = pg_char_to_encoding(env);
- if (encoding < 0) {
- encoding = GetDatabaseEncoding();
- }
- } else {
- encoding = GetDatabaseEncoding();
- }
- pg_set_client_encoding(encoding);
- return TRUE;
+ if (env)
+ {
+ encoding = pg_char_to_encoding(env);
+ if (encoding < 0)
+ encoding = GetDatabaseEncoding();
+ }
+ else
+ encoding = GetDatabaseEncoding();
+ pg_set_client_encoding(encoding);
+ return TRUE;
}
bool
parse_server_encoding(const char *value)
{
- elog(NOTICE, "SET SERVER_ENCODING is not supported");
- return TRUE;
+ elog(NOTICE, "SET SERVER_ENCODING is not supported");
+ return TRUE;
}
bool
show_server_encoding()
{
- elog(NOTICE, "Current server encoding is %s",
- pg_encoding_to_char(GetDatabaseEncoding()));
- return TRUE;
+ elog(NOTICE, "Current server encoding is %s",
+ pg_encoding_to_char(GetDatabaseEncoding()));
+ return TRUE;
}
bool
reset_server_encoding()
{
- elog(NOTICE, "RESET SERVER_ENCODING is not supported");
- return TRUE;
+ elog(NOTICE, "RESET SERVER_ENCODING is not supported");
+ return TRUE;
}
diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c
index 3cc2477061f..edd786f29f8 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.3 1998/08/25 04:19:16 momjian Exp $
+ * $Id: wchar.c,v 1.4 1998/09/01 04:33:26 momjian Exp $
*/
#include "mb/pg_wchar.h"
@@ -10,7 +10,7 @@
* conversion to pg_wchar is done by "table driven."
* to add an encoding support, define mb2wchar_with_len(), mblen()
* for the particular encoding. Note that if the encoding is only
- * supported in the client, you don't need to define
+ * supported in the client, you don't need to define
* mb2wchar_with_len() function (SJIS is the case).
*/
@@ -18,18 +18,20 @@
* SQL/ASCII
*/
static void pg_ascii2wchar_with_len
-(const unsigned char *from, pg_wchar *to, int len)
+ (const unsigned char *from, pg_wchar * to, int len)
{
- while (*from && len > 0) {
- *to++ = *from++;
- len--;
- }
- *to = 0;
+ while (*from && len > 0)
+ {
+ *to++ = *from++;
+ len--;
+ }
+ *to = 0;
}
-static int pg_ascii_mblen(const unsigned char *s)
+static int
+pg_ascii_mblen(const unsigned char *s)
{
- return(1);
+ return (1);
}
/*
@@ -37,169 +39,195 @@ static int pg_ascii_mblen(const unsigned char *s)
*/
static void pg_euc2wchar_with_len
-(const unsigned char *from, pg_wchar *to, int len)
+ (const unsigned char *from, pg_wchar * to, int len)
{
- while (*from && len > 0) {
- if (*from == SS2) {
- from++;
- len--;
- *to = 0xff & *from++;
- len--;
- } else if (*from == SS3) {
- from++;
- *to = *from++ << 8;
- *to |= 0x3f & *from++;
- len -= 3;
- } else if (*from & 0x80) {
- *to = *from++ << 8;
- *to |= *from++;
- len -= 2;
- } else {
- *to = *from++;
- len--;
- }
- to++;
- }
- *to = 0;
+ while (*from && len > 0)
+ {
+ if (*from == SS2)
+ {
+ from++;
+ len--;
+ *to = 0xff & *from++;
+ len--;
+ }
+ else if (*from == SS3)
+ {
+ from++;
+ *to = *from++ << 8;
+ *to |= 0x3f & *from++;
+ len -= 3;
+ }
+ else if (*from & 0x80)
+ {
+ *to = *from++ << 8;
+ *to |= *from++;
+ len -= 2;
+ }
+ else
+ {
+ *to = *from++;
+ len--;
+ }
+ to++;
+ }
+ *to = 0;
}
-static int pg_euc_mblen(const unsigned char *s)
+static int
+pg_euc_mblen(const unsigned char *s)
{
- int len;
+ int len;
- if (*s == SS2) {
- len = 2;
- } else if (*s == SS3) {
- len = 3;
- } else if (*s & 0x80) {
- len = 2;
- } else {
- len = 1;
- }
- return(len);
+ if (*s == SS2)
+ len = 2;
+ else if (*s == SS3)
+ len = 3;
+ else if (*s & 0x80)
+ len = 2;
+ else
+ len = 1;
+ return (len);
}
/*
* EUC_JP
*/
static void pg_eucjp2wchar_with_len
-(const unsigned char *from, pg_wchar *to, int len)
+ (const unsigned char *from, pg_wchar * to, int len)
{
- pg_euc2wchar_with_len(from,to,len);
+ pg_euc2wchar_with_len(from, to, len);
}
-static int pg_eucjp_mblen(const unsigned char *s)
+static int
+pg_eucjp_mblen(const unsigned char *s)
{
- return(pg_euc_mblen(s));
+ return (pg_euc_mblen(s));
}
/*
* EUC_KR
*/
static void pg_euckr2wchar_with_len
-(const unsigned char *from, pg_wchar *to, int len)
+ (const unsigned char *from, pg_wchar * to, int len)
{
- pg_euc2wchar_with_len(from,to,len);
+ pg_euc2wchar_with_len(from, to, len);
}
-static int pg_euckr_mblen(const unsigned char *s)
+static int
+pg_euckr_mblen(const unsigned char *s)
{
- return(pg_euc_mblen(s));
+ return (pg_euc_mblen(s));
}
/*
* EUC_CN
*/
static void pg_euccn2wchar_with_len
-(const unsigned char *from, pg_wchar *to, int len)
+ (const unsigned char *from, pg_wchar * to, int len)
{
- while (*from && len > 0) {
- if (*from == SS2) {
- from++;
- len--;
- *to = 0x3f00 & (*from++ << 8);
- *to = *from++;
- len -= 2;
- } else if (*from == SS3) {
- from++;
- *to = *from++ << 8;
- *to |= 0x3f & *from++;
- len -= 3;
- } else if (*from & 0x80) {
- *to = *from++ << 8;
- *to |= *from++;
- len -= 2;
- } else {
- *to = *from++;
- len--;
- }
- to++;
- }
- *to = 0;
+ while (*from && len > 0)
+ {
+ if (*from == SS2)
+ {
+ from++;
+ len--;
+ *to = 0x3f00 & (*from++ << 8);
+ *to = *from++;
+ len -= 2;
+ }
+ else if (*from == SS3)
+ {
+ from++;
+ *to = *from++ << 8;
+ *to |= 0x3f & *from++;
+ len -= 3;
+ }
+ else if (*from & 0x80)
+ {
+ *to = *from++ << 8;
+ *to |= *from++;
+ len -= 2;
+ }
+ else
+ {
+ *to = *from++;
+ len--;
+ }
+ to++;
+ }
+ *to = 0;
}
-static int pg_euccn_mblen(const unsigned char *s)
+static int
+pg_euccn_mblen(const unsigned char *s)
{
- int len;
+ int len;
- if (*s == SS2) {
- len = 3;
- } else if (*s == SS3) {
- len = 3;
- } else if (*s & 0x80) {
- len = 2;
- } else {
- len = 1;
- }
- return(len);
+ if (*s == SS2)
+ len = 3;
+ else if (*s == SS3)
+ len = 3;
+ else if (*s & 0x80)
+ len = 2;
+ else
+ len = 1;
+ return (len);
}
/*
* EUC_TW
*/
static void pg_euctw2wchar_with_len
-(const unsigned char *from, pg_wchar *to, int len)
+ (const unsigned char *from, pg_wchar * to, int len)
{
- while (*from && len > 0) {
- if (*from == SS2) {
- from++;
- len--;
- *to = *from++ << 16;
- *to |= *from++ << 8;
- *to |= *from++;
- len -= 3;
- } else if (*from == SS3) {
- from++;
- *to = *from++ << 8;
- *to |= 0x3f & *from++;
- len -= 3;
- } else if (*from & 0x80) {
- *to = *from++ << 8;
- *to |= *from++;
- len -= 2;
- } else {
- *to = *from++;
- len--;
- }
- to++;
- }
- *to = 0;
+ while (*from && len > 0)
+ {
+ if (*from == SS2)
+ {
+ from++;
+ len--;
+ *to = *from++ << 16;
+ *to |= *from++ << 8;
+ *to |= *from++;
+ len -= 3;
+ }
+ else if (*from == SS3)
+ {
+ from++;
+ *to = *from++ << 8;
+ *to |= 0x3f & *from++;
+ len -= 3;
+ }
+ else if (*from & 0x80)
+ {
+ *to = *from++ << 8;
+ *to |= *from++;
+ len -= 2;
+ }
+ else
+ {
+ *to = *from++;
+ len--;
+ }
+ to++;
+ }
+ *to = 0;
}
-static int pg_euctw_mblen(const unsigned char *s)
+static int
+pg_euctw_mblen(const unsigned char *s)
{
- int len;
+ int len;
- if (*s == SS2) {
- len = 4;
- } else if (*s == SS3) {
- len = 3;
- } else if (*s & 0x80) {
- len = 2;
- } else {
- len = 1;
- }
- return(len);
+ if (*s == SS2)
+ len = 4;
+ else if (*s == SS3)
+ len = 3;
+ else if (*s & 0x80)
+ len = 2;
+ else
+ len = 1;
+ return (len);
}
/*
@@ -208,45 +236,55 @@ static int pg_euctw_mblen(const unsigned char *s)
* len: length of from.
* "from" not necessarily null terminated.
*/
-static void pg_utf2wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
+static void
+pg_utf2wchar_with_len(const unsigned char *from, pg_wchar * to, int len)
{
- unsigned char c1,c2,c3;
- while (*from && len > 0) {
- if ((*from & 0x80) == 0) {
- *to = *from++;
- len--;
- } else if ((*from & 0xe0) == 0xc0) {
- c1 = *from++ & 0x1f;
- c2 = *from++ & 0x3f;
- len -= 2;
- *to = c1 << 6;
- *to |= c2;
- } else if ((*from & 0xe0) == 0xe0) {
- c1 = *from++ & 0x0f;
- c2 = *from++ & 0x3f;
- c3 = *from++ & 0x3f;
- len -= 3;
- *to = c1 << 12;
- *to |= c2 << 6;
- *to |= c3;
- }
- to++;
- }
- *to = 0;
+ unsigned char c1,
+ c2,
+ c3;
+
+ while (*from && len > 0)
+ {
+ if ((*from & 0x80) == 0)
+ {
+ *to = *from++;
+ len--;
+ }
+ else if ((*from & 0xe0) == 0xc0)
+ {
+ c1 = *from++ & 0x1f;
+ c2 = *from++ & 0x3f;
+ len -= 2;
+ *to = c1 << 6;
+ *to |= c2;
+ }
+ else if ((*from & 0xe0) == 0xe0)
+ {
+ c1 = *from++ & 0x0f;
+ c2 = *from++ & 0x3f;
+ c3 = *from++ & 0x3f;
+ len -= 3;
+ *to = c1 << 12;
+ *to |= c2 << 6;
+ *to |= c3;
+ }
+ to++;
+ }
+ *to = 0;
}
-static int pg_utf_mblen(const unsigned char *s)
+static int
+pg_utf_mblen(const unsigned char *s)
{
- int len = 1;
+ int len = 1;
- if ((*s & 0x80) == 0) {
- len = 1;
- } else if ((*s & 0xe0) == 0xc0) {
- len = 2;
- } else if ((*s & 0xe0) == 0xe0) {
- len = 3;
- }
- return(len);
+ if ((*s & 0x80) == 0)
+ len = 1;
+ else if ((*s & 0xe0) == 0xc0)
+ len = 2;
+ else if ((*s & 0xe0) == 0xe0)
+ len = 3;
+ return (len);
}
/*
@@ -255,127 +293,148 @@ static int pg_utf_mblen(const unsigned char *s)
* len: length of from.
* "from" not necessarily null terminated.
*/
-static void pg_mule2wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
+static void
+pg_mule2wchar_with_len(const unsigned char *from, pg_wchar * to, int len)
{
- while (*from && len > 0) {
- if (IS_LC1(*from)) {
- *to = *from++ << 16;
- *to |= *from++;
- len -= 2;
- } else if (IS_LCPRV1(*from)) {
- from++;
- *to = *from++ << 16;
- *to |= *from++;
- len -= 3;
- } else if (IS_LC2(*from)) {
- *to = *from++ << 16;
- *to |= *from++ << 8;
- *to |= *from++;
- len -= 3;
- } else if (IS_LCPRV2(*from)) {
- from++;
- *to = *from++ << 16;
- *to |= *from++ << 8;
- *to |= *from++;
- len -= 4;
- } else { /* assume ASCII */
- *to = (unsigned char)*from++;
- len--;
- }
- to++;
- }
- *to = 0;
+ while (*from && len > 0)
+ {
+ if (IS_LC1(*from))
+ {
+ *to = *from++ << 16;
+ *to |= *from++;
+ len -= 2;
+ }
+ else if (IS_LCPRV1(*from))
+ {
+ from++;
+ *to = *from++ << 16;
+ *to |= *from++;
+ len -= 3;
+ }
+ else if (IS_LC2(*from))
+ {
+ *to = *from++ << 16;
+ *to |= *from++ << 8;
+ *to |= *from++;
+ len -= 3;
+ }
+ else if (IS_LCPRV2(*from))
+ {
+ from++;
+ *to = *from++ << 16;
+ *to |= *from++ << 8;
+ *to |= *from++;
+ len -= 4;
+ }
+ else
+ { /* assume ASCII */
+ *to = (unsigned char) *from++;
+ len--;
+ }
+ to++;
+ }
+ *to = 0;
}
-int pg_mule_mblen(const unsigned char *s)
+int
+pg_mule_mblen(const unsigned char *s)
{
- int len;
+ int len;
- if (IS_LC1(*s)) {
- len = 2;
- } else if (IS_LCPRV1(*s)) {
- len = 3;
- } else if (IS_LC2(*s)) {
- len = 3;
- } else if (IS_LCPRV2(*s)) {
- len = 4;
- } else { /* assume ASCII */
- len = 1;
- }
- return(len);
+ if (IS_LC1(*s))
+ len = 2;
+ else if (IS_LCPRV1(*s))
+ len = 3;
+ else if (IS_LC2(*s))
+ len = 3;
+ else if (IS_LCPRV2(*s))
+ len = 4;
+ else
+ { /* assume ASCII */
+ len = 1;
+ }
+ return (len);
}
/*
* ISO8859-1
*/
-static void pg_latin12wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
+static void
+pg_latin12wchar_with_len(const unsigned char *from, pg_wchar * to, int len)
{
- while (*from && len-- > 0) {
- *to++ = *from++;
- }
- *to = 0;
+ while (*from && len-- > 0)
+ *to++ = *from++;
+ *to = 0;
}
-static int pg_latin1_mblen(const unsigned char *s)
+static int
+pg_latin1_mblen(const unsigned char *s)
{
- return(1);
+ return (1);
}
/*
* SJIS
*/
-static int pg_sjis_mblen(const unsigned char *s)
+static int
+pg_sjis_mblen(const unsigned char *s)
{
- int len;
+ int len;
- if (*s >= 0xa1 && *s <= 0xdf) { /* 1 byte kana? */
- len = 1;
- } else if (*s > 0x7f) { /* kanji? */
- len = 2;
- } else { /* should be ASCII */
- len = 1;
- }
- return(len);
+ if (*s >= 0xa1 && *s <= 0xdf)
+ { /* 1 byte kana? */
+ len = 1;
+ }
+ else if (*s > 0x7f)
+ { /* kanji? */
+ len = 2;
+ }
+ else
+ { /* should be ASCII */
+ len = 1;
+ }
+ return (len);
}
pg_wchar_tbl pg_wchar_table[] = {
- {pg_ascii2wchar_with_len, pg_ascii_mblen},
- {pg_eucjp2wchar_with_len, pg_eucjp_mblen},
- {pg_euccn2wchar_with_len, pg_euccn_mblen},
- {pg_euckr2wchar_with_len, pg_euckr_mblen},
- {pg_euctw2wchar_with_len, pg_euctw_mblen},
- {pg_utf2wchar_with_len, pg_utf_mblen},
- {pg_mule2wchar_with_len, pg_mule_mblen},
- {pg_latin12wchar_with_len, pg_latin1_mblen},
- {pg_latin12wchar_with_len, pg_latin1_mblen},
- {pg_latin12wchar_with_len, pg_latin1_mblen},
- {pg_latin12wchar_with_len, pg_latin1_mblen},
- {pg_latin12wchar_with_len, pg_latin1_mblen},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, 0},
- {0, pg_sjis_mblen}
+ {pg_ascii2wchar_with_len, pg_ascii_mblen},
+ {pg_eucjp2wchar_with_len, pg_eucjp_mblen},
+ {pg_euccn2wchar_with_len, pg_euccn_mblen},
+ {pg_euckr2wchar_with_len, pg_euckr_mblen},
+ {pg_euctw2wchar_with_len, pg_euctw_mblen},
+ {pg_utf2wchar_with_len, pg_utf_mblen},
+ {pg_mule2wchar_with_len, pg_mule_mblen},
+ {pg_latin12wchar_with_len, pg_latin1_mblen},
+ {pg_latin12wchar_with_len, pg_latin1_mblen},
+ {pg_latin12wchar_with_len, pg_latin1_mblen},
+ {pg_latin12wchar_with_len, pg_latin1_mblen},
+ {pg_latin12wchar_with_len, pg_latin1_mblen},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, pg_sjis_mblen}
};
/* returns the byte length of a word for mule internal code */
-int pg_mic_mblen(const unsigned char *mbstr)
+int
+pg_mic_mblen(const unsigned char *mbstr)
{
- return(pg_mule_mblen(mbstr));
+ return (pg_mule_mblen(mbstr));
}
diff --git a/src/backend/utils/mb/wstrcmp.c b/src/backend/utils/mb/wstrcmp.c
index fe2967876f0..3efdcc6f396 100644
--- a/src/backend/utils/mb/wstrcmp.c
+++ b/src/backend/utils/mb/wstrcmp.c
@@ -9,22 +9,22 @@
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
+ * must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
@@ -38,11 +38,11 @@
int
pg_char_and_wchar_strcmp(s1, s2)
- register const char *s1;
- register const pg_wchar *s2;
+register const char *s1;
+register const pg_wchar *s2;
{
- while ((pg_wchar)*s1 == *s2++)
+ while ((pg_wchar) * s1 == *s2++)
if (*s1++ == 0)
return 0;
- return *(const unsigned char *)s1 - *(const pg_wchar *)(s2 - 1);
+ return *(const unsigned char *) s1 - *(const pg_wchar *) (s2 - 1);
}
diff --git a/src/backend/utils/mb/wstrncmp.c b/src/backend/utils/mb/wstrncmp.c
index 368e39b52e5..c7ccf1b4cb7 100644
--- a/src/backend/utils/mb/wstrncmp.c
+++ b/src/backend/utils/mb/wstrncmp.c
@@ -8,22 +8,22 @@
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
+ * must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
@@ -37,16 +37,18 @@
int
pg_wchar_strncmp(s1, s2, n)
- register const pg_wchar *s1, *s2;
- register size_t n;
+register const pg_wchar *s1,
+ *s2;
+register size_t n;
{
if (n == 0)
return 0;
- do {
+ do
+ {
if (*s1 != *s2++)
- return (*(const pg_wchar *)s1 -
- *(const pg_wchar *)(s2 - 1));
+ return (*(const pg_wchar *) s1 -
+ *(const pg_wchar *) (s2 - 1));
if (*s1++ == 0)
break;
} while (--n != 0);
@@ -55,17 +57,18 @@ pg_wchar_strncmp(s1, s2, n)
int
pg_char_and_wchar_strncmp(s1, s2, n)
- register const char *s1;
- register const pg_wchar *s2;
- register size_t n;
+register const char *s1;
+register const pg_wchar *s2;
+register size_t n;
{
if (n == 0)
return 0;
- do {
- if ((pg_wchar )*s1 != *s2++)
- return (*(const pg_wchar *)s1 -
- *(const pg_wchar *)(s2 - 1));
+ do
+ {
+ if ((pg_wchar) * s1 != *s2++)
+ return (*(const pg_wchar *) s1 -
+ *(const pg_wchar *) (s2 - 1));
if (*s1++ == 0)
break;
} while (--n != 0);
@@ -74,10 +77,10 @@ pg_char_and_wchar_strncmp(s1, s2, n)
size_t
pg_wchar_strlen(str)
- const pg_wchar *str;
+const pg_wchar *str;
{
register const pg_wchar *s;
for (s = str; *s; ++s);
- return(s - str);
+ return (s - str);
}
diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c
index 3dd61b8e9c4..098927bf533 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.18 1998/09/01 03:26:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.19 1998/09/01 04:33:30 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -106,6 +106,7 @@ GetDatabaseInfo(char *name, int4 *owner, char *path)
return FALSE;
} /* GetDatabaseInfo() */
+
#endif
char *
@@ -268,14 +269,13 @@ GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path, int *encodin
*/
tup_db = (Form_pg_database) GETSTRUCT(tup);
#ifdef MULTIBYTE
- /* get encoding from template database.
- This is the "default for default" for
- create database command.
- */
- if (strcmp("template1",tup_db->datname.data) == 0)
- {
+
+ /*
+ * get encoding from template database. This is the "default
+ * for default" for create database command.
+ */
+ if (strcmp("template1", tup_db->datname.data) == 0)
SetTemplateEncoding(tup_db->encoding);
- }
#endif
if (strcmp(name, tup_db->datname.data) == 0)
{
diff --git a/src/backend/utils/misc/superuser.c b/src/backend/utils/misc/superuser.c
index d5889b8733d..3e57e87bee6 100644
--- a/src/backend/utils/misc/superuser.c
+++ b/src/backend/utils/misc/superuser.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.6 1998/08/19 02:03:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.7 1998/09/01 04:33:32 momjian Exp $
*
* DESCRIPTION
* See superuser().
@@ -31,8 +31,8 @@ superuser(void)
HeapTuple utup;
utup = SearchSysCacheTuple(USENAME,
- PointerGetDatum(UserName),
- 0, 0, 0);
+ PointerGetDatum(UserName),
+ 0, 0, 0);
Assert(utup != NULL);
return ((Form_pg_shadow) GETSTRUCT(utup))->usesuper;
}
diff --git a/src/backend/utils/misc/trace.c b/src/backend/utils/misc/trace.c
index 04148e7df40..291bff798cd 100644
--- a/src/backend/utils/misc/trace.c
+++ b/src/backend/utils/misc/trace.c
@@ -4,7 +4,7 @@
*
* Conditional trace ans logging functions.
*
- * Massimo Dal Zotto <dz@cs.unitn.it>
+ * Massimo Dal Zotto <dz@cs.unitn.it>
*
*-------------------------------------------------------------------------
*/
@@ -32,12 +32,12 @@
/*
* Global option to control the use of syslog(3) for logging:
*
- * 0 stdout/stderr only
- * 1 stdout/stderr + syslog
- * 2 syslog only
+ * 0 stdout/stderr only
+ * 1 stdout/stderr + syslog
+ * 2 syslog only
*/
-#define UseSyslog pg_options[OPT_SYSLOG]
-#define PG_LOG_FACILITY LOG_LOCAL0
+#define UseSyslog pg_options[OPT_SYSLOG]
+#define PG_LOG_FACILITY LOG_LOCAL0
#define PG_LOG_IDENT "postgres"
#else
#define UseSyslog 0
@@ -56,7 +56,7 @@ static char *opt_names[] = {
"parserstats",
"plannerstats",
"executorstats",
- "shortlocks", /* currently unused but needed, see lock.c */
+ "shortlocks", /* currently unused but needed, see lock.c */
"locks",
"userlocks",
"spinlocks",
@@ -65,59 +65,65 @@ static char *opt_names[] = {
"palloc",
"lock_debug_oidmin",
"lock_debug_relid",
- "lock_read_priority", /* lock priority, see lock.c */
- "deadlock_timeout", /* deadlock timeout, see proc.c */
- "syslog", /* use syslog for error messages */
- "hostlookup", /* enable hostname lookup in ps_status */
- "showportnumber", /* show port number in ps_status */
- "notifyunlock", /* enable unlock of pg_listener after notify */
- "notifyhack" /* enable notify hack to remove duplicate tuples */
+ "lock_read_priority", /* lock priority, see lock.c */
+ "deadlock_timeout", /* deadlock timeout, see proc.c */
+ "syslog", /* use syslog for error messages */
+ "hostlookup", /* enable hostname lookup in ps_status */
+ "showportnumber", /* show port number in ps_status */
+ "notifyunlock", /* enable unlock of pg_listener after
+ * notify */
+ "notifyhack" /* enable notify hack to remove duplicate
+ * tuples */
};
/*
* Array of trace flags which can be set or reset independently.
*/
-int pg_options[NUM_PG_OPTIONS] = { 0 };
+int pg_options[NUM_PG_OPTIONS] = {0};
-static int openlog_done = 0;
+static int openlog_done = 0;
/*
* Print a timestamp and a message to stdout if the trace flag
* indexed by the flag value is set.
*/
int
-tprintf(int flag, const char *fmt, ... )
+tprintf(int flag, const char *fmt,...)
{
va_list ap;
- char line[ELOG_MAXLEN+TIMESTAMP_SIZE+1];
+ char line[ELOG_MAXLEN + TIMESTAMP_SIZE + 1];
#ifdef USE_SYSLOG
- int log_level;
+ int log_level;
+
#endif
- if ((flag == TRACE_ALL) || (pg_options[TRACE_ALL] > 0)) {
+ if ((flag == TRACE_ALL) || (pg_options[TRACE_ALL] > 0))
+ {
/* uconditional trace or trace all option set */
- } else if (pg_options[TRACE_ALL] == 0) {
- if ((flag < 0) || (flag >= NUM_PG_OPTIONS) || (!pg_options[flag])) {
+ }
+ else if (pg_options[TRACE_ALL] == 0)
+ {
+ if ((flag < 0) || (flag >= NUM_PG_OPTIONS) || (!pg_options[flag]))
return 0;
- }
- } else if (pg_options[TRACE_ALL] < 0) {
- return 0;
}
+ else if (pg_options[TRACE_ALL] < 0)
+ return 0;
va_start(ap, fmt);
#ifdef ELOG_TIMESTAMPS
strcpy(line, tprintf_timestamp());
#endif
- vsprintf(line+TIMESTAMP_SIZE, fmt, ap);
+ vsprintf(line + TIMESTAMP_SIZE, fmt, ap);
va_end(ap);
#ifdef USE_SYSLOG
log_level = ((flag == TRACE_ALL) ? LOG_INFO : LOG_DEBUG);
- write_syslog(log_level, line+TIMESTAMP_SIZE);
+ write_syslog(log_level, line + TIMESTAMP_SIZE);
#endif
- if (UseSyslog <= 1) {
+ if (UseSyslog <= 1)
+ {
puts(line);
fflush(stdout);
}
@@ -129,23 +135,24 @@ tprintf(int flag, const char *fmt, ... )
* Print a timestamp and a message to stderr.
*/
int
-eprintf(const char *fmt, ... )
+eprintf(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
strcpy(line, tprintf_timestamp());
#endif
- vsprintf(line+TIMESTAMP_SIZE, fmt, ap);
+ vsprintf(line + TIMESTAMP_SIZE, fmt, ap);
va_end(ap);
#ifdef USE_SYSLOG
- write_syslog(LOG_ERR, line+TIMESTAMP_SIZE);
+ write_syslog(LOG_ERR, line + TIMESTAMP_SIZE);
#endif
- if (UseSyslog <= 1) {
+ if (UseSyslog <= 1)
+ {
fputs(line, stderr);
fputc('\n', stderr);
fflush(stderr);
@@ -161,14 +168,17 @@ eprintf(const char *fmt, ... )
void
write_syslog(int level, char *line)
{
- if (UseSyslog >= 1) {
- if (!openlog_done) {
+ if (UseSyslog >= 1)
+ {
+ if (!openlog_done)
+ {
openlog_done = 1;
- openlog(PG_LOG_IDENT, LOG_PID|LOG_NDELAY, PG_LOG_FACILITY);
+ openlog(PG_LOG_IDENT, LOG_PID | LOG_NDELAY, PG_LOG_FACILITY);
}
syslog(level, "%s", line);
}
}
+
#endif
#ifdef ELOG_TIMESTAMPS
@@ -178,10 +188,11 @@ write_syslog(int level, char *line)
char *
tprintf_timestamp()
{
- struct timeval tv;
- struct tm *time;
- time_t tm;
- static char timestamp[32], pid[8];
+ struct timeval tv;
+ struct tm *time;
+ time_t tm;
+ static char timestamp[32],
+ pid[8];
gettimeofday(&tv, DST_NONE);
tm = tv.tv_sec;
@@ -189,29 +200,28 @@ tprintf_timestamp()
sprintf(pid, "[%d]", MyProcPid);
sprintf(timestamp, "%02d%02d%02d.%02d:%02d:%02d.%03d %7s ",
- time->tm_year, time->tm_mon+1, time->tm_mday,
+ time->tm_year, time->tm_mon + 1, time->tm_mday,
time->tm_hour, time->tm_min, time->tm_sec,
- tv.tv_usec/1000, pid);
+ tv.tv_usec / 1000, pid);
return timestamp;
}
+
#endif
int
option_flag(int flag)
{
- if ((flag < 0) || (flag >= NUM_PG_OPTIONS)) {
+ if ((flag < 0) || (flag >= NUM_PG_OPTIONS))
return 0;
- }
return pg_options[flag];
}
int
set_option_flag(int flag, int value)
{
- if ((flag < 0) || (flag >= NUM_PG_OPTIONS)) {
+ if ((flag < 0) || (flag >= NUM_PG_OPTIONS))
return -1;
- }
pg_options[flag] = value;
return value;
@@ -220,26 +230,29 @@ set_option_flag(int flag, int value)
/*
* Parse an option string like "name,name+,name-,name=value".
* Single options are delimited by ',',space,tab,newline or cr.
- */
+ */
void
parse_options(char *str)
{
- char *s,
- *name;
- int i,
- len,
- val,
- is_comment;
-
- Assert((sizeof(opt_names)/sizeof(char*)) == NUM_PG_OPTIONS);
-
+ char *s,
+ *name;
+ int i,
+ len,
+ val,
+ is_comment;
+
+ Assert((sizeof(opt_names) / sizeof(char *)) == NUM_PG_OPTIONS);
+
str = strdup(str);
- for (s=str; *s;) {
+ for (s = str; *s;)
+ {
is_comment = 0;
name = s;
val = 1;
- for (; *s; s++) {
- switch (*s) {
+ for (; *s; s++)
+ {
+ switch (*s)
+ {
case '#':
is_comment = 1;
break;
@@ -265,26 +278,28 @@ parse_options(char *str)
goto setval;
}
}
- setval:
- for (; *s; s++) {
- if (*s == ',') {
+setval:
+ for (; *s; s++)
+ {
+ if (*s == ',')
+ {
*s++ = '\0';
break;
}
}
len = strlen(name);
- if (len == 0) {
+ if (len == 0)
continue;
- }
- for (i=0; i<NUM_PG_OPTIONS; i++) {
- if (strncmp(name, opt_names[i], len) == 0) {
+ for (i = 0; i < NUM_PG_OPTIONS; i++)
+ {
+ if (strncmp(name, opt_names[i], len) == 0)
+ {
pg_options[i] = val;
break;
}
}
- if (!is_comment && (i >= NUM_PG_OPTIONS)) {
+ if (!is_comment && (i >= NUM_PG_OPTIONS))
fprintf(stderr, "invalid option: %s\n", name);
- }
}
free(str);
}
@@ -299,20 +314,22 @@ read_pg_options(SIGNAL_ARGS)
int verbose;
char buffer[BUF_SIZE];
char c;
- char *s,
- *p;
+ char *s,
+ *p;
sprintf(buffer, "%s/%s", DataDir, "pg_options");
- if ((fd = open(buffer, O_RDONLY)) < 0) {
+ if ((fd = open(buffer, O_RDONLY)) < 0)
return;
- }
- if ((n = read(fd, buffer, BUF_SIZE-1)) > 0) {
+ if ((n = read(fd, buffer, BUF_SIZE - 1)) > 0)
+ {
/* collpse buffer in place removing comments and spaces */
- for (s=buffer,p=buffer,c='\0'; s<(buffer+n); ) {
- switch (*s) {
+ for (s = buffer, p = buffer, c = '\0'; s < (buffer + n);)
+ {
+ switch (*s)
+ {
case '#':
- while ((s < (buffer+n)) && (*s++ != '\n'));
+ while ((s < (buffer + n)) && (*s++ != '\n'));
break;
case ' ':
case '\t':
@@ -333,9 +350,8 @@ read_pg_options(SIGNAL_ARGS)
verbose = pg_options[TRACE_VERBOSE];
parse_options(buffer);
verbose |= pg_options[TRACE_VERBOSE];
- if (verbose || postgres_signal_arg == SIGHUP) {
+ if (verbose || postgres_signal_arg == SIGHUP)
tprintf(TRACE_ALL, "read_pg_options: %s", buffer);
- }
}
close(fd);
@@ -343,8 +359,8 @@ read_pg_options(SIGNAL_ARGS)
/*
* Local variables:
- * tab-width: 4
- * c-indent-level: 4
- * c-basic-offset: 4
+ * tab-width: 4
+ * c-indent-level: 4
+ * c-basic-offset: 4
* End:
*/
diff --git a/src/backend/utils/mmgr/aset.c b/src/backend/utils/mmgr/aset.c
index aa735d05b53..008c629e5c6 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.10 1998/09/01 03:27:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.11 1998/09/01 04:33:34 momjian Exp $
*
* NOTE
* XXX This is a preliminary implementation which lacks fail-fast
@@ -26,8 +26,7 @@
#endif
static void AllocPointerDump(AllocPointer pointer);
-static int
-AllocSetIterate(AllocSet set,
+static int AllocSetIterate(AllocSet set,
void (*function) (AllocPointer pointer));
#undef AllocSetReset
diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c
index d8ee25627b9..46c38697858 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.9 1998/09/01 03:27:03 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/mcxt.c,v 1.10 1998/09/01 04:33:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -75,8 +75,7 @@ MemoryContext CurrentMemoryContext = NULL;
static Pointer GlobalMemoryAlloc(GlobalMemory this, Size size);
static void GlobalMemoryFree(GlobalMemory this, Pointer pointer);
-static Pointer
-GlobalMemoryRealloc(GlobalMemory this, Pointer pointer,
+static Pointer GlobalMemoryRealloc(GlobalMemory this, Pointer pointer,
Size size);
static char *GlobalMemoryGetName(GlobalMemory this);
static void GlobalMemoryDump(GlobalMemory this);
diff --git a/src/backend/utils/mmgr/palloc.c b/src/backend/utils/mmgr/palloc.c
index 7a9aff1353b..4862c92d966 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.7 1998/09/01 03:27:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/Attic/palloc.c,v 1.8 1998/09/01 04:33:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -67,7 +67,7 @@ palloc(Size size)
return malloc(size);
#else
return MemoryContextAlloc(CurrentMemoryContext, size);
-#endif /* PALLOC_IS_MALLOC */
+#endif /* PALLOC_IS_MALLOC */
}
void
@@ -77,7 +77,7 @@ pfree(void *pointer)
free(pointer);
#else
MemoryContextFree(CurrentMemoryContext, pointer);
-#endif /* PALLOC_IS_MALLOC */
+#endif /* PALLOC_IS_MALLOC */
}
/*
diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c
index cad7cb49877..eb948123bec 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.13 1998/09/01 03:27:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/portalmem.c,v 1.14 1998/09/01 04:33:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -285,7 +285,7 @@ PortalHeapMemoryFree(PortalHeapMemory this,
pointer);
#ifdef ALLOCFREE_ERROR_ABORT
Assert(AllocSetContains(&block->setData, pointer));
-#endif /* ALLOCFREE_ERROR_ABORT */
+#endif /* ALLOCFREE_ERROR_ABORT */
}
}
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index 1724ad2de53..dba296727da 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.18 1998/09/01 03:27:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.19 1998/09/01 04:33:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,7 +32,7 @@ extern bool PostgresIsInitialized;
#ifndef GOODAMI
TransactionId HeapSpecialTransactionId = InvalidTransactionId;
-CommandId HeapSpecialCommandId = FirstCommandId;
+CommandId HeapSpecialCommandId = FirstCommandId;
void
setheapoverride(bool on)
@@ -40,14 +40,14 @@ setheapoverride(bool on)
if (on)
{
TransactionIdStore(GetCurrentTransactionId(),
- &HeapSpecialTransactionId);
+ &HeapSpecialTransactionId);
HeapSpecialCommandId = GetCurrentCommandId();
}
else
HeapSpecialTransactionId = InvalidTransactionId;
}
-#endif /* !defined(GOODAMI) */
+#endif /* !defined(GOODAMI) */
/*
* XXX Transaction system override hacks end here
*/
@@ -196,7 +196,7 @@ HeapTupleSatisfiesNow(HeapTuple tuple)
if (TransactionIdIsCurrentTransactionId(tuple->t_xmin))
{
if (CommandIdGEScanCommandId(tuple->t_cmin))
- return false; /* inserted after scan started */
+ return false; /* inserted after scan started */
if (tuple->t_infomask & HEAP_XMAX_INVALID) /* xid invalid */
return true;
@@ -206,7 +206,7 @@ HeapTupleSatisfiesNow(HeapTuple tuple)
if (CommandIdGEScanCommandId(tuple->t_cmax))
return true; /* deleted after scan started */
else
- return false; /* deleted before scan started */
+ return false; /* deleted before scan started */
}
/*