diff options
author | Bruce Momjian | 2007-11-15 21:14:46 +0000 |
---|---|---|
committer | Bruce Momjian | 2007-11-15 21:14:46 +0000 |
commit | fdf5a5efb7b28c13085fe7313658de8d7b9914f6 (patch) | |
tree | a75cf1422fa1eef4e801cf502b148d8ce1b5dfe7 | |
parent | 3adc760fb92eab1a8720337a8bf9b66486609eb3 (diff) |
pgindent run for 8.3.
486 files changed, 10078 insertions, 9698 deletions
diff --git a/contrib/cube/cube.c b/contrib/cube/cube.c index ec8cb72e3b7..c57b9919c48 100644 --- a/contrib/cube/cube.c +++ b/contrib/cube/cube.c @@ -1,5 +1,5 @@ /****************************************************************************** - $PostgreSQL: pgsql/contrib/cube/cube.c,v 1.33 2007/06/05 21:31:03 tgl Exp $ + $PostgreSQL: pgsql/contrib/cube/cube.c,v 1.34 2007/11/15 21:14:29 momjian Exp $ This file contains routines that can be bound to a Postgres backend and called by the backend in the process of processing queries. The calling @@ -306,7 +306,7 @@ cube_subset(PG_FUNCTION_ARGS) result->x[i + dim] = c->x[dx[i] + c->dim - 1]; } - PG_FREE_IF_COPY(c,0); + PG_FREE_IF_COPY(c, 0); PG_RETURN_NDBOX(result); } @@ -360,7 +360,7 @@ cube_out(PG_FUNCTION_ARGS) appendStringInfoChar(&buf, ')'); } - PG_FREE_IF_COPY(cube,0); + PG_FREE_IF_COPY(cube, 0); PG_RETURN_CSTRING(buf.data); } @@ -381,20 +381,20 @@ g_cube_consistent(PG_FUNCTION_ARGS) GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); NDBOX *query = PG_GETARG_NDBOX(1); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); - bool res; + bool res; /* * if entry is not leaf, use g_cube_internal_consistent, else use * g_cube_leaf_consistent */ if (GIST_LEAF(entry)) - res = g_cube_leaf_consistent( DatumGetNDBOX(entry->key), - query, strategy); + res = g_cube_leaf_consistent(DatumGetNDBOX(entry->key), + query, strategy); else - res = g_cube_internal_consistent( DatumGetNDBOX(entry->key), - query, strategy); + res = g_cube_internal_consistent(DatumGetNDBOX(entry->key), + query, strategy); - PG_FREE_IF_COPY(query,1); + PG_FREE_IF_COPY(query, 1); PG_RETURN_BOOL(res); } @@ -451,14 +451,15 @@ Datum g_cube_decompress(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - NDBOX *key = DatumGetNDBOX(PG_DETOAST_DATUM(entry->key)); + NDBOX *key = DatumGetNDBOX(PG_DETOAST_DATUM(entry->key)); if (key != DatumGetNDBOX(entry->key)) { GISTENTRY *retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + gistentryinit(*retval, PointerGetDatum(key), - entry->rel, entry->page, - entry->offset, FALSE); + entry->rel, entry->page, + entry->offset, FALSE); PG_RETURN_POINTER(retval); } PG_RETURN_POINTER(entry); @@ -479,8 +480,8 @@ g_cube_penalty(PG_FUNCTION_ARGS) double tmp1, tmp2; - ud = cube_union_v0( DatumGetNDBOX(origentry->key), - DatumGetNDBOX(newentry->key)); + ud = cube_union_v0(DatumGetNDBOX(origentry->key), + DatumGetNDBOX(newentry->key)); rt_cube_size(ud, &tmp1); rt_cube_size(DatumGetNDBOX(origentry->key), &tmp2); *result = (float) (tmp1 - tmp2); @@ -812,12 +813,12 @@ cube_union(PG_FUNCTION_ARGS) { NDBOX *a = PG_GETARG_NDBOX(0), *b = PG_GETARG_NDBOX(1); - NDBOX *res; + NDBOX *res; res = cube_union_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_NDBOX(res); } @@ -876,8 +877,9 @@ cube_inter(PG_FUNCTION_ARGS) a->x[i + a->dim]), result->x[i + a->dim]); } - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); + /* * Is it OK to return a non-null intersection for non-overlapping boxes? */ @@ -899,7 +901,7 @@ cube_size(PG_FUNCTION_ARGS) for (i = 0, j = a->dim; i < a->dim; i++, j++) result = result * Abs((a->x[j] - a->x[i])); - PG_FREE_IF_COPY(a,0); + PG_FREE_IF_COPY(a, 0); PG_RETURN_FLOAT8(result); } @@ -1011,8 +1013,8 @@ cube_cmp(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_INT32(res); } @@ -1026,8 +1028,8 @@ cube_eq(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res == 0); } @@ -1041,8 +1043,8 @@ cube_ne(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res != 0); } @@ -1056,8 +1058,8 @@ cube_lt(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res < 0); } @@ -1071,8 +1073,8 @@ cube_gt(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res > 0); } @@ -1086,8 +1088,8 @@ cube_le(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res <= 0); } @@ -1101,8 +1103,8 @@ cube_ge(PG_FUNCTION_ARGS) res = cube_cmp_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res >= 0); } @@ -1157,8 +1159,8 @@ cube_contains(PG_FUNCTION_ARGS) res = cube_contains_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res); } @@ -1173,8 +1175,8 @@ cube_contained(PG_FUNCTION_ARGS) res = cube_contains_v0(b, a); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res); } @@ -1234,8 +1236,8 @@ cube_overlap(PG_FUNCTION_ARGS) res = cube_overlap_v0(a, b); - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_BOOL(res); } @@ -1281,8 +1283,8 @@ cube_distance(PG_FUNCTION_ARGS) distance += d * d; } - PG_FREE_IF_COPY(a,0); - PG_FREE_IF_COPY(b,1); + PG_FREE_IF_COPY(a, 0); + PG_FREE_IF_COPY(b, 1); PG_RETURN_FLOAT8(sqrt(distance)); } @@ -1317,7 +1319,7 @@ cube_is_point(PG_FUNCTION_ARGS) PG_RETURN_BOOL(FALSE); } - PG_FREE_IF_COPY(a,0); + PG_FREE_IF_COPY(a, 0); PG_RETURN_BOOL(TRUE); } @@ -1331,7 +1333,7 @@ cube_dim(PG_FUNCTION_ARGS) c = PG_GETARG_NDBOX(0); dim = c->dim; - PG_FREE_IF_COPY(c,0); + PG_FREE_IF_COPY(c, 0); PG_RETURN_INT32(c->dim); } @@ -1350,7 +1352,7 @@ cube_ll_coord(PG_FUNCTION_ARGS) if (c->dim >= n && n > 0) result = Min(c->x[n - 1], c->x[c->dim + n - 1]); - PG_FREE_IF_COPY(c,0); + PG_FREE_IF_COPY(c, 0); PG_RETURN_FLOAT8(result); } @@ -1369,7 +1371,7 @@ cube_ur_coord(PG_FUNCTION_ARGS) if (c->dim >= n && n > 0) result = Max(c->x[n - 1], c->x[c->dim + n - 1]); - PG_FREE_IF_COPY(c,0); + PG_FREE_IF_COPY(c, 0); PG_RETURN_FLOAT8(result); } @@ -1384,7 +1386,7 @@ cube_enlarge(PG_FUNCTION_ARGS) j, k; NDBOX *a; - double r; + double r; int4 n; a = PG_GETARG_NDBOX(0); @@ -1426,7 +1428,7 @@ cube_enlarge(PG_FUNCTION_ARGS) result->x[j] = r; } - PG_FREE_IF_COPY(a,0); + PG_FREE_IF_COPY(a, 0); PG_RETURN_NDBOX(result); } @@ -1490,7 +1492,7 @@ cube_c_f8(PG_FUNCTION_ARGS) result->x[result->dim - 1] = x; result->x[2 * result->dim - 1] = x; - PG_FREE_IF_COPY(c,0); + PG_FREE_IF_COPY(c, 0); PG_RETURN_NDBOX(result); } @@ -1521,6 +1523,6 @@ cube_c_f8_f8(PG_FUNCTION_ARGS) result->x[result->dim - 1] = x1; result->x[2 * result->dim - 1] = x2; - PG_FREE_IF_COPY(c,0); + PG_FREE_IF_COPY(c, 0); PG_RETURN_NDBOX(result); } diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index 295a7797725..dd5cfc7f86d 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -8,7 +8,7 @@ * Darko Prenosil <[email protected]> * Shridhar Daithankar <[email protected]> * - * $PostgreSQL: pgsql/contrib/dblink/dblink.c,v 1.65 2007/08/27 01:24:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/dblink/dblink.c,v 1.66 2007/11/15 21:14:29 momjian Exp $ * Copyright (c) 2001-2007, PostgreSQL Global Development Group * ALL RIGHTS RESERVED; * @@ -256,10 +256,10 @@ dblink_connect(PG_FUNCTION_ARGS) pfree(rconn); ereport(ERROR, - (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED), - errmsg("password is required"), - errdetail("Non-superuser cannot connect if the server does not request a password."), - errhint("Target server's authentication method must be changed."))); + (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED), + errmsg("password is required"), + errdetail("Non-superuser cannot connect if the server does not request a password."), + errhint("Target server's authentication method must be changed."))); } } diff --git a/contrib/dict_int/dict_int.c b/contrib/dict_int/dict_int.c index 85d45491ccb..5cc2111adcb 100644 --- a/contrib/dict_int/dict_int.c +++ b/contrib/dict_int/dict_int.c @@ -6,7 +6,7 @@ * Copyright (c) 2007, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/dict_int/dict_int.c,v 1.1 2007/10/15 21:36:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/dict_int/dict_int.c,v 1.2 2007/11/15 21:14:29 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -19,24 +19,25 @@ PG_MODULE_MAGIC; -typedef struct { - int maxlen; - bool rejectlong; -} DictInt; +typedef struct +{ + int maxlen; + bool rejectlong; +} DictInt; PG_FUNCTION_INFO_V1(dintdict_init); -Datum dintdict_init(PG_FUNCTION_ARGS); +Datum dintdict_init(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(dintdict_lexize); -Datum dintdict_lexize(PG_FUNCTION_ARGS); +Datum dintdict_lexize(PG_FUNCTION_ARGS); Datum dintdict_init(PG_FUNCTION_ARGS) { - List *dictoptions = (List *) PG_GETARG_POINTER(0); - DictInt *d; - ListCell *l; + List *dictoptions = (List *) PG_GETARG_POINTER(0); + DictInt *d; + ListCell *l; d = (DictInt *) palloc0(sizeof(DictInt)); d->maxlen = 6; @@ -44,7 +45,7 @@ dintdict_init(PG_FUNCTION_ARGS) foreach(l, dictoptions) { - DefElem *defel = (DefElem *) lfirst(l); + DefElem *defel = (DefElem *) lfirst(l); if (pg_strcasecmp(defel->defname, "MAXLEN") == 0) { @@ -62,22 +63,22 @@ dintdict_init(PG_FUNCTION_ARGS) defel->defname))); } } - + PG_RETURN_POINTER(d); } Datum dintdict_lexize(PG_FUNCTION_ARGS) { - DictInt *d = (DictInt*)PG_GETARG_POINTER(0); - char *in = (char*)PG_GETARG_POINTER(1); - char *txt = pnstrdup(in, PG_GETARG_INT32(2)); - TSLexeme *res=palloc(sizeof(TSLexeme)*2); + DictInt *d = (DictInt *) PG_GETARG_POINTER(0); + char *in = (char *) PG_GETARG_POINTER(1); + char *txt = pnstrdup(in, PG_GETARG_INT32(2)); + TSLexeme *res = palloc(sizeof(TSLexeme) * 2); res[1].lexeme = NULL; - if (PG_GETARG_INT32(2) > d->maxlen) + if (PG_GETARG_INT32(2) > d->maxlen) { - if ( d->rejectlong ) + if (d->rejectlong) { /* reject by returning void array */ pfree(txt); diff --git a/contrib/dict_xsyn/dict_xsyn.c b/contrib/dict_xsyn/dict_xsyn.c index 1cd53a26bd1..753886117da 100644 --- a/contrib/dict_xsyn/dict_xsyn.c +++ b/contrib/dict_xsyn/dict_xsyn.c @@ -6,7 +6,7 @@ * Copyright (c) 2007, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/dict_xsyn/dict_xsyn.c,v 1.1 2007/10/15 21:36:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/dict_xsyn/dict_xsyn.c,v 1.2 2007/11/15 21:14:29 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -24,29 +24,30 @@ PG_MODULE_MAGIC; typedef struct { - char *key; /* Word */ - char *value; /* Unparsed list of synonyms, including the word itself */ + char *key; /* Word */ + char *value; /* Unparsed list of synonyms, including the + * word itself */ } Syn; typedef struct { - int len; - Syn *syn; + int len; + Syn *syn; - bool keeporig; + bool keeporig; } DictSyn; PG_FUNCTION_INFO_V1(dxsyn_init); -Datum dxsyn_init(PG_FUNCTION_ARGS); +Datum dxsyn_init(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(dxsyn_lexize); -Datum dxsyn_lexize(PG_FUNCTION_ARGS); +Datum dxsyn_lexize(PG_FUNCTION_ARGS); static char * find_word(char *in, char **end) { - char *start; + char *start; *end = NULL; while (*in && t_isspace(in)) @@ -71,12 +72,12 @@ compare_syn(const void *a, const void *b) } static void -read_dictionary(DictSyn *d, char *filename) +read_dictionary(DictSyn * d, char *filename) { - char *real_filename = get_tsearch_config_filename(filename, "rules"); - FILE *fin; - char *line; - int cur = 0; + char *real_filename = get_tsearch_config_filename(filename, "rules"); + FILE *fin; + char *line; + int cur = 0; if ((fin = AllocateFile(real_filename, "r")) == NULL) ereport(ERROR, @@ -86,9 +87,9 @@ read_dictionary(DictSyn *d, char *filename) while ((line = t_readline(fin)) != NULL) { - char *value; - char *key; - char *end = NULL; + char *value; + char *key; + char *end = NULL; if (*line == '\0') continue; @@ -130,9 +131,9 @@ read_dictionary(DictSyn *d, char *filename) Datum dxsyn_init(PG_FUNCTION_ARGS) { - List *dictoptions = (List *) PG_GETARG_POINTER(0); - DictSyn *d; - ListCell *l; + List *dictoptions = (List *) PG_GETARG_POINTER(0); + DictSyn *d; + ListCell *l; d = (DictSyn *) palloc0(sizeof(DictSyn)); d->len = 0; @@ -141,7 +142,7 @@ dxsyn_init(PG_FUNCTION_ARGS) foreach(l, dictoptions) { - DefElem *defel = (DefElem *) lfirst(l); + DefElem *defel = (DefElem *) lfirst(l); if (pg_strcasecmp(defel->defname, "KEEPORIG") == 0) { @@ -166,19 +167,19 @@ dxsyn_init(PG_FUNCTION_ARGS) Datum dxsyn_lexize(PG_FUNCTION_ARGS) { - DictSyn *d = (DictSyn *) PG_GETARG_POINTER(0); - char *in = (char *) PG_GETARG_POINTER(1); - int length = PG_GETARG_INT32(2); - Syn word; - Syn *found; - TSLexeme *res = NULL; + DictSyn *d = (DictSyn *) PG_GETARG_POINTER(0); + char *in = (char *) PG_GETARG_POINTER(1); + int length = PG_GETARG_INT32(2); + Syn word; + Syn *found; + TSLexeme *res = NULL; if (!length || d->len == 0) PG_RETURN_POINTER(NULL); /* Create search pattern */ { - char *temp = pnstrdup(in, length); + char *temp = pnstrdup(in, length); word.key = lowerstr(temp); pfree(temp); @@ -186,7 +187,7 @@ dxsyn_lexize(PG_FUNCTION_ARGS) } /* Look for matching syn */ - found = (Syn *)bsearch(&word, d->syn, d->len, sizeof(Syn), compare_syn); + found = (Syn *) bsearch(&word, d->syn, d->len, sizeof(Syn), compare_syn); pfree(word.key); if (!found) @@ -194,28 +195,28 @@ dxsyn_lexize(PG_FUNCTION_ARGS) /* Parse string of synonyms and return array of words */ { - char *value = pstrdup(found->value); - int value_length = strlen(value); - char *pos = value; - int nsyns = 0; - bool is_first = true; + char *value = pstrdup(found->value); + int value_length = strlen(value); + char *pos = value; + int nsyns = 0; + bool is_first = true; res = palloc(0); - while(pos < value + value_length) + while (pos < value + value_length) { - char *end; - char *syn = find_word(pos, &end); + char *end; + char *syn = find_word(pos, &end); if (!syn) break; *end = '\0'; - res = repalloc(res, sizeof(TSLexeme)*(nsyns + 2)); + res = repalloc(res, sizeof(TSLexeme) * (nsyns + 2)); res[nsyns].lexeme = NULL; /* first word is added to result only if KEEPORIG flag is set */ - if(d->keeporig || !is_first) + if (d->keeporig || !is_first) { res[nsyns].lexeme = pstrdup(syn); res[nsyns + 1].lexeme = NULL; diff --git a/contrib/hstore/hstore.h b/contrib/hstore/hstore.h index 5ef18abd8e8..48ec6e06488 100644 --- a/contrib/hstore/hstore.h +++ b/contrib/hstore/hstore.h @@ -50,7 +50,7 @@ typedef struct int comparePairs(const void *a, const void *b); int uniquePairs(Pairs * a, int4 l, int4 *buflen); -#define HStoreContainsStrategyNumber 7 -#define HStoreExistsStrategyNumber 9 +#define HStoreContainsStrategyNumber 7 +#define HStoreExistsStrategyNumber 9 #endif diff --git a/contrib/hstore/hstore_gin.c b/contrib/hstore/hstore_gin.c index f6fab2b89d6..144758f3cd5 100644 --- a/contrib/hstore/hstore_gin.c +++ b/contrib/hstore/hstore_gin.c @@ -1,24 +1,24 @@ #include "hstore.h" -#include "access/gin.h" +#include "access/gin.h" -#define KEYFLAG 'K' -#define VALFLAG 'V' -#define NULLFLAG 'N' +#define KEYFLAG 'K' +#define VALFLAG 'V' +#define NULLFLAG 'N' PG_FUNCTION_INFO_V1(gin_extract_hstore); -Datum gin_extract_hstore(PG_FUNCTION_ARGS); +Datum gin_extract_hstore(PG_FUNCTION_ARGS); -static text* -makeitem( char *str, int len ) +static text * +makeitem(char *str, int len) { - text *item; + text *item; - item = (text*)palloc( VARHDRSZ + len + 1 ); + item = (text *) palloc(VARHDRSZ + len + 1); SET_VARSIZE(item, VARHDRSZ + len + 1); - if ( str && len > 0 ) - memcpy( VARDATA(item)+1, str, len ); + if (str && len > 0) + memcpy(VARDATA(item) + 1, str, len); return item; } @@ -26,37 +26,37 @@ makeitem( char *str, int len ) Datum gin_extract_hstore(PG_FUNCTION_ARGS) { - HStore *hs = PG_GETARG_HS(0); - int32 *nentries = (int32 *) PG_GETARG_POINTER(1); - Datum *entries = NULL; + HStore *hs = PG_GETARG_HS(0); + int32 *nentries = (int32 *) PG_GETARG_POINTER(1); + Datum *entries = NULL; - *nentries = 2*hs->size; + *nentries = 2 * hs->size; - if ( hs->size > 0 ) + if (hs->size > 0) { - HEntry *ptr = ARRPTR(hs); - char *words = STRPTR(hs); - int i=0; + HEntry *ptr = ARRPTR(hs); + char *words = STRPTR(hs); + int i = 0; - entries = (Datum*)palloc( sizeof(Datum) * 2 * hs->size ); + entries = (Datum *) palloc(sizeof(Datum) * 2 * hs->size); while (ptr - ARRPTR(hs) < hs->size) { - text *item; + text *item; - item = makeitem( words + ptr->pos, ptr->keylen ); + item = makeitem(words + ptr->pos, ptr->keylen); *VARDATA(item) = KEYFLAG; entries[i++] = PointerGetDatum(item); - if ( ptr->valisnull ) + if (ptr->valisnull) { - item = makeitem( NULL, 0 ); + item = makeitem(NULL, 0); *VARDATA(item) = NULLFLAG; } else { - item = makeitem( words + ptr->pos + ptr->keylen, ptr->vallen ); + item = makeitem(words + ptr->pos + ptr->keylen, ptr->vallen); *VARDATA(item) = VALFLAG; } entries[i++] = PointerGetDatum(item); @@ -65,36 +65,37 @@ gin_extract_hstore(PG_FUNCTION_ARGS) } } - PG_FREE_IF_COPY(hs,0); + PG_FREE_IF_COPY(hs, 0); PG_RETURN_POINTER(entries); } PG_FUNCTION_INFO_V1(gin_extract_hstore_query); -Datum gin_extract_hstore_query(PG_FUNCTION_ARGS); +Datum gin_extract_hstore_query(PG_FUNCTION_ARGS); Datum gin_extract_hstore_query(PG_FUNCTION_ARGS) { StrategyNumber strategy = PG_GETARG_UINT16(2); - if ( strategy == HStoreContainsStrategyNumber ) + if (strategy == HStoreContainsStrategyNumber) { - PG_RETURN_DATUM( DirectFunctionCall2( - gin_extract_hstore, - PG_GETARG_DATUM(0), - PG_GETARG_DATUM(1) - )); + PG_RETURN_DATUM(DirectFunctionCall2( + gin_extract_hstore, + PG_GETARG_DATUM(0), + PG_GETARG_DATUM(1) + )); } - else if ( strategy == HStoreExistsStrategyNumber ) + else if (strategy == HStoreExistsStrategyNumber) { - text *item, *q = PG_GETARG_TEXT_P(0); - int32 *nentries = (int32 *) PG_GETARG_POINTER(1); - Datum *entries = NULL; + text *item, + *q = PG_GETARG_TEXT_P(0); + int32 *nentries = (int32 *) PG_GETARG_POINTER(1); + Datum *entries = NULL; *nentries = 1; - entries = (Datum*)palloc( sizeof(Datum) ); + entries = (Datum *) palloc(sizeof(Datum)); - item = makeitem( VARDATA(q), VARSIZE(q)-VARHDRSZ ); + item = makeitem(VARDATA(q), VARSIZE(q) - VARHDRSZ); *VARDATA(item) = KEYFLAG; entries[0] = PointerGetDatum(item); @@ -107,29 +108,28 @@ gin_extract_hstore_query(PG_FUNCTION_ARGS) } PG_FUNCTION_INFO_V1(gin_consistent_hstore); -Datum gin_consistent_hstore(PG_FUNCTION_ARGS); +Datum gin_consistent_hstore(PG_FUNCTION_ARGS); Datum gin_consistent_hstore(PG_FUNCTION_ARGS) { StrategyNumber strategy = PG_GETARG_UINT16(1); - bool res = true; + bool res = true; - if ( strategy == HStoreContainsStrategyNumber ) + if (strategy == HStoreContainsStrategyNumber) { - bool *check = (bool *) PG_GETARG_POINTER(0); - HStore *query = PG_GETARG_HS(2); - int i; + bool *check = (bool *) PG_GETARG_POINTER(0); + HStore *query = PG_GETARG_HS(2); + int i; - for(i=0;res && i<2*query->size;i++) - if ( check[i] == false ) + for (i = 0; res && i < 2 * query->size; i++) + if (check[i] == false) res = false; } - else if ( strategy == HStoreExistsStrategyNumber ) + else if (strategy == HStoreExistsStrategyNumber) res = true; else elog(ERROR, "Unsupported strategy number: %d", strategy); PG_RETURN_BOOL(res); } - diff --git a/contrib/hstore/hstore_op.c b/contrib/hstore/hstore_op.c index 74597c34900..bcac30ee6fd 100644 --- a/contrib/hstore/hstore_op.c +++ b/contrib/hstore/hstore_op.c @@ -275,13 +275,13 @@ tconvert(PG_FUNCTION_ARGS) int len; HStore *out; - if ( PG_ARGISNULL(0) ) + if (PG_ARGISNULL(0)) PG_RETURN_NULL(); key = PG_GETARG_TEXT_P(0); - if ( PG_ARGISNULL(1) ) - len = CALCDATASIZE(1, VARSIZE(key) ); + if (PG_ARGISNULL(1)) + len = CALCDATASIZE(1, VARSIZE(key)); else { val = PG_GETARG_TEXT_P(1); @@ -292,7 +292,7 @@ tconvert(PG_FUNCTION_ARGS) out->size = 1; ARRPTR(out)->keylen = VARSIZE(key) - VARHDRSZ; - if ( PG_ARGISNULL(1) ) + if (PG_ARGISNULL(1)) { ARRPTR(out)->vallen = 0; ARRPTR(out)->valisnull = true; @@ -537,18 +537,18 @@ hs_contains(PG_FUNCTION_ARGS) if (entry) { - if ( te->valisnull || entry->valisnull ) + if (te->valisnull || entry->valisnull) { - if ( !(te->valisnull && entry->valisnull) ) + if (!(te->valisnull && entry->valisnull)) res = false; } - else if ( te->vallen != entry->vallen || - strncmp( - vv + entry->pos + entry->keylen, - tv + te->pos + te->keylen, - te->vallen) - ) - res = false; + else if (te->vallen != entry->vallen || + strncmp( + vv + entry->pos + entry->keylen, + tv + te->pos + te->keylen, + te->vallen) + ) + res = false; } else res = false; diff --git a/contrib/intarray/_int_gin.c b/contrib/intarray/_int_gin.c index 22484287862..6856a68e038 100644 --- a/contrib/intarray/_int_gin.c +++ b/contrib/intarray/_int_gin.c @@ -57,16 +57,17 @@ ginint4_queryextract(PG_FUNCTION_ARGS) } } - if ( nentries == 0 ) + if (nentries == 0) { - switch( strategy ) + switch (strategy) { case BooleanSearchStrategy: case RTOverlapStrategyNumber: - *nentries = -1; /* nobody can be found */ - break; - default: /* require fullscan: GIN can't find void arrays */ - break; + *nentries = -1; /* nobody can be found */ + break; + default: /* require fullscan: GIN can't find void + * arrays */ + break; } } diff --git a/contrib/intarray/_int_gist.c b/contrib/intarray/_int_gist.c index 3c34cb67a7a..51cc77b863d 100644 --- a/contrib/intarray/_int_gist.c +++ b/contrib/intarray/_int_gist.c @@ -233,10 +233,11 @@ g_int_decompress(PG_FUNCTION_ARGS) CHECKARRVALID(in); if (ARRISVOID(in)) { - if (in != (ArrayType *) DatumGetPointer(entry->key)) { + if (in != (ArrayType *) DatumGetPointer(entry->key)) + { retval = palloc(sizeof(GISTENTRY)); gistentryinit(*retval, PointerGetDatum(in), - entry->rel, entry->page, entry->offset, FALSE); + entry->rel, entry->page, entry->offset, FALSE); PG_RETURN_POINTER(retval); } diff --git a/contrib/isn/isn.c b/contrib/isn/isn.c index 1dfb940e929..9134fc06d82 100644 --- a/contrib/isn/isn.c +++ b/contrib/isn/isn.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/isn/isn.c,v 1.6 2007/06/05 21:31:03 tgl Exp $ + * $PostgreSQL: pgsql/contrib/isn/isn.c,v 1.7 2007/11/15 21:14:29 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -506,7 +506,7 @@ ean2UPC(char *isn) * Returns the ean13 value of the string. */ static -ean13 + ean13 str2ean(const char *num) { ean13 ean = 0; /* current ean */ diff --git a/contrib/pageinspect/btreefuncs.c b/contrib/pageinspect/btreefuncs.c index 6251fd5b5f9..ce8b97e46ba 100644 --- a/contrib/pageinspect/btreefuncs.c +++ b/contrib/pageinspect/btreefuncs.c @@ -302,9 +302,9 @@ bt_page_items(PG_FUNCTION_ARGS) buffer = ReadBuffer(rel, blkno); /* - * We copy the page into local storage to avoid holding pin on - * the buffer longer than we must, and possibly failing to - * release it at all if the calling query doesn't fetch all rows. + * We copy the page into local storage to avoid holding pin on the + * buffer longer than we must, and possibly failing to release it at + * all if the calling query doesn't fetch all rows. */ mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c index 931c1a50365..31b5b2e642e 100644 --- a/contrib/pageinspect/heapfuncs.c +++ b/contrib/pageinspect/heapfuncs.c @@ -8,17 +8,17 @@ * information as possible, even if it's nonsense. That's because if a * page is corrupt, we don't know why and how exactly it is corrupt, so we * let the user to judge it. - * + * * These functions are restricted to superusers for the fear of introducing - * security holes if the input checking isn't as water-tight as it should. - * You'd need to be superuser to obtain a raw page image anyway, so + * security holes if the input checking isn't as water-tight as it should. + * You'd need to be superuser to obtain a raw page image anyway, so * there's hardly any use case for using these without superuser-rights * anyway. * * Copyright (c) 2007, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/pageinspect/heapfuncs.c,v 1.2 2007/09/12 22:10:25 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pageinspect/heapfuncs.c,v 1.3 2007/11/15 21:14:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -34,10 +34,10 @@ #include "utils/builtins.h" #include "miscadmin.h" -Datum heap_page_items(PG_FUNCTION_ARGS); +Datum heap_page_items(PG_FUNCTION_ARGS); #define GET_TEXT(str_) \ - DirectFunctionCall1(textin, CStringGetDatum(str_)) + DirectFunctionCall1(textin, CStringGetDatum(str_)) /* * bits_to_text @@ -48,12 +48,12 @@ Datum heap_page_items(PG_FUNCTION_ARGS); static char * bits_to_text(bits8 *bits, int len) { - int i; - char *str; + int i; + char *str; str = palloc(len + 1); - - for(i = 0; i < len; i++) + + for (i = 0; i < len; i++) str[i] = (bits[(i / 8)] & (1 << (i % 8))) ? '1' : '0'; str[i] = '\0'; @@ -74,15 +74,15 @@ typedef struct heap_page_items_state TupleDesc tupd; Page page; uint16 offset; -} heap_page_items_state; +} heap_page_items_state; Datum heap_page_items(PG_FUNCTION_ARGS) { - bytea *raw_page = PG_GETARG_BYTEA_P(0); + bytea *raw_page = PG_GETARG_BYTEA_P(0); heap_page_items_state *inter_call_data = NULL; FuncCallContext *fctx; - int raw_page_size; + int raw_page_size; if (!superuser()) ereport(ERROR, @@ -96,10 +96,10 @@ heap_page_items(PG_FUNCTION_ARGS) TupleDesc tupdesc; MemoryContext mctx; - if(raw_page_size < SizeOfPageHeaderData) - ereport(ERROR, + if (raw_page_size < SizeOfPageHeaderData) + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("input page too small (%d bytes)", raw_page_size))); + errmsg("input page too small (%d bytes)", raw_page_size))); fctx = SRF_FIRSTCALL_INIT(); mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); @@ -132,42 +132,42 @@ heap_page_items(PG_FUNCTION_ARGS) ItemId id; Datum values[13]; bool nulls[13]; - uint16 lp_offset; + uint16 lp_offset; uint16 lp_flags; uint16 lp_len; memset(nulls, 0, sizeof(nulls)); /* Extract information from the line pointer */ - + id = PageGetItemId(page, inter_call_data->offset); - lp_offset = ItemIdGetOffset(id); - lp_flags = ItemIdGetFlags(id); - lp_len = ItemIdGetLength(id); + lp_offset = ItemIdGetOffset(id); + lp_flags = ItemIdGetFlags(id); + lp_len = ItemIdGetLength(id); values[0] = UInt16GetDatum(inter_call_data->offset); values[1] = UInt16GetDatum(lp_offset); values[2] = UInt16GetDatum(lp_flags); values[3] = UInt16GetDatum(lp_len); - /* We do just enough validity checking to make sure we don't - * reference data outside the page passed to us. The page - * could be corrupt in many other ways, but at least we won't - * crash. + /* + * We do just enough validity checking to make sure we don't reference + * data outside the page passed to us. The page could be corrupt in + * many other ways, but at least we won't crash. */ if (ItemIdHasStorage(id) && lp_len >= sizeof(HeapTupleHeader) && lp_offset == MAXALIGN(lp_offset) && lp_offset + lp_len <= raw_page_size) { - HeapTupleHeader tuphdr; - int bits_len; + HeapTupleHeader tuphdr; + int bits_len; /* Extract information from the tuple header */ tuphdr = (HeapTupleHeader) PageGetItem(page, id); - + values[4] = UInt32GetDatum(HeapTupleHeaderGetXmin(tuphdr)); values[5] = UInt32GetDatum(HeapTupleHeaderGetXmax(tuphdr)); values[6] = UInt32GetDatum(HeapTupleHeaderGetRawCommandId(tuphdr)); /* shared with xvac */ @@ -176,22 +176,23 @@ heap_page_items(PG_FUNCTION_ARGS) values[9] = UInt16GetDatum(tuphdr->t_infomask); values[10] = UInt8GetDatum(tuphdr->t_hoff); - /* We already checked that the item as is completely within - * the raw page passed to us, with the length given in the line + /* + * We already checked that the item as is completely within the + * raw page passed to us, with the length given in the line * pointer.. Let's check that t_hoff doesn't point over lp_len, * before using it to access t_bits and oid. */ - if (tuphdr->t_hoff >= sizeof(HeapTupleHeader) && + if (tuphdr->t_hoff >= sizeof(HeapTupleHeader) && tuphdr->t_hoff <= lp_len) { if (tuphdr->t_infomask & HEAP_HASNULL) { - bits_len = tuphdr->t_hoff - - (((char *)tuphdr->t_bits) - ((char *)tuphdr)); + bits_len = tuphdr->t_hoff - + (((char *) tuphdr->t_bits) -((char *) tuphdr)); values[11] = GET_TEXT( - bits_to_text(tuphdr->t_bits, bits_len * 8)); - } + bits_to_text(tuphdr->t_bits, bits_len * 8)); + } else nulls[11] = true; @@ -208,17 +209,19 @@ heap_page_items(PG_FUNCTION_ARGS) } else { - /* The line pointer is not used, or it's invalid. Set the rest of - * the fields to NULL */ - int i; + /* + * The line pointer is not used, or it's invalid. Set the rest of + * the fields to NULL + */ + int i; - for(i = 4; i <= 12; i++) + for (i = 4; i <= 12; i++) nulls[i] = true; } - /* Build and return the result tuple. */ - resultTuple = heap_form_tuple(inter_call_data->tupd, values, nulls); - result = HeapTupleGetDatum(resultTuple); + /* Build and return the result tuple. */ + resultTuple = heap_form_tuple(inter_call_data->tupd, values, nulls); + result = HeapTupleGetDatum(resultTuple); inter_call_data->offset++; diff --git a/contrib/pageinspect/rawpage.c b/contrib/pageinspect/rawpage.c index 80632be9fb5..7d69fd5e22e 100644 --- a/contrib/pageinspect/rawpage.c +++ b/contrib/pageinspect/rawpage.c @@ -8,7 +8,7 @@ * Copyright (c) 2007, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/pageinspect/rawpage.c,v 1.2 2007/09/21 21:25:42 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pageinspect/rawpage.c,v 1.3 2007/11/15 21:14:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -26,8 +26,8 @@ PG_MODULE_MAGIC; -Datum get_raw_page(PG_FUNCTION_ARGS); -Datum page_header(PG_FUNCTION_ARGS); +Datum get_raw_page(PG_FUNCTION_ARGS); +Datum page_header(PG_FUNCTION_ARGS); /* * get_raw_page @@ -43,9 +43,9 @@ get_raw_page(PG_FUNCTION_ARGS) uint32 blkno = PG_GETARG_UINT32(1); Relation rel; - RangeVar *relrv; - bytea *raw_page; - char *raw_page_data; + RangeVar *relrv; + bytea *raw_page; + char *raw_page_data; Buffer buf; if (!superuser()) @@ -61,12 +61,12 @@ get_raw_page(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("cannot get raw page from view \"%s\"", - RelationGetRelationName(rel)))); + RelationGetRelationName(rel)))); if (rel->rd_rel->relkind == RELKIND_COMPOSITE_TYPE) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("cannot get raw page from composite type \"%s\"", - RelationGetRelationName(rel)))); + RelationGetRelationName(rel)))); if (blkno >= RelationGetNumberOfBlocks(rel)) elog(ERROR, "block number %u is out of range for relation \"%s\"", @@ -125,13 +125,13 @@ page_header(PG_FUNCTION_ARGS) raw_page_size = VARSIZE(raw_page) - VARHDRSZ; /* - * Check that enough data was supplied, so that we don't try to access - * fields outside the supplied buffer. + * Check that enough data was supplied, so that we don't try to access + * fields outside the supplied buffer. */ - if(raw_page_size < sizeof(PageHeaderData)) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("input page too small (%d bytes)", raw_page_size))); + if (raw_page_size < sizeof(PageHeaderData)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("input page too small (%d bytes)", raw_page_size))); page = (PageHeader) VARDATA(raw_page); @@ -154,12 +154,12 @@ page_header(PG_FUNCTION_ARGS) values[7] = UInt16GetDatum(PageGetPageLayoutVersion(page)); values[8] = TransactionIdGetDatum(page->pd_prune_xid); - /* Build and return the tuple. */ + /* Build and return the tuple. */ memset(nulls, 0, sizeof(nulls)); - tuple = heap_form_tuple(tupdesc, values, nulls); - result = HeapTupleGetDatum(tuple); + tuple = heap_form_tuple(tupdesc, values, nulls); + result = HeapTupleGetDatum(tuple); PG_RETURN_DATUM(result); } diff --git a/contrib/pg_buffercache/pg_buffercache_pages.c b/contrib/pg_buffercache/pg_buffercache_pages.c index e7c5b06a563..21ac8da1764 100644 --- a/contrib/pg_buffercache/pg_buffercache_pages.c +++ b/contrib/pg_buffercache/pg_buffercache_pages.c @@ -3,7 +3,7 @@ * pg_buffercache_pages.c * display some contents of the buffer cache * - * $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v 1.13 2007/07/16 21:20:36 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v 1.14 2007/11/15 21:14:30 momjian Exp $ *------------------------------------------------------------------------- */ #include "postgres.h" @@ -149,9 +149,9 @@ pg_buffercache_pages(PG_FUNCTION_ARGS) /* * And release locks. We do this in reverse order for two reasons: * (1) Anyone else who needs more than one of the locks will be trying - * to lock them in increasing order; we don't want to release the other - * process until it can get all the locks it needs. - * (2) This avoids O(N^2) behavior inside LWLockRelease. + * to lock them in increasing order; we don't want to release the + * other process until it can get all the locks it needs. (2) This + * avoids O(N^2) behavior inside LWLockRelease. */ for (i = NUM_BUFFER_PARTITIONS; --i >= 0;) LWLockRelease(FirstBufMappingLock + i); diff --git a/contrib/pg_standby/pg_standby.c b/contrib/pg_standby/pg_standby.c index 35c90fde484..41b3500dd11 100644 --- a/contrib/pg_standby/pg_standby.c +++ b/contrib/pg_standby/pg_standby.c @@ -1,12 +1,12 @@ /* * pg_standby.c - * + * * Production-ready example of how to create a Warm Standby - * database server using continuous archiving as a + * database server using continuous archiving as a * replication mechanism * * We separate the parameters for archive and nextWALfile - * so that we can check the archive exists, even if the + * so that we can check the archive exists, even if the * WAL file doesn't (yet). * * This program will be executed once in full for each file @@ -14,9 +14,9 @@ * * It is designed to cater to a variety of needs, as well * providing a customizable section. - * - * Original author: Simon Riggs [email protected] - * Current maintainer: Simon Riggs + * + * Original author: Simon Riggs [email protected] + * Current maintainer: Simon Riggs */ #include "postgres_fe.h" @@ -26,7 +26,7 @@ #include <signal.h> #ifdef WIN32 -int getopt(int argc, char * const argv[], const char *optstring); +int getopt(int argc, char *const argv[], const char *optstring); #else #include <sys/time.h> #include <unistd.h> @@ -34,42 +34,44 @@ int getopt(int argc, char * const argv[], const char *optstring); #ifdef HAVE_GETOPT_H #include <getopt.h> #endif - #endif /* ! WIN32 */ extern char *optarg; extern int optind; /* Options and defaults */ -int sleeptime = 5; /* amount of time to sleep between file checks */ -int waittime = -1; /* how long we have been waiting, -1 no wait yet */ -int maxwaittime = 0; /* how long are we prepared to wait for? */ -int keepfiles = 0; /* number of WAL files to keep, 0 keep all */ -int maxretries = 3; /* number of retries on restore command */ -bool debug = false; /* are we debugging? */ -bool triggered = false; /* have we been triggered? */ -bool need_cleanup = false; /* do we need to remove files from archive? */ +int sleeptime = 5; /* amount of time to sleep between file checks */ +int waittime = -1; /* how long we have been waiting, -1 no wait + * yet */ +int maxwaittime = 0; /* how long are we prepared to wait for? */ +int keepfiles = 0; /* number of WAL files to keep, 0 keep all */ +int maxretries = 3; /* number of retries on restore command */ +bool debug = false; /* are we debugging? */ +bool triggered = false; /* have we been triggered? */ +bool need_cleanup = false; /* do we need to remove files from + * archive? */ static volatile sig_atomic_t signaled = false; -char *archiveLocation; /* where to find the archive? */ -char *triggerPath; /* where to find the trigger file? */ -char *xlogFilePath; /* where we are going to restore to */ -char *nextWALFileName; /* the file we need to get from archive */ -char *restartWALFileName; /* the file from which we can restart restore */ -char *priorWALFileName; /* the file we need to get from archive */ -char WALFilePath[MAXPGPATH];/* the file path including archive */ -char restoreCommand[MAXPGPATH]; /* run this to restore */ -char exclusiveCleanupFileName[MAXPGPATH]; /* the file we need to get from archive */ +char *archiveLocation; /* where to find the archive? */ +char *triggerPath; /* where to find the trigger file? */ +char *xlogFilePath; /* where we are going to restore to */ +char *nextWALFileName; /* the file we need to get from archive */ +char *restartWALFileName; /* the file from which we can restart restore */ +char *priorWALFileName; /* the file we need to get from archive */ +char WALFilePath[MAXPGPATH]; /* the file path including archive */ +char restoreCommand[MAXPGPATH]; /* run this to restore */ +char exclusiveCleanupFileName[MAXPGPATH]; /* the file we need to + * get from archive */ #define RESTORE_COMMAND_COPY 0 #define RESTORE_COMMAND_LINK 1 -int restoreCommandType; +int restoreCommandType; #define XLOG_DATA 0 #define XLOG_HISTORY 1 #define XLOG_BACKUP_LABEL 2 -int nextWALFileType; +int nextWALFileType; #define SET_RESTORE_COMMAND(cmd, arg1, arg2) \ snprintf(restoreCommand, MAXPGPATH, cmd " \"%s\" \"%s\"", arg1, arg2) @@ -86,21 +88,21 @@ struct stat stat_buf; * accessible directory. If you want to make other assumptions, * such as using a vendor-specific archive and access API, these * routines are the ones you'll need to change. You're - * enouraged to submit any changes to [email protected] - * or personally to the current maintainer. Those changes may be + * enouraged to submit any changes to [email protected] + * or personally to the current maintainer. Those changes may be * folded in to later versions of this program. */ -#define XLOG_DATA_FNAME_LEN 24 +#define XLOG_DATA_FNAME_LEN 24 /* Reworked from access/xlog_internal.h */ #define XLogFileName(fname, tli, log, seg) \ snprintf(fname, XLOG_DATA_FNAME_LEN + 1, "%08X%08X%08X", tli, log, seg) /* - * Initialize allows customized commands into the warm standby program. + * Initialize allows customized commands into the warm standby program. * - * As an example, and probably the common case, we use either - * cp/ln commands on *nix, or copy/move command on Windows. + * As an example, and probably the common case, we use either + * cp/ln commands on *nix, or copy/move command on Windows. * */ static void @@ -111,79 +113,79 @@ CustomizableInitialize(void) switch (restoreCommandType) { case RESTORE_COMMAND_LINK: - SET_RESTORE_COMMAND("mklink",WALFilePath, xlogFilePath); + SET_RESTORE_COMMAND("mklink", WALFilePath, xlogFilePath); case RESTORE_COMMAND_COPY: default: - SET_RESTORE_COMMAND("copy",WALFilePath, xlogFilePath); + SET_RESTORE_COMMAND("copy", WALFilePath, xlogFilePath); break; - } + } #else snprintf(WALFilePath, MAXPGPATH, "%s/%s", archiveLocation, nextWALFileName); switch (restoreCommandType) { case RESTORE_COMMAND_LINK: #if HAVE_WORKING_LINK - SET_RESTORE_COMMAND("ln -s -f",WALFilePath, xlogFilePath); + SET_RESTORE_COMMAND("ln -s -f", WALFilePath, xlogFilePath); break; #endif case RESTORE_COMMAND_COPY: default: - SET_RESTORE_COMMAND("cp",WALFilePath, xlogFilePath); + SET_RESTORE_COMMAND("cp", WALFilePath, xlogFilePath); break; - } + } #endif /* - * This code assumes that archiveLocation is a directory - * You may wish to add code to check for tape libraries, etc.. - * So, since it is a directory, we use stat to test if its accessible + * This code assumes that archiveLocation is a directory You may wish to + * add code to check for tape libraries, etc.. So, since it is a + * directory, we use stat to test if its accessible */ if (stat(archiveLocation, &stat_buf) != 0) { - fprintf(stderr, "pg_standby: archiveLocation \"%s\" does not exist\n", archiveLocation); + fprintf(stderr, "pg_standby: archiveLocation \"%s\" does not exist\n", archiveLocation); fflush(stderr); - exit(2); + exit(2); } } /* * CustomizableNextWALFileReady() - * + * * Is the requested file ready yet? */ -static bool +static bool CustomizableNextWALFileReady() { if (stat(WALFilePath, &stat_buf) == 0) { /* - * If its a backup file, return immediately - * If its a regular file return only if its the right size already + * If its a backup file, return immediately If its a regular file + * return only if its the right size already */ if (strlen(nextWALFileName) > 24 && strspn(nextWALFileName, "0123456789ABCDEF") == 24 && - strcmp(nextWALFileName + strlen(nextWALFileName) - strlen(".backup"), - ".backup") == 0) + strcmp(nextWALFileName + strlen(nextWALFileName) - strlen(".backup"), + ".backup") == 0) { nextWALFileType = XLOG_BACKUP_LABEL; - return true; + return true; } - else - if (stat_buf.st_size == XLOG_SEG_SIZE) - { + else if (stat_buf.st_size == XLOG_SEG_SIZE) + { #ifdef WIN32 - /* - * Windows reports that the file has the right number of bytes - * even though the file is still being copied and cannot be - * opened by pg_standby yet. So we wait for sleeptime secs - * before attempting to restore. If that is not enough, we - * will rely on the retry/holdoff mechanism. - */ - pg_usleep(sleeptime * 1000000L); + + /* + * Windows reports that the file has the right number of bytes + * even though the file is still being copied and cannot be opened + * by pg_standby yet. So we wait for sleeptime secs before + * attempting to restore. If that is not enough, we will rely on + * the retry/holdoff mechanism. + */ + pg_usleep(sleeptime * 1000000L); #endif - nextWALFileType = XLOG_DATA; - return true; - } + nextWALFileType = XLOG_DATA; + return true; + } /* * If still too small, wait until it is the correct size @@ -192,10 +194,10 @@ CustomizableNextWALFileReady() { if (debug) { - fprintf(stderr, "file size greater than expected\n"); + fprintf(stderr, "file size greater than expected\n"); fflush(stderr); } - exit(3); + exit(3); } } @@ -212,35 +214,36 @@ CustomizableCleanupPriorWALFiles(void) */ if (nextWALFileType == XLOG_DATA) { - int rc; - DIR *xldir; - struct dirent *xlde; + int rc; + DIR *xldir; + struct dirent *xlde; /* - * Assume its OK to keep failing. The failure situation may change over - * time, so we'd rather keep going on the main processing than fail - * because we couldnt clean up yet. + * Assume its OK to keep failing. The failure situation may change + * over time, so we'd rather keep going on the main processing than + * fail because we couldnt clean up yet. */ if ((xldir = opendir(archiveLocation)) != NULL) { while ((xlde = readdir(xldir)) != NULL) { /* - * We ignore the timeline part of the XLOG segment identifiers in - * deciding whether a segment is still needed. This ensures that we - * won't prematurely remove a segment from a parent timeline. We could - * probably be a little more proactive about removing segments of - * non-parent timelines, but that would be a whole lot more - * complicated. + * We ignore the timeline part of the XLOG segment identifiers + * in deciding whether a segment is still needed. This + * ensures that we won't prematurely remove a segment from a + * parent timeline. We could probably be a little more + * proactive about removing segments of non-parent timelines, + * but that would be a whole lot more complicated. * - * We use the alphanumeric sorting property of the filenames to decide - * which ones are earlier than the exclusiveCleanupFileName file. - * Note that this means files are not removed in the order they were - * originally written, in case this worries you. + * We use the alphanumeric sorting property of the filenames + * to decide which ones are earlier than the + * exclusiveCleanupFileName file. Note that this means files + * are not removed in the order they were originally written, + * in case this worries you. */ if (strlen(xlde->d_name) == XLOG_DATA_FNAME_LEN && strspn(xlde->d_name, "0123456789ABCDEF") == XLOG_DATA_FNAME_LEN && - strcmp(xlde->d_name + 8, exclusiveCleanupFileName + 8) < 0) + strcmp(xlde->d_name + 8, exclusiveCleanupFileName + 8) < 0) { #ifdef WIN32 snprintf(WALFilePath, MAXPGPATH, "%s\\%s", archiveLocation, xlde->d_name); @@ -249,7 +252,7 @@ CustomizableCleanupPriorWALFiles(void) #endif if (debug) - fprintf(stderr, "\nremoving \"%s\"", WALFilePath); + fprintf(stderr, "\nremoving \"%s\"", WALFilePath); rc = unlink(WALFilePath); if (rc != 0) @@ -264,7 +267,7 @@ CustomizableCleanupPriorWALFiles(void) fprintf(stderr, "\n"); } else - fprintf(stderr, "pg_standby: archiveLocation \"%s\" open error\n", archiveLocation); + fprintf(stderr, "pg_standby: archiveLocation \"%s\" open error\n", archiveLocation); closedir(xldir); fflush(stderr); @@ -278,19 +281,19 @@ CustomizableCleanupPriorWALFiles(void) /* * SetWALFileNameForCleanup() - * + * * Set the earliest WAL filename that we want to keep on the archive - * and decide whether we need_cleanup + * and decide whether we need_cleanup */ static bool SetWALFileNameForCleanup(void) { - uint32 tli = 1, - log = 0, - seg = 0; - uint32 log_diff = 0, - seg_diff = 0; - bool cleanup = false; + uint32 tli = 1, + log = 0, + seg = 0; + uint32 log_diff = 0, + seg_diff = 0; + bool cleanup = false; if (restartWALFileName) { @@ -305,7 +308,7 @@ SetWALFileNameForCleanup(void) { log_diff = keepfiles / MaxSegmentsPerLogFile; seg_diff = keepfiles % MaxSegmentsPerLogFile; - if (seg_diff > seg) + if (seg_diff > seg) { log_diff++; seg = MaxSegmentsPerLogFile - seg_diff; @@ -333,31 +336,30 @@ SetWALFileNameForCleanup(void) /* * CheckForExternalTrigger() - * + * * Is there a trigger file? */ -static bool +static bool CheckForExternalTrigger(void) { - int rc; + int rc; /* - * Look for a trigger file, if that option has been selected + * Look for a trigger file, if that option has been selected * - * We use stat() here because triggerPath is always a file - * rather than potentially being in an archive + * We use stat() here because triggerPath is always a file rather than + * potentially being in an archive */ if (triggerPath && stat(triggerPath, &stat_buf) == 0) { - fprintf(stderr, "trigger file found\n"); + fprintf(stderr, "trigger file found\n"); fflush(stderr); /* - * If trigger file found, we *must* delete it. Here's why: - * When recovery completes, we will be asked again - * for the same file from the archive using pg_standby - * so must remove trigger file so we can reload file again - * and come up correctly. + * If trigger file found, we *must* delete it. Here's why: When + * recovery completes, we will be asked again for the same file from + * the archive using pg_standby so must remove trigger file so we can + * reload file again and come up correctly. */ rc = unlink(triggerPath); if (rc != 0) @@ -374,14 +376,14 @@ CheckForExternalTrigger(void) /* * RestoreWALFileForRecovery() - * + * * Perform the action required to restore the file from archive */ static bool RestoreWALFileForRecovery(void) { - int rc = 0; - int numretries = 0; + int rc = 0; + int numretries = 0; if (debug) { @@ -401,7 +403,7 @@ RestoreWALFileForRecovery(void) } return true; } - pg_usleep(numretries++ * sleeptime * 1000000L); + pg_usleep(numretries++ * sleeptime * 1000000L); } /* @@ -441,13 +443,13 @@ sighandler(int sig) } /*------------ MAIN ----------------------------------------*/ -int +int main(int argc, char **argv) { int c; - (void) signal(SIGINT, sighandler); - (void) signal(SIGQUIT, sighandler); + (void) signal(SIGINT, sighandler); + (void) signal(SIGQUIT, sighandler); while ((c = getopt(argc, argv, "cdk:lr:s:t:w:")) != -1) { @@ -492,8 +494,8 @@ main(int argc, char **argv) case 't': /* Trigger file */ triggerPath = optarg; if (CheckForExternalTrigger()) - exit(1); /* Normal exit, with non-zero */ - break; + exit(1); /* Normal exit, with non-zero */ + break; case 'w': /* Max wait time */ maxwaittime = atoi(optarg); if (maxwaittime < 0) @@ -510,7 +512,7 @@ main(int argc, char **argv) } } - /* + /* * Parameter checking - after checking to see if trigger file present */ if (argc == 1) @@ -521,8 +523,8 @@ main(int argc, char **argv) /* * We will go to the archiveLocation to get nextWALFileName. - * nextWALFileName may not exist yet, which would not be an error, - * so we separate the archiveLocation and nextWALFileName so we can check + * nextWALFileName may not exist yet, which would not be an error, so we + * separate the archiveLocation and nextWALFileName so we can check * separately whether archiveLocation exists, if not that is an error */ if (optind < argc) @@ -532,7 +534,7 @@ main(int argc, char **argv) } else { - fprintf(stderr, "pg_standby: must specify archiveLocation\n"); + fprintf(stderr, "pg_standby: must specify archiveLocation\n"); usage(); exit(2); } @@ -544,7 +546,7 @@ main(int argc, char **argv) } else { - fprintf(stderr, "pg_standby: use %%f to specify nextWALFileName\n"); + fprintf(stderr, "pg_standby: use %%f to specify nextWALFileName\n"); usage(); exit(2); } @@ -556,7 +558,7 @@ main(int argc, char **argv) } else { - fprintf(stderr, "pg_standby: use %%p to specify xlogFilePath\n"); + fprintf(stderr, "pg_standby: use %%p to specify xlogFilePath\n"); usage(); exit(2); } @@ -573,14 +575,14 @@ main(int argc, char **argv) if (debug) { - fprintf(stderr, "\nTrigger file : %s", triggerPath ? triggerPath : "<not set>"); - fprintf(stderr, "\nWaiting for WAL file : %s", nextWALFileName); - fprintf(stderr, "\nWAL file path : %s", WALFilePath); - fprintf(stderr, "\nRestoring to... : %s", xlogFilePath); - fprintf(stderr, "\nSleep interval : %d second%s", - sleeptime, (sleeptime > 1 ? "s" : " ")); - fprintf(stderr, "\nMax wait interval : %d %s", - maxwaittime, (maxwaittime > 0 ? "seconds" : "forever")); + fprintf(stderr, "\nTrigger file : %s", triggerPath ? triggerPath : "<not set>"); + fprintf(stderr, "\nWaiting for WAL file : %s", nextWALFileName); + fprintf(stderr, "\nWAL file path : %s", WALFilePath); + fprintf(stderr, "\nRestoring to... : %s", xlogFilePath); + fprintf(stderr, "\nSleep interval : %d second%s", + sleeptime, (sleeptime > 1 ? "s" : " ")); + fprintf(stderr, "\nMax wait interval : %d %s", + maxwaittime, (maxwaittime > 0 ? "seconds" : "forever")); fprintf(stderr, "\nCommand for restore : %s", restoreCommand); fprintf(stderr, "\nKeep archive history : %s and later", exclusiveCleanupFileName); fflush(stderr); @@ -609,20 +611,20 @@ main(int argc, char **argv) } } - /* + /* * Main wait loop */ while (!CustomizableNextWALFileReady() && !triggered) { if (sleeptime <= 60) - pg_usleep(sleeptime * 1000000L); + pg_usleep(sleeptime * 1000000L); if (signaled) { triggered = true; if (debug) { - fprintf(stderr, "\nsignaled to exit\n"); + fprintf(stderr, "\nsignaled to exit\n"); fflush(stderr); } } @@ -631,36 +633,34 @@ main(int argc, char **argv) if (debug) { - fprintf(stderr, "\nWAL file not present yet."); + fprintf(stderr, "\nWAL file not present yet."); if (triggerPath) - fprintf(stderr, " Checking for trigger file..."); + fprintf(stderr, " Checking for trigger file..."); fflush(stderr); } waittime += sleeptime; - + if (!triggered && (CheckForExternalTrigger() || (waittime >= maxwaittime && maxwaittime > 0))) { triggered = true; if (debug && waittime >= maxwaittime && maxwaittime > 0) - fprintf(stderr, "\nTimed out after %d seconds\n",waittime); + fprintf(stderr, "\nTimed out after %d seconds\n", waittime); } } } - /* - * Action on exit + /* + * Action on exit */ if (triggered) - exit(1); /* Normal exit, with non-zero */ - - /* - * Once we have restored this file successfully we - * can remove some prior WAL files. - * If this restore fails we musn't remove any - * file because some of them will be requested again - * immediately after the failed restore, or when - * we restart recovery. + exit(1); /* Normal exit, with non-zero */ + + /* + * Once we have restored this file successfully we can remove some prior + * WAL files. If this restore fails we musn't remove any file because some + * of them will be requested again immediately after the failed restore, + * or when we restart recovery. */ if (RestoreWALFileForRecovery() && need_cleanup) CustomizableCleanupPriorWALFiles(); diff --git a/contrib/pg_trgm/trgm_gin.c b/contrib/pg_trgm/trgm_gin.c index ed2ba0eae75..33d005ae9a0 100644 --- a/contrib/pg_trgm/trgm_gin.c +++ b/contrib/pg_trgm/trgm_gin.c @@ -16,23 +16,23 @@ Datum gin_trgm_consistent(PG_FUNCTION_ARGS); Datum gin_extract_trgm(PG_FUNCTION_ARGS) { - text *val = (text *) PG_GETARG_TEXT_P(0); - int32 *nentries = (int32 *) PG_GETARG_POINTER(1); - Datum *entries = NULL; - TRGM *trg; + text *val = (text *) PG_GETARG_TEXT_P(0); + int32 *nentries = (int32 *) PG_GETARG_POINTER(1); + Datum *entries = NULL; + TRGM *trg; int4 trglen; - + *nentries = 0; - + trg = generate_trgm(VARDATA(val), VARSIZE(val) - VARHDRSZ); trglen = ARRNELEM(trg); - + if (trglen > 0) { - trgm *ptr; - int4 i = 0, - item; - + trgm *ptr; + int4 i = 0, + item; + *nentries = (int32) trglen; entries = (Datum *) palloc(sizeof(Datum) * trglen); @@ -41,7 +41,7 @@ gin_extract_trgm(PG_FUNCTION_ARGS) { item = TRGMINT(ptr); entries[i++] = Int32GetDatum(item); - + ptr++; } } @@ -52,20 +52,20 @@ gin_extract_trgm(PG_FUNCTION_ARGS) Datum gin_trgm_consistent(PG_FUNCTION_ARGS) { - bool *check = (bool *) PG_GETARG_POINTER(0); - text *query = (text *) PG_GETARG_TEXT_P(2); + bool *check = (bool *) PG_GETARG_POINTER(0); + text *query = (text *) PG_GETARG_TEXT_P(2); bool res = FALSE; - TRGM *trg; + TRGM *trg; int4 i, trglen, ntrue = 0; - + trg = generate_trgm(VARDATA(query), VARSIZE(query) - VARHDRSZ); trglen = ARRNELEM(trg); - + for (i = 0; i < trglen; i++) if (check[i]) - ntrue ++; + ntrue++; #ifdef DIVUNION res = (trglen == ntrue) ? true : ((((((float4) ntrue) / ((float4) (trglen - ntrue)))) >= trgm_limit) ? true : false); diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index a5e57ce9550..5fe48b96a3d 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -1,5 +1,5 @@ /* - * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.73 2007/10/22 10:40:47 mha Exp $ + * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.74 2007/11/15 21:14:31 momjian Exp $ * * pgbench: a simple benchmark program for PostgreSQL * written by Tatsuo Ishii @@ -53,9 +53,9 @@ extern int optind; /* max number of clients allowed */ #ifdef FD_SETSIZE -#define MAXCLIENTS (FD_SETSIZE - 10) +#define MAXCLIENTS (FD_SETSIZE - 10) #else -#define MAXCLIENTS 1024 +#define MAXCLIENTS 1024 #endif int nclients = 1; /* default number of simulated clients */ @@ -201,7 +201,7 @@ getrand(int min, int max) /* call PQexec() and exit() on failure */ static void -executeStatement(PGconn *con, const char* sql) +executeStatement(PGconn *con, const char *sql) { PGresult *res; @@ -262,7 +262,7 @@ discard_response(CState * state) /* check to see if the SQL result was good */ static int -check(CState *state, PGresult *res, int n) +check(CState * state, PGresult *res, int n) { CState *st = &state[n]; @@ -275,7 +275,7 @@ check(CState *state, PGresult *res, int n) default: fprintf(stderr, "Client %d aborted in state %d: %s", n, st->state, PQerrorMessage(st->con)); - remains--; /* I've aborted */ + remains--; /* I've aborted */ PQfinish(st->con); st->con = NULL; return (-1); @@ -452,12 +452,12 @@ top: if (st->sleeping) { /* are we sleeping? */ - int usec; - struct timeval now; + int usec; + struct timeval now; gettimeofday(&now, NULL); usec = (st->until.tv_sec - now.tv_sec) * 1000000 + - st->until.tv_usec - now.tv_usec; + st->until.tv_usec - now.tv_usec; if (usec <= 0) st->sleeping = 0; /* Done sleeping, go ahead with next command */ else @@ -798,11 +798,11 @@ init(void) "drop table if exists accounts", "create table accounts(aid int not null,bid int,abalance int,filler char(84)) with (fillfactor=%d)", "drop table if exists history", - "create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22))"}; + "create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22))"}; static char *DDLAFTERs[] = { "alter table branches add primary key (bid)", "alter table tellers add primary key (tid)", - "alter table accounts add primary key (aid)"}; + "alter table accounts add primary key (aid)"}; char sql[256]; @@ -821,7 +821,8 @@ init(void) (strstr(DDLs[i], "create table tellers") == DDLs[i]) || (strstr(DDLs[i], "create table accounts") == DDLs[i])) { - char ddl_stmt[128]; + char ddl_stmt[128]; + snprintf(ddl_stmt, 128, DDLs[i], fillfactor); executeStatement(con, ddl_stmt); continue; @@ -990,7 +991,7 @@ process_commands(char *buf) pg_strcasecmp(my_commands->argv[2], "ms") != 0 && pg_strcasecmp(my_commands->argv[2], "s")) { - fprintf(stderr, "%s: unknown time unit '%s' - must be us, ms or s\n", + fprintf(stderr, "%s: unknown time unit '%s' - must be us, ms or s\n", my_commands->argv[0], my_commands->argv[2]); return NULL; } @@ -1204,7 +1205,7 @@ main(int argc, char **argv) int c; int is_init_mode = 0; /* initialize mode? */ int is_no_vacuum = 0; /* no vacuum at all before testing? */ - int do_vacuum_accounts = 0; /* do vacuum accounts before testing? */ + int do_vacuum_accounts = 0; /* do vacuum accounts before testing? */ int debug = 0; /* debug flag */ int ttype = 0; /* transaction type. 0: TPC-B, 1: SELECT only, * 2: skip update of branches and tellers */ @@ -1308,7 +1309,7 @@ main(int argc, char **argv) fprintf(stderr, "Use limit/ulimit to increase the limit before using pgbench.\n"); exit(1); } -#endif /* HAVE_GETRLIMIT */ +#endif /* HAVE_GETRLIMIT */ break; case 'C': is_connect = 1; @@ -1615,8 +1616,8 @@ main(int argc, char **argv) if (state[i].sleeping) { - int this_usec; - int sock = PQsocket(state[i].con); + int this_usec; + int sock = PQsocket(state[i].con); if (min_usec < 0) { @@ -1625,7 +1626,7 @@ main(int argc, char **argv) } this_usec = (state[i].until.tv_sec - now.tv_sec) * 1000000 + - state[i].until.tv_usec - now.tv_usec; + state[i].until.tv_usec - now.tv_usec; if (this_usec > 0 && (min_usec == 0 || this_usec < min_usec)) min_usec = this_usec; @@ -1657,11 +1658,11 @@ main(int argc, char **argv) timeout.tv_usec = min_usec % 1000000; nsocks = select(maxsock + 1, &input_mask, (fd_set *) NULL, - (fd_set *) NULL, &timeout); + (fd_set *) NULL, &timeout); } else nsocks = select(maxsock + 1, &input_mask, (fd_set *) NULL, - (fd_set *) NULL, (struct timeval *) NULL); + (fd_set *) NULL, (struct timeval *) NULL); if (nsocks < 0) { if (errno == EINTR) diff --git a/contrib/pgcrypto/blf.c b/contrib/pgcrypto/blf.c index 93a6183fcad..7138ffa9033 100644 --- a/contrib/pgcrypto/blf.c +++ b/contrib/pgcrypto/blf.c @@ -1,7 +1,7 @@ /* * Butchered version of sshblowf.c from putty-0.59. * - * $PostgreSQL: pgsql/contrib/pgcrypto/blf.c,v 1.8 2007/03/28 22:48:58 neilc Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/blf.c,v 1.9 2007/11/15 21:14:31 momjian Exp $ */ /* @@ -251,7 +251,7 @@ static const uint32 sbox3[] = { static void blowfish_encrypt(uint32 xL, uint32 xR, uint32 *output, - BlowfishContext *ctx) + BlowfishContext * ctx) { uint32 *S0 = ctx->S0; uint32 *S1 = ctx->S1; @@ -285,7 +285,7 @@ blowfish_encrypt(uint32 xL, uint32 xR, uint32 *output, static void blowfish_decrypt(uint32 xL, uint32 xR, uint32 *output, - BlowfishContext *ctx) + BlowfishContext * ctx) { uint32 *S0 = ctx->S0; uint32 *S1 = ctx->S1; @@ -318,7 +318,7 @@ blowfish_decrypt(uint32 xL, uint32 xR, uint32 *output, } void -blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx) +blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx) { uint32 xL, xR, @@ -351,7 +351,7 @@ blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx) } void -blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx) +blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx) { uint32 xL, xR, @@ -384,7 +384,7 @@ blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx) } void -blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx) +blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx) { uint32 xL, xR, @@ -405,7 +405,7 @@ blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx) } void -blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx) +blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx) { uint32 xL, xR, @@ -426,7 +426,7 @@ blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx) } void -blowfish_setkey(BlowfishContext *ctx, +blowfish_setkey(BlowfishContext * ctx, const uint8 *key, short keybytes) { uint32 *S0 = ctx->S0; @@ -437,7 +437,7 @@ blowfish_setkey(BlowfishContext *ctx, uint32 str[2]; int i; - Assert(keybytes > 0 && keybytes <= (448/8)); + Assert(keybytes > 0 && keybytes <= (448 / 8)); for (i = 0; i < 18; i++) { @@ -492,9 +492,8 @@ blowfish_setkey(BlowfishContext *ctx, } void -blowfish_setiv(BlowfishContext *ctx, const uint8 *iv) +blowfish_setiv(BlowfishContext * ctx, const uint8 *iv) { ctx->iv0 = GET_32BIT_MSB_FIRST(iv); ctx->iv1 = GET_32BIT_MSB_FIRST(iv + 4); } - diff --git a/contrib/pgcrypto/blf.h b/contrib/pgcrypto/blf.h index 7e11dc9aeb4..6e280d8754f 100644 --- a/contrib/pgcrypto/blf.h +++ b/contrib/pgcrypto/blf.h @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/pgcrypto/blf.h,v 1.6 2007/03/28 22:48:58 neilc Exp $ */ +/* $PostgreSQL: pgsql/contrib/pgcrypto/blf.h,v 1.7 2007/11/15 21:14:31 momjian Exp $ */ /* * PuTTY is copyright 1997-2007 Simon Tatham. * @@ -35,14 +35,12 @@ typedef struct S3[256], P[18]; uint32 iv0, - iv1; /* for CBC mode */ -} BlowfishContext; - -void blowfish_setkey(BlowfishContext *ctx, const uint8 *key, short keybytes); -void blowfish_setiv(BlowfishContext *ctx, const uint8 *iv); -void blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx); -void blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext *ctx); -void blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx); -void blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext *ctx); - + iv1; /* for CBC mode */ +} BlowfishContext; +void blowfish_setkey(BlowfishContext * ctx, const uint8 *key, short keybytes); +void blowfish_setiv(BlowfishContext * ctx, const uint8 *iv); +void blowfish_encrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx); +void blowfish_decrypt_cbc(uint8 *blk, int len, BlowfishContext * ctx); +void blowfish_encrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx); +void blowfish_decrypt_ecb(uint8 *blk, int len, BlowfishContext * ctx); diff --git a/contrib/pgcrypto/crypt-blowfish.c b/contrib/pgcrypto/crypt-blowfish.c index f951f2c411c..84b4d758af1 100644 --- a/contrib/pgcrypto/crypt-blowfish.c +++ b/contrib/pgcrypto/crypt-blowfish.c @@ -1,5 +1,5 @@ /* - * $PostgreSQL: pgsql/contrib/pgcrypto/crypt-blowfish.c,v 1.12 2007/04/06 05:36:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/crypt-blowfish.c,v 1.13 2007/11/15 21:14:31 momjian Exp $ * * This code comes from John the Ripper password cracker, with reentrant * and crypt(3) interfaces added, but optimizations specific to password @@ -436,7 +436,7 @@ BF_encode(char *dst, const BF_word * src, int size) } static void -BF_swap(BF_word *x, int count) +BF_swap(BF_word * x, int count) { /* Swap on little-endian hardware, else do nothing */ #ifndef WORDS_BIGENDIAN diff --git a/contrib/pgcrypto/imath.h b/contrib/pgcrypto/imath.h index f730b320506..5bc335e5820 100644 --- a/contrib/pgcrypto/imath.h +++ b/contrib/pgcrypto/imath.h @@ -26,7 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $PostgreSQL: pgsql/contrib/pgcrypto/imath.h,v 1.5 2006/10/04 00:29:46 momjian Exp $ */ +/* $PostgreSQL: pgsql/contrib/pgcrypto/imath.h,v 1.6 2007/11/15 21:14:31 momjian Exp $ */ #ifndef IMATH_H_ #define IMATH_H_ @@ -115,11 +115,12 @@ mp_result mp_int_mul(mp_int a, mp_int b, mp_int c); /* c = a * b */ mp_result mp_int_mul_value(mp_int a, int value, mp_int c); mp_result mp_int_mul_pow2(mp_int a, int p2, mp_int c); mp_result mp_int_sqr(mp_int a, mp_int c); /* c = a * a */ + mp_result -mp_int_div(mp_int a, mp_int b, /* q = a / b */ +mp_int_div(mp_int a, mp_int b, /* q = a / b */ mp_int q, mp_int r); /* r = a % b */ mp_result -mp_int_div_value(mp_int a, int value, /* q = a / value */ +mp_int_div_value(mp_int a, int value, /* q = a / value */ mp_int q, int *r); /* r = a % value */ mp_result mp_int_div_pow2(mp_int a, int p2, /* q = a / 2^p2 */ diff --git a/contrib/pgcrypto/internal.c b/contrib/pgcrypto/internal.c index 24db7c0cc83..594308673bc 100644 --- a/contrib/pgcrypto/internal.c +++ b/contrib/pgcrypto/internal.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $PostgreSQL: pgsql/contrib/pgcrypto/internal.c,v 1.26 2007/03/28 22:48:58 neilc Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/internal.c,v 1.27 2007/11/15 21:14:31 momjian Exp $ */ #include "postgres.h" @@ -251,7 +251,7 @@ struct int_ctx uint8 iv[INT_MAX_IV]; union { - BlowfishContext bf; + BlowfishContext bf; rijndael_ctx rj; } ctx; unsigned keylen; @@ -426,7 +426,7 @@ bf_block_size(PX_Cipher * c) static unsigned bf_key_size(PX_Cipher * c) { - return 448/8; + return 448 / 8; } static unsigned diff --git a/contrib/pgcrypto/openssl.c b/contrib/pgcrypto/openssl.c index 10df87f2bf5..0f46580005d 100644 --- a/contrib/pgcrypto/openssl.c +++ b/contrib/pgcrypto/openssl.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.31 2007/09/29 02:18:15 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.32 2007/11/15 21:14:31 momjian Exp $ */ #include "postgres.h" @@ -98,10 +98,13 @@ static void AES_cbc_encrypt(const uint8 *src, uint8 *dst, int len, AES_KEY *ctx, uint8 *iv, int enc) { memcpy(dst, src, len); - if (enc) { + if (enc) + { aes_cbc_encrypt(ctx, iv, dst, len); memcpy(iv, dst + len - 16, 16); - } else { + } + else + { aes_cbc_decrypt(ctx, iv, dst, len); memcpy(iv, src + len - 16, 16); } @@ -394,26 +397,27 @@ static int bf_check_supported_key_len(void) { static const uint8 key[56] = { - 0xf0,0xe1,0xd2,0xc3,0xb4,0xa5,0x96,0x87,0x78,0x69, - 0x5a,0x4b,0x3c,0x2d,0x1e,0x0f,0x00,0x11,0x22,0x33, - 0x44,0x55,0x66,0x77,0x04,0x68,0x91,0x04,0xc2,0xfd, - 0x3b,0x2f,0x58,0x40,0x23,0x64,0x1a,0xba,0x61,0x76, - 0x1f,0x1f,0x1f,0x1f,0x0e,0x0e,0x0e,0x0e,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff + 0xf0, 0xe1, 0xd2, 0xc3, 0xb4, 0xa5, 0x96, 0x87, 0x78, 0x69, + 0x5a, 0x4b, 0x3c, 0x2d, 0x1e, 0x0f, 0x00, 0x11, 0x22, 0x33, + 0x44, 0x55, 0x66, 0x77, 0x04, 0x68, 0x91, 0x04, 0xc2, 0xfd, + 0x3b, 0x2f, 0x58, 0x40, 0x23, 0x64, 0x1a, 0xba, 0x61, 0x76, + 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; - static const uint8 data[8] = {0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10}; - static const uint8 res[8] = {0xc0,0x45,0x04,0x01,0x2e,0x4e,0x1f,0x53}; + static const uint8 data[8] = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10}; + static const uint8 res[8] = {0xc0, 0x45, 0x04, 0x01, 0x2e, 0x4e, 0x1f, 0x53}; static uint8 out[8]; - BF_KEY bf_key; + BF_KEY bf_key; /* encrypt with 448bits key and verify output */ BF_set_key(&bf_key, 56, key); BF_ecb_encrypt(data, out, &bf_key, BF_ENCRYPT); - if (memcmp(out, res, 8) != 0) - return 0; /* Output does not match -> strong cipher is not supported */ + if (memcmp(out, res, 8) != 0) + return 0; /* Output does not match -> strong cipher is + * not supported */ return 1; } @@ -421,18 +425,19 @@ static int bf_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv) { ossldata *od = c->ptr; - static int bf_is_strong = -1; + static int bf_is_strong = -1; /* - * Test if key len is supported. BF_set_key silently cut large keys and it could be - * be a problem when user transfer crypted data from one server to another. + * Test if key len is supported. BF_set_key silently cut large keys and it + * could be be a problem when user transfer crypted data from one server + * to another. */ - - if( bf_is_strong == -1) + + if (bf_is_strong == -1) bf_is_strong = bf_check_supported_key_len(); - if( !bf_is_strong && klen>16 ) - return PXE_KEY_TOO_BIG; + if (!bf_is_strong && klen > 16) + return PXE_KEY_TOO_BIG; /* Key len is supported. We can use it. */ BF_set_key(&od->u.bf.key, klen, key); @@ -750,13 +755,14 @@ ossl_aes_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv) static int ossl_aes_key_init(ossldata * od, int type) { - int err; + int err; + /* - * Strong key support could be missing on some openssl installations. - * We must check return value from set key function. - */ + * Strong key support could be missing on some openssl installations. We + * must check return value from set key function. + */ if (type == AES_ENCRYPT) - err = AES_set_encrypt_key(od->key, od->klen * 8, &od->u.aes_key); + err = AES_set_encrypt_key(od->key, od->klen * 8, &od->u.aes_key); else err = AES_set_decrypt_key(od->key, od->klen * 8, &od->u.aes_key); @@ -776,7 +782,7 @@ ossl_aes_ecb_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen, unsigned bs = gen_ossl_block_size(c); ossldata *od = c->ptr; const uint8 *end = data + dlen - bs; - int err; + int err; if (!od->init) if ((err = ossl_aes_key_init(od, AES_ENCRYPT)) != 0) @@ -794,7 +800,7 @@ ossl_aes_ecb_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen, unsigned bs = gen_ossl_block_size(c); ossldata *od = c->ptr; const uint8 *end = data + dlen - bs; - int err; + int err; if (!od->init) if ((err = ossl_aes_key_init(od, AES_DECRYPT)) != 0) @@ -810,12 +816,12 @@ ossl_aes_cbc_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen, uint8 *res) { ossldata *od = c->ptr; - int err; + int err; if (!od->init) if ((err = ossl_aes_key_init(od, AES_ENCRYPT)) != 0) return err; - + AES_cbc_encrypt(data, res, dlen, &od->u.aes_key, od->iv, AES_ENCRYPT); return 0; } @@ -825,7 +831,7 @@ ossl_aes_cbc_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen, uint8 *res) { ossldata *od = c->ptr; - int err; + int err; if (!od->init) if ((err = ossl_aes_key_init(od, AES_DECRYPT)) != 0) diff --git a/contrib/pgcrypto/pgp-compress.c b/contrib/pgcrypto/pgp-compress.c index 2942edf2ad1..9d2f61ed8ed 100644 --- a/contrib/pgcrypto/pgp-compress.c +++ b/contrib/pgcrypto/pgp-compress.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $PostgreSQL: pgsql/contrib/pgcrypto/pgp-compress.c,v 1.6 2007/01/14 20:55:14 alvherre Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/pgp-compress.c,v 1.7 2007/11/15 21:14:31 momjian Exp $ */ #include "postgres.h" @@ -312,7 +312,6 @@ pgp_decompress_filter(PullFilter ** res, PGP_Context * ctx, PullFilter * src) { return pullf_create(res, &decompress_filter, ctx, src); } - #else /* !HAVE_ZLIB */ int diff --git a/contrib/pgcrypto/px.c b/contrib/pgcrypto/px.c index 81222873b69..d1b22d7ec7f 100644 --- a/contrib/pgcrypto/px.c +++ b/contrib/pgcrypto/px.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $PostgreSQL: pgsql/contrib/pgcrypto/px.c,v 1.16 2007/08/23 16:15:51 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/px.c,v 1.17 2007/11/15 21:14:31 momjian Exp $ */ #include "postgres.h" @@ -286,7 +286,7 @@ combo_decrypt(PX_Combo * cx, const uint8 *data, unsigned dlen, /* with padding, empty ciphertext is not allowed */ if (cx->padding) return PXE_DECRYPT_FAILED; - + /* without padding, report empty result */ *rlen = 0; return 0; diff --git a/contrib/pgcrypto/sha2.c b/contrib/pgcrypto/sha2.c index e25f35acdef..c2e9da965b9 100644 --- a/contrib/pgcrypto/sha2.c +++ b/contrib/pgcrypto/sha2.c @@ -33,7 +33,7 @@ * * $From: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $ * - * $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.9 2007/04/06 05:36:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.10 2007/11/15 21:14:31 momjian Exp $ */ #include "postgres.h" @@ -78,7 +78,7 @@ (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \ ((tmp & 0x0000ffff0000ffffULL) << 16); \ } -#endif /* not bigendian */ +#endif /* not bigendian */ /* * Macro for incrementally adding the unsigned 64-bit integer n to the diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c index 3018b6aedd1..3cd31478956 100644 --- a/contrib/pgstattuple/pgstatindex.c +++ b/contrib/pgstattuple/pgstatindex.c @@ -159,16 +159,17 @@ pgstatindex(PG_FUNCTION_ARGS) else if (P_ISLEAF(opaque)) { - int max_avail; - max_avail = BLCKSZ - (BLCKSZ - ((PageHeader)page)->pd_special + SizeOfPageHeaderData); + int max_avail; + + max_avail = BLCKSZ - (BLCKSZ - ((PageHeader) page)->pd_special + SizeOfPageHeaderData); indexStat.max_avail += max_avail; indexStat.free_space += PageGetFreeSpace(page); indexStat.leaf_pages++; /* - * If the next leaf is on an earlier block, it - * means a fragmentation. + * If the next leaf is on an earlier block, it means a + * fragmentation. */ if (opaque->btpo_next != P_NONE && opaque->btpo_next < blkno) indexStat.fragments++; diff --git a/contrib/tablefunc/tablefunc.c b/contrib/tablefunc/tablefunc.c index 22dc2f2e0eb..fd7cafea4b5 100644 --- a/contrib/tablefunc/tablefunc.c +++ b/contrib/tablefunc/tablefunc.c @@ -552,8 +552,8 @@ crosstab(PG_FUNCTION_ARGS) xpstrdup(values[0], rowid); /* - * Check to see if the rowid is the same as that of the last - * tuple sent -- if so, skip this tuple entirely + * Check to see if the rowid is the same as that of the + * last tuple sent -- if so, skip this tuple entirely */ if (!firstpass && xstreq(lastrowid, rowid)) { @@ -563,8 +563,8 @@ crosstab(PG_FUNCTION_ARGS) } /* - * If rowid hasn't changed on us, continue building the - * ouput tuple. + * If rowid hasn't changed on us, continue building the ouput + * tuple. */ if (xstreq(rowid, values[0])) { diff --git a/contrib/test_parser/test_parser.c b/contrib/test_parser/test_parser.c index 728bf4098fe..784d2d43ad0 100644 --- a/contrib/test_parser/test_parser.c +++ b/contrib/test_parser/test_parser.c @@ -6,7 +6,7 @@ * Copyright (c) 2007, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/test_parser/test_parser.c,v 1.1 2007/10/15 21:36:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/test_parser/test_parser.c,v 1.2 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -22,40 +22,44 @@ PG_MODULE_MAGIC; */ /* self-defined type */ -typedef struct { - char * buffer; /* text to parse */ - int len; /* length of the text in buffer */ - int pos; /* position of the parser */ -} ParserState; +typedef struct +{ + char *buffer; /* text to parse */ + int len; /* length of the text in buffer */ + int pos; /* position of the parser */ +} ParserState; /* copy-paste from wparser.h of tsearch2 */ -typedef struct { - int lexid; - char *alias; - char *descr; -} LexDescr; +typedef struct +{ + int lexid; + char *alias; + char *descr; +} LexDescr; /* * prototypes */ PG_FUNCTION_INFO_V1(testprs_start); -Datum testprs_start(PG_FUNCTION_ARGS); +Datum testprs_start(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(testprs_getlexeme); -Datum testprs_getlexeme(PG_FUNCTION_ARGS); +Datum testprs_getlexeme(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(testprs_end); -Datum testprs_end(PG_FUNCTION_ARGS); +Datum testprs_end(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(testprs_lextype); -Datum testprs_lextype(PG_FUNCTION_ARGS); +Datum testprs_lextype(PG_FUNCTION_ARGS); /* * functions */ -Datum testprs_start(PG_FUNCTION_ARGS) +Datum +testprs_start(PG_FUNCTION_ARGS) { ParserState *pst = (ParserState *) palloc0(sizeof(ParserState)); + pst->buffer = (char *) PG_GETARG_POINTER(0); pst->len = PG_GETARG_INT32(1); pst->pos = 0; @@ -63,15 +67,16 @@ Datum testprs_start(PG_FUNCTION_ARGS) PG_RETURN_POINTER(pst); } -Datum testprs_getlexeme(PG_FUNCTION_ARGS) +Datum +testprs_getlexeme(PG_FUNCTION_ARGS) { - ParserState *pst = (ParserState *) PG_GETARG_POINTER(0); - char **t = (char **) PG_GETARG_POINTER(1); - int *tlen = (int *) PG_GETARG_POINTER(2); + ParserState *pst = (ParserState *) PG_GETARG_POINTER(0); + char **t = (char **) PG_GETARG_POINTER(1); + int *tlen = (int *) PG_GETARG_POINTER(2); int type; *tlen = pst->pos; - *t = pst->buffer + pst->pos; + *t = pst->buffer + pst->pos; if ((pst->buffer)[pst->pos] == ' ') { @@ -81,7 +86,9 @@ Datum testprs_getlexeme(PG_FUNCTION_ARGS) while ((pst->buffer)[pst->pos] == ' ' && pst->pos < pst->len) (pst->pos)++; - } else { + } + else + { /* word type */ type = 3; /* go to the next white-space character */ @@ -94,28 +101,29 @@ Datum testprs_getlexeme(PG_FUNCTION_ARGS) /* we are finished if (*tlen == 0) */ if (*tlen == 0) - type=0; + type = 0; PG_RETURN_INT32(type); } -Datum testprs_end(PG_FUNCTION_ARGS) +Datum +testprs_end(PG_FUNCTION_ARGS) { ParserState *pst = (ParserState *) PG_GETARG_POINTER(0); + pfree(pst); PG_RETURN_VOID(); } -Datum testprs_lextype(PG_FUNCTION_ARGS) +Datum +testprs_lextype(PG_FUNCTION_ARGS) { /* - * Remarks: - * - we have to return the blanks for headline reason - * - we use the same lexids like Teodor in the default - * word parser; in this way we can reuse the headline - * function of the default word parser. + * Remarks: - we have to return the blanks for headline reason - we use + * the same lexids like Teodor in the default word parser; in this way we + * can reuse the headline function of the default word parser. */ - LexDescr *descr = (LexDescr *) palloc(sizeof(LexDescr) * (2+1)); + LexDescr *descr = (LexDescr *) palloc(sizeof(LexDescr) * (2 + 1)); /* there are only two types in this parser */ descr[0].lexid = 3; diff --git a/contrib/tsearch2/tsearch2.c b/contrib/tsearch2/tsearch2.c index 25fb6975292..e0f0f651b8f 100644 --- a/contrib/tsearch2/tsearch2.c +++ b/contrib/tsearch2/tsearch2.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/contrib/tsearch2/tsearch2.c,v 1.2 2007/11/13 22:14:50 tgl Exp $ + * $PostgreSQL: pgsql/contrib/tsearch2/tsearch2.c,v 1.3 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -24,8 +24,8 @@ PG_MODULE_MAGIC; -static Oid current_dictionary_oid = InvalidOid; -static Oid current_parser_oid = InvalidOid; +static Oid current_dictionary_oid = InvalidOid; +static Oid current_parser_oid = InvalidOid; /* insert given value at argument position 0 */ #define INSERT_ARGUMENT0(argument, isnull) \ @@ -65,27 +65,27 @@ static Oid current_parser_oid = InvalidOid; } \ PG_FUNCTION_INFO_V1(name) -static Oid GetCurrentDict(void); -static Oid GetCurrentParser(void); - -Datum tsa_lexize_byname(PG_FUNCTION_ARGS); -Datum tsa_lexize_bycurrent(PG_FUNCTION_ARGS); -Datum tsa_set_curdict(PG_FUNCTION_ARGS); -Datum tsa_set_curdict_byname(PG_FUNCTION_ARGS); -Datum tsa_token_type_current(PG_FUNCTION_ARGS); -Datum tsa_set_curprs(PG_FUNCTION_ARGS); -Datum tsa_set_curprs_byname(PG_FUNCTION_ARGS); -Datum tsa_parse_current(PG_FUNCTION_ARGS); -Datum tsa_set_curcfg(PG_FUNCTION_ARGS); -Datum tsa_set_curcfg_byname(PG_FUNCTION_ARGS); -Datum tsa_to_tsvector_name(PG_FUNCTION_ARGS); -Datum tsa_to_tsquery_name(PG_FUNCTION_ARGS); -Datum tsa_plainto_tsquery_name(PG_FUNCTION_ARGS); -Datum tsa_headline_byname(PG_FUNCTION_ARGS); -Datum tsa_ts_stat(PG_FUNCTION_ARGS); -Datum tsa_tsearch2(PG_FUNCTION_ARGS); -Datum tsa_rewrite_accum(PG_FUNCTION_ARGS); -Datum tsa_rewrite_finish(PG_FUNCTION_ARGS); +static Oid GetCurrentDict(void); +static Oid GetCurrentParser(void); + +Datum tsa_lexize_byname(PG_FUNCTION_ARGS); +Datum tsa_lexize_bycurrent(PG_FUNCTION_ARGS); +Datum tsa_set_curdict(PG_FUNCTION_ARGS); +Datum tsa_set_curdict_byname(PG_FUNCTION_ARGS); +Datum tsa_token_type_current(PG_FUNCTION_ARGS); +Datum tsa_set_curprs(PG_FUNCTION_ARGS); +Datum tsa_set_curprs_byname(PG_FUNCTION_ARGS); +Datum tsa_parse_current(PG_FUNCTION_ARGS); +Datum tsa_set_curcfg(PG_FUNCTION_ARGS); +Datum tsa_set_curcfg_byname(PG_FUNCTION_ARGS); +Datum tsa_to_tsvector_name(PG_FUNCTION_ARGS); +Datum tsa_to_tsquery_name(PG_FUNCTION_ARGS); +Datum tsa_plainto_tsquery_name(PG_FUNCTION_ARGS); +Datum tsa_headline_byname(PG_FUNCTION_ARGS); +Datum tsa_ts_stat(PG_FUNCTION_ARGS); +Datum tsa_tsearch2(PG_FUNCTION_ARGS); +Datum tsa_rewrite_accum(PG_FUNCTION_ARGS); +Datum tsa_rewrite_finish(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(tsa_lexize_byname); PG_FUNCTION_INFO_V1(tsa_lexize_bycurrent); @@ -150,11 +150,11 @@ UNSUPPORTED_FUNCTION(tsa_get_covers); Datum tsa_lexize_byname(PG_FUNCTION_ARGS) { - text *dictname = PG_GETARG_TEXT_P(0); - Datum arg1 = PG_GETARG_DATUM(1); + text *dictname = PG_GETARG_TEXT_P(0); + Datum arg1 = PG_GETARG_DATUM(1); return DirectFunctionCall2(ts_lexize, - ObjectIdGetDatum(TextGetObjectId(regdictionaryin, dictname)), + ObjectIdGetDatum(TextGetObjectId(regdictionaryin, dictname)), arg1); } @@ -162,8 +162,8 @@ tsa_lexize_byname(PG_FUNCTION_ARGS) Datum tsa_lexize_bycurrent(PG_FUNCTION_ARGS) { - Datum arg0 = PG_GETARG_DATUM(0); - Oid id = GetCurrentDict(); + Datum arg0 = PG_GETARG_DATUM(0); + Oid id = GetCurrentDict(); return DirectFunctionCall2(ts_lexize, ObjectIdGetDatum(id), @@ -174,7 +174,7 @@ tsa_lexize_bycurrent(PG_FUNCTION_ARGS) Datum tsa_set_curdict(PG_FUNCTION_ARGS) { - Oid dict_oid = PG_GETARG_OID(0); + Oid dict_oid = PG_GETARG_OID(0); if (!SearchSysCacheExists(TSDICTOID, ObjectIdGetDatum(dict_oid), @@ -191,8 +191,8 @@ tsa_set_curdict(PG_FUNCTION_ARGS) Datum tsa_set_curdict_byname(PG_FUNCTION_ARGS) { - text *name = PG_GETARG_TEXT_P(0); - Oid dict_oid; + text *name = PG_GETARG_TEXT_P(0); + Oid dict_oid; dict_oid = TSDictionaryGetDictid(stringToQualifiedNameList(TextPGetCString(name)), false); @@ -213,7 +213,7 @@ tsa_token_type_current(PG_FUNCTION_ARGS) Datum tsa_set_curprs(PG_FUNCTION_ARGS) { - Oid parser_oid = PG_GETARG_OID(0); + Oid parser_oid = PG_GETARG_OID(0); if (!SearchSysCacheExists(TSPARSEROID, ObjectIdGetDatum(parser_oid), @@ -230,8 +230,8 @@ tsa_set_curprs(PG_FUNCTION_ARGS) Datum tsa_set_curprs_byname(PG_FUNCTION_ARGS) { - text *name = PG_GETARG_TEXT_P(0); - Oid parser_oid; + text *name = PG_GETARG_TEXT_P(0); + Oid parser_oid; parser_oid = TSParserGetPrsid(stringToQualifiedNameList(TextPGetCString(name)), false); @@ -252,12 +252,12 @@ tsa_parse_current(PG_FUNCTION_ARGS) Datum tsa_set_curcfg(PG_FUNCTION_ARGS) { - Oid arg0 = PG_GETARG_OID(0); - char *name; + Oid arg0 = PG_GETARG_OID(0); + char *name; name = DatumGetCString(DirectFunctionCall1(regconfigout, ObjectIdGetDatum(arg0))); - + set_config_option("default_text_search_config", name, PGC_USERSET, PGC_S_SESSION, @@ -271,8 +271,8 @@ tsa_set_curcfg(PG_FUNCTION_ARGS) Datum tsa_set_curcfg_byname(PG_FUNCTION_ARGS) { - text *arg0 = PG_GETARG_TEXT_P(0); - char *name; + text *arg0 = PG_GETARG_TEXT_P(0); + char *name; name = TextPGetCString(arg0); @@ -289,9 +289,9 @@ tsa_set_curcfg_byname(PG_FUNCTION_ARGS) Datum tsa_to_tsvector_name(PG_FUNCTION_ARGS) { - text *cfgname = PG_GETARG_TEXT_P(0); - Datum arg1 = PG_GETARG_DATUM(1); - Oid config_oid; + text *cfgname = PG_GETARG_TEXT_P(0); + Datum arg1 = PG_GETARG_DATUM(1); + Oid config_oid; config_oid = TextGetObjectId(regconfigin, cfgname); @@ -303,9 +303,9 @@ tsa_to_tsvector_name(PG_FUNCTION_ARGS) Datum tsa_to_tsquery_name(PG_FUNCTION_ARGS) { - text *cfgname = PG_GETARG_TEXT_P(0); - Datum arg1 = PG_GETARG_DATUM(1); - Oid config_oid; + text *cfgname = PG_GETARG_TEXT_P(0); + Datum arg1 = PG_GETARG_DATUM(1); + Oid config_oid; config_oid = TextGetObjectId(regconfigin, cfgname); @@ -318,9 +318,9 @@ tsa_to_tsquery_name(PG_FUNCTION_ARGS) Datum tsa_plainto_tsquery_name(PG_FUNCTION_ARGS) { - text *cfgname = PG_GETARG_TEXT_P(0); - Datum arg1 = PG_GETARG_DATUM(1); - Oid config_oid; + text *cfgname = PG_GETARG_TEXT_P(0); + Datum arg1 = PG_GETARG_DATUM(1); + Oid config_oid; config_oid = TextGetObjectId(regconfigin, cfgname); @@ -332,22 +332,22 @@ tsa_plainto_tsquery_name(PG_FUNCTION_ARGS) Datum tsa_headline_byname(PG_FUNCTION_ARGS) { - Datum arg0 = PG_GETARG_DATUM(0); - Datum arg1 = PG_GETARG_DATUM(1); - Datum arg2 = PG_GETARG_DATUM(2); - Datum result; - Oid config_oid; + Datum arg0 = PG_GETARG_DATUM(0); + Datum arg1 = PG_GETARG_DATUM(1); + Datum arg2 = PG_GETARG_DATUM(2); + Datum result; + Oid config_oid; /* first parameter has to be converted to oid */ config_oid = DatumGetObjectId(DirectFunctionCall1(regconfigin, - DirectFunctionCall1(textout, arg0))); + DirectFunctionCall1(textout, arg0))); if (PG_NARGS() == 3) result = DirectFunctionCall3(ts_headline_byid, - ObjectIdGetDatum(config_oid), arg1, arg2); + ObjectIdGetDatum(config_oid), arg1, arg2); else { - Datum arg3 = PG_GETARG_DATUM(3); + Datum arg3 = PG_GETARG_DATUM(3); result = DirectFunctionCall4(ts_headline_byid_opt, ObjectIdGetDatum(config_oid), @@ -371,11 +371,11 @@ tsa_tsearch2(PG_FUNCTION_ARGS) { TriggerData *trigdata; Trigger *trigger; - char **tgargs; + char **tgargs; int i; /* Check call context */ - if (!CALLED_AS_TRIGGER(fcinfo)) /* internal error */ + if (!CALLED_AS_TRIGGER(fcinfo)) /* internal error */ elog(ERROR, "tsvector_update_trigger: not fired by trigger manager"); trigdata = (TriggerData *) fcinfo->context; @@ -388,7 +388,7 @@ tsa_tsearch2(PG_FUNCTION_ARGS) tgargs = (char **) palloc((trigger->tgnargs + 1) * sizeof(char *)); tgargs[0] = trigger->tgargs[0]; for (i = 1; i < trigger->tgnargs; i++) - tgargs[i+1] = trigger->tgargs[i]; + tgargs[i + 1] = trigger->tgargs[i]; tgargs[1] = pstrdup(GetConfigOptionByName("default_text_search_config", NULL)); diff --git a/contrib/uuid-ossp/uuid-ossp.c b/contrib/uuid-ossp/uuid-ossp.c index d711f47207e..e1aa8af0943 100644 --- a/contrib/uuid-ossp/uuid-ossp.c +++ b/contrib/uuid-ossp/uuid-ossp.c @@ -4,7 +4,7 @@ * * Copyright (c) 2007 PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/contrib/uuid-ossp/uuid-ossp.c,v 1.3 2007/10/23 21:38:16 tgl Exp $ + * $PostgreSQL: pgsql/contrib/uuid-ossp/uuid-ossp.c,v 1.4 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -39,17 +39,17 @@ PG_MODULE_MAGIC; -Datum uuid_nil(PG_FUNCTION_ARGS); -Datum uuid_ns_dns(PG_FUNCTION_ARGS); -Datum uuid_ns_url(PG_FUNCTION_ARGS); -Datum uuid_ns_oid(PG_FUNCTION_ARGS); -Datum uuid_ns_x500(PG_FUNCTION_ARGS); +Datum uuid_nil(PG_FUNCTION_ARGS); +Datum uuid_ns_dns(PG_FUNCTION_ARGS); +Datum uuid_ns_url(PG_FUNCTION_ARGS); +Datum uuid_ns_oid(PG_FUNCTION_ARGS); +Datum uuid_ns_x500(PG_FUNCTION_ARGS); -Datum uuid_generate_v1(PG_FUNCTION_ARGS); -Datum uuid_generate_v1mc(PG_FUNCTION_ARGS); -Datum uuid_generate_v3(PG_FUNCTION_ARGS); -Datum uuid_generate_v4(PG_FUNCTION_ARGS); -Datum uuid_generate_v5(PG_FUNCTION_ARGS); +Datum uuid_generate_v1(PG_FUNCTION_ARGS); +Datum uuid_generate_v1mc(PG_FUNCTION_ARGS); +Datum uuid_generate_v3(PG_FUNCTION_ARGS); +Datum uuid_generate_v4(PG_FUNCTION_ARGS); +Datum uuid_generate_v5(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(uuid_nil); @@ -66,11 +66,11 @@ PG_FUNCTION_INFO_V1(uuid_generate_v5); static char * -uuid_to_string(const uuid_t *uuid) +uuid_to_string(const uuid_t * uuid) { - char *buf = palloc(UUID_LEN_STR + 1); - void *ptr = buf; - size_t len = UUID_LEN_STR + 1; + char *buf = palloc(UUID_LEN_STR + 1); + void *ptr = buf; + size_t len = UUID_LEN_STR + 1; uuid_export(uuid, UUID_FMT_STR, &ptr, &len); @@ -79,7 +79,7 @@ uuid_to_string(const uuid_t *uuid) static void -string_to_uuid(const char *str, uuid_t *uuid) +string_to_uuid(const char *str, uuid_t * uuid) { uuid_import(uuid, UUID_FMT_STR, str, UUID_LEN_STR + 1); } @@ -88,8 +88,8 @@ string_to_uuid(const char *str, uuid_t *uuid) static Datum special_uuid_value(const char *name) { - uuid_t *uuid; - char *str; + uuid_t *uuid; + char *str; uuid_create(&uuid); uuid_load(uuid, name); @@ -136,10 +136,10 @@ uuid_ns_x500(PG_FUNCTION_ARGS) static Datum -uuid_generate_internal(int mode, const uuid_t *ns, const char *name) +uuid_generate_internal(int mode, const uuid_t * ns, const char *name) { - uuid_t *uuid; - char *str; + uuid_t *uuid; + char *str; uuid_create(&uuid); uuid_make(uuid, mode, ns, name); @@ -165,7 +165,7 @@ uuid_generate_v1mc(PG_FUNCTION_ARGS) static Datum -uuid_generate_v35_internal(int mode, pg_uuid_t *ns, text *name) +uuid_generate_v35_internal(int mode, pg_uuid_t * ns, text *name) { uuid_t *ns_uuid; Datum result; @@ -176,7 +176,7 @@ uuid_generate_v35_internal(int mode, pg_uuid_t *ns, text *name) result = uuid_generate_internal(mode, ns_uuid, - DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(name)))); + DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(name)))); uuid_destroy(ns_uuid); diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index a6dab8da121..eb8b136cbd9 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -28,7 +28,7 @@ * without explicitly invoking the toaster. * * This change will break any code that assumes it needn't detoast values - * that have been put into a tuple but never sent to disk. Hopefully there + * that have been put into a tuple but never sent to disk. Hopefully there * are few such places. * * Varlenas still have alignment 'i' (or 'd') in pg_type/pg_attribute, since @@ -57,7 +57,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.118 2007/11/07 12:24:23 petere Exp $ + * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.119 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -99,19 +99,19 @@ heap_compute_data_size(TupleDesc tupleDesc, for (i = 0; i < numberOfAttributes; i++) { - Datum val; + Datum val; if (isnull[i]) continue; val = values[i]; - if (ATT_IS_PACKABLE(att[i]) && + if (ATT_IS_PACKABLE(att[i]) && VARATT_CAN_MAKE_SHORT(DatumGetPointer(val))) { /* - * we're anticipating converting to a short varlena header, - * so adjust length and don't count any alignment + * we're anticipating converting to a short varlena header, so + * adjust length and don't count any alignment */ data_length += VARATT_CONVERTED_SHORT_SIZE(DatumGetPointer(val)); } @@ -147,19 +147,19 @@ ComputeDataSize(TupleDesc tupleDesc, for (i = 0; i < numberOfAttributes; i++) { - Datum val; + Datum val; if (nulls[i] != ' ') continue; val = values[i]; - if (ATT_IS_PACKABLE(att[i]) && + if (ATT_IS_PACKABLE(att[i]) && VARATT_CAN_MAKE_SHORT(DatumGetPointer(val))) { /* - * we're anticipating converting to a short varlena header, - * so adjust length and don't count any alignment + * we're anticipating converting to a short varlena header, so + * adjust length and don't count any alignment */ data_length += VARATT_CONVERTED_SHORT_SIZE(DatumGetPointer(val)); } @@ -195,6 +195,7 @@ heap_fill_tuple(TupleDesc tupleDesc, int i; int numberOfAttributes = tupleDesc->natts; Form_pg_attribute *att = tupleDesc->attrs; + #ifdef USE_ASSERT_CHECKING char *start = data; #endif @@ -238,8 +239,8 @@ heap_fill_tuple(TupleDesc tupleDesc, } /* - * XXX we use the att_align macros on the pointer value itself, - * not on an offset. This is a bit of a hack. + * XXX we use the att_align macros on the pointer value itself, not on + * an offset. This is a bit of a hack. */ if (att[i]->attbyval) @@ -327,6 +328,7 @@ DataFill(TupleDesc tupleDesc, int i; int numberOfAttributes = tupleDesc->natts; Form_pg_attribute *att = tupleDesc->attrs; + #ifdef USE_ASSERT_CHECKING char *start = data; #endif @@ -370,8 +372,8 @@ DataFill(TupleDesc tupleDesc, } /* - * XXX we use the att_align macros on the pointer value itself, - * not on an offset. This is a bit of a hack. + * XXX we use the att_align macros on the pointer value itself, not on + * an offset. This is a bit of a hack. */ if (att[i]->attbyval) @@ -611,8 +613,8 @@ nocachegetattr(HeapTuple tuple, /* * Otherwise, check for non-fixed-length attrs up to and including - * target. If there aren't any, it's safe to cheaply initialize - * the cached offsets for these attrs. + * target. If there aren't any, it's safe to cheaply initialize the + * cached offsets for these attrs. */ if (HeapTupleHasVarWidth(tuple)) { @@ -673,8 +675,8 @@ nocachegetattr(HeapTuple tuple, int i; /* - * Now we know that we have to walk the tuple CAREFULLY. But we - * still might be able to cache some offsets for next time. + * Now we know that we have to walk the tuple CAREFULLY. But we still + * might be able to cache some offsets for next time. * * Note - This loop is a little tricky. For each non-null attribute, * we have to first account for alignment padding before the attr, @@ -683,12 +685,12 @@ nocachegetattr(HeapTuple tuple, * attcacheoff until we reach either a null or a var-width attribute. */ off = 0; - for (i = 0; ; i++) /* loop exit is at "break" */ + for (i = 0;; i++) /* loop exit is at "break" */ { if (HeapTupleHasNulls(tuple) && att_isnull(i, bp)) { usecache = false; - continue; /* this cannot be the target att */ + continue; /* this cannot be the target att */ } /* If we know the next offset, we can skip the rest */ @@ -697,10 +699,10 @@ nocachegetattr(HeapTuple tuple, else if (att[i]->attlen == -1) { /* - * We can only cache the offset for a varlena attribute - * if the offset is already suitably aligned, so that there - * would be no pad bytes in any case: then the offset will - * be valid for either an aligned or unaligned value. + * We can only cache the offset for a varlena attribute if the + * offset is already suitably aligned, so that there would be + * no pad bytes in any case: then the offset will be valid for + * either an aligned or unaligned value. */ if (usecache && off == att_align_nominal(off, att[i]->attalign)) @@ -771,11 +773,12 @@ heap_getsysattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull) break; case MinCommandIdAttributeNumber: case MaxCommandIdAttributeNumber: + /* - * cmin and cmax are now both aliases for the same field, - * which can in fact also be a combo command id. XXX perhaps we - * should return the "real" cmin or cmax if possible, that is - * if we are inside the originating transaction? + * cmin and cmax are now both aliases for the same field, which + * can in fact also be a combo command id. XXX perhaps we should + * return the "real" cmin or cmax if possible, that is if we are + * inside the originating transaction? */ result = CommandIdGetDatum(HeapTupleHeaderGetRawCommandId(tup->t_data)); break; @@ -855,7 +858,8 @@ heap_form_tuple(TupleDesc tupleDescriptor, { HeapTuple tuple; /* return tuple */ HeapTupleHeader td; /* tuple data */ - Size len, data_len; + Size len, + data_len; int hoff; bool hasnull = false; Form_pg_attribute *att = tupleDescriptor->attrs; @@ -965,7 +969,8 @@ heap_formtuple(TupleDesc tupleDescriptor, { HeapTuple tuple; /* return tuple */ HeapTupleHeader td; /* tuple data */ - Size len, data_len; + Size len, + data_len; int hoff; bool hasnull = false; Form_pg_attribute *att = tupleDescriptor->attrs; @@ -1263,10 +1268,10 @@ heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc, else if (thisatt->attlen == -1) { /* - * We can only cache the offset for a varlena attribute - * if the offset is already suitably aligned, so that there - * would be no pad bytes in any case: then the offset will - * be valid for either an aligned or unaligned value. + * We can only cache the offset for a varlena attribute if the + * offset is already suitably aligned, so that there would be no + * pad bytes in any case: then the offset will be valid for either + * an aligned or unaligned value. */ if (!slow && off == att_align_nominal(off, thisatt->attalign)) @@ -1375,10 +1380,10 @@ heap_deformtuple(HeapTuple tuple, else if (thisatt->attlen == -1) { /* - * We can only cache the offset for a varlena attribute - * if the offset is already suitably aligned, so that there - * would be no pad bytes in any case: then the offset will - * be valid for either an aligned or unaligned value. + * We can only cache the offset for a varlena attribute if the + * offset is already suitably aligned, so that there would be no + * pad bytes in any case: then the offset will be valid for either + * an aligned or unaligned value. */ if (!slow && off == att_align_nominal(off, thisatt->attalign)) @@ -1484,10 +1489,10 @@ slot_deform_tuple(TupleTableSlot *slot, int natts) else if (thisatt->attlen == -1) { /* - * We can only cache the offset for a varlena attribute - * if the offset is already suitably aligned, so that there - * would be no pad bytes in any case: then the offset will - * be valid for either an aligned or unaligned value. + * We can only cache the offset for a varlena attribute if the + * offset is already suitably aligned, so that there would be no + * pad bytes in any case: then the offset will be valid for either + * an aligned or unaligned value. */ if (!slow && off == att_align_nominal(off, thisatt->attalign)) @@ -1791,7 +1796,8 @@ heap_form_minimal_tuple(TupleDesc tupleDescriptor, bool *isnull) { MinimalTuple tuple; /* return tuple */ - Size len, data_len; + Size len, + data_len; int hoff; bool hasnull = false; Form_pg_attribute *att = tupleDescriptor->attrs; diff --git a/src/backend/access/common/indextuple.c b/src/backend/access/common/indextuple.c index 5412ca0cf3d..892363b3a99 100644 --- a/src/backend/access/common/indextuple.c +++ b/src/backend/access/common/indextuple.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/common/indextuple.c,v 1.83 2007/11/07 12:24:24 petere Exp $ + * $PostgreSQL: pgsql/src/backend/access/common/indextuple.c,v 1.84 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -77,7 +77,7 @@ index_form_tuple(TupleDesc tupleDescriptor, { untoasted_values[i] = PointerGetDatum(heap_tuple_fetch_attr((struct varlena *) - DatumGetPointer(values[i]))); + DatumGetPointer(values[i]))); untoasted_free[i] = true; } @@ -309,8 +309,8 @@ nocache_index_getattr(IndexTuple tup, /* * Otherwise, check for non-fixed-length attrs up to and including - * target. If there aren't any, it's safe to cheaply initialize - * the cached offsets for these attrs. + * target. If there aren't any, it's safe to cheaply initialize the + * cached offsets for these attrs. */ if (IndexTupleHasVarwidths(tup)) { @@ -371,8 +371,8 @@ nocache_index_getattr(IndexTuple tup, int i; /* - * Now we know that we have to walk the tuple CAREFULLY. But we - * still might be able to cache some offsets for next time. + * Now we know that we have to walk the tuple CAREFULLY. But we still + * might be able to cache some offsets for next time. * * Note - This loop is a little tricky. For each non-null attribute, * we have to first account for alignment padding before the attr, @@ -381,12 +381,12 @@ nocache_index_getattr(IndexTuple tup, * attcacheoff until we reach either a null or a var-width attribute. */ off = 0; - for (i = 0; ; i++) /* loop exit is at "break" */ + for (i = 0;; i++) /* loop exit is at "break" */ { if (IndexTupleHasNulls(tup) && att_isnull(i, bp)) { usecache = false; - continue; /* this cannot be the target att */ + continue; /* this cannot be the target att */ } /* If we know the next offset, we can skip the rest */ @@ -395,10 +395,10 @@ nocache_index_getattr(IndexTuple tup, else if (att[i]->attlen == -1) { /* - * We can only cache the offset for a varlena attribute - * if the offset is already suitably aligned, so that there - * would be no pad bytes in any case: then the offset will - * be valid for either an aligned or unaligned value. + * We can only cache the offset for a varlena attribute if the + * offset is already suitably aligned, so that there would be + * no pad bytes in any case: then the offset will be valid for + * either an aligned or unaligned value. */ if (usecache && off == att_align_nominal(off, att[i]->attalign)) diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c index 9f40fc59d3f..7e4afd70bd5 100644 --- a/src/backend/access/common/reloptions.c +++ b/src/backend/access/common/reloptions.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.5 2007/06/03 22:16:02 petere Exp $ + * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.6 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -206,8 +206,8 @@ parseRelOptions(Datum options, int numkeywords, const char *const * keywords, if (values[j] && validate) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("parameter \"%s\" specified more than once", - keywords[j]))); + errmsg("parameter \"%s\" specified more than once", + keywords[j]))); value_len = text_len - kw_len - 1; value = (char *) palloc(value_len + 1); memcpy(value, text_str + kw_len + 1, value_len); diff --git a/src/backend/access/gin/ginarrayproc.c b/src/backend/access/gin/ginarrayproc.c index d608bedb605..430b72a92b2 100644 --- a/src/backend/access/gin/ginarrayproc.c +++ b/src/backend/access/gin/ginarrayproc.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.10 2007/08/21 01:11:12 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginarrayproc.c,v 1.11 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ #include "postgres.h" @@ -60,17 +60,18 @@ ginarrayextract(PG_FUNCTION_ARGS) elmlen, elmbyval, elmalign, &entries, NULL, (int *) nentries); - if ( *nentries == 0 && PG_NARGS() == 3 ) + if (*nentries == 0 && PG_NARGS() == 3) { - switch( PG_GETARG_UINT16(2) ) /* StrategyNumber */ + switch (PG_GETARG_UINT16(2)) /* StrategyNumber */ { case GinOverlapStrategy: - *nentries = -1; /* nobody can be found */ - break; + *nentries = -1; /* nobody can be found */ + break; case GinContainsStrategy: case GinContainedStrategy: case GinEqualStrategy: - default: /* require fullscan: GIN can't find void arrays */ + default: /* require fullscan: GIN can't find void + * arrays */ break; } } diff --git a/src/backend/access/gin/ginbtree.c b/src/backend/access/gin/ginbtree.c index 1a711e93c64..a89c384dfc3 100644 --- a/src/backend/access/gin/ginbtree.c +++ b/src/backend/access/gin/ginbtree.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.9 2007/06/05 12:47:49 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginbtree.c,v 1.10 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -317,8 +317,8 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack) Page newlpage; /* - * newlpage is a pointer to memory page, it doesn't associate - * with buffer, stack->buffer should be untouched + * newlpage is a pointer to memory page, it doesn't associate with + * buffer, stack->buffer should be untouched */ newlpage = btree->splitPage(btree, stack->buffer, rbuffer, stack->off, &rdata); diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c index d9242c667a6..eb6ccfc0b40 100644 --- a/src/backend/access/gin/gindatapage.c +++ b/src/backend/access/gin/gindatapage.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.7 2007/06/04 15:56:28 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.8 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -358,7 +358,7 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda static XLogRecData rdata[3]; int sizeofitem = GinSizeOfItem(page); static ginxlogInsert data; - int cnt=0; + int cnt = 0; *prdata = rdata; Assert(GinPageIsData(page)); @@ -373,14 +373,14 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda data.isData = TRUE; data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE; - /* - * Prevent full page write if child's split occurs. That is needed - * to remove incomplete splits while replaying WAL - * - * data.updateBlkno contains new block number (of newly created right page) - * for recently splited page. + /* + * Prevent full page write if child's split occurs. That is needed to + * remove incomplete splits while replaying WAL + * + * data.updateBlkno contains new block number (of newly created right + * page) for recently splited page. */ - if ( data.updateBlkno == InvalidBlockNumber ) + if (data.updateBlkno == InvalidBlockNumber) { rdata[0].buffer = buf; rdata[0].buffer_std = FALSE; @@ -393,7 +393,7 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda rdata[cnt].buffer = InvalidBuffer; rdata[cnt].data = (char *) &data; rdata[cnt].len = sizeof(ginxlogInsert); - rdata[cnt].next = &rdata[cnt+1]; + rdata[cnt].next = &rdata[cnt + 1]; cnt++; rdata[cnt].buffer = InvalidBuffer; diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c index 2c335aea0cd..134c5f99dd0 100644 --- a/src/backend/access/gin/ginentrypage.c +++ b/src/backend/access/gin/ginentrypage.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.10 2007/10/29 13:49:21 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.11 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -354,7 +354,7 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd static XLogRecData rdata[3]; OffsetNumber placed; static ginxlogInsert data; - int cnt=0; + int cnt = 0; *prdata = rdata; data.updateBlkno = entryPreparePage(btree, page, off); @@ -372,14 +372,14 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd data.isData = false; data.isLeaf = GinPageIsLeaf(page) ? TRUE : FALSE; - /* - * Prevent full page write if child's split occurs. That is needed - * to remove incomplete splits while replaying WAL + /* + * Prevent full page write if child's split occurs. That is needed to + * remove incomplete splits while replaying WAL * - * data.updateBlkno contains new block number (of newly created right page) - * for recently splited page. + * data.updateBlkno contains new block number (of newly created right + * page) for recently splited page. */ - if ( data.updateBlkno == InvalidBlockNumber ) + if (data.updateBlkno == InvalidBlockNumber) { rdata[0].buffer = buf; rdata[0].buffer_std = TRUE; @@ -392,7 +392,7 @@ entryPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd rdata[cnt].buffer = InvalidBuffer; rdata[cnt].data = (char *) &data; rdata[cnt].len = sizeof(ginxlogInsert); - rdata[cnt].next = &rdata[cnt+1]; + rdata[cnt].next = &rdata[cnt + 1]; cnt++; rdata[cnt].buffer = InvalidBuffer; diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index 66949f964c8..b964f036a08 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.8 2007/06/04 15:56:28 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginget.c,v 1.9 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -23,29 +23,29 @@ findItemInPage(Page page, ItemPointer item, OffsetNumber *off) OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff; int res; - if ( GinPageGetOpaque(page)->flags & GIN_DELETED ) + if (GinPageGetOpaque(page)->flags & GIN_DELETED) /* page was deleted by concurrent vacuum */ return false; - if ( *off > maxoff || *off == InvalidOffsetNumber ) + if (*off > maxoff || *off == InvalidOffsetNumber) res = -1; else res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off)); - if ( res == 0 ) + if (res == 0) { /* page isn't changed */ - return true; - } - else if ( res > 0 ) + return true; + } + else if (res > 0) { - /* - * some items was added before our position, look further to find - * it or first greater + /* + * some items was added before our position, look further to find it + * or first greater */ - + (*off)++; - for (; *off <= maxoff; (*off)++) + for (; *off <= maxoff; (*off)++) { res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off)); @@ -53,7 +53,7 @@ findItemInPage(Page page, ItemPointer item, OffsetNumber *off) return true; if (res < 0) - { + { (*off)--; return true; } @@ -61,20 +61,20 @@ findItemInPage(Page page, ItemPointer item, OffsetNumber *off) } else { - /* - * some items was deleted before our position, look from begining - * to find it or first greater + /* + * some items was deleted before our position, look from begining to + * find it or first greater */ - for(*off = FirstOffsetNumber; *off<= maxoff; (*off)++) + for (*off = FirstOffsetNumber; *off <= maxoff; (*off)++) { res = compareItemPointers(item, (ItemPointer) GinDataPageGetItem(page, *off)); - if ( res == 0 ) + if (res == 0) return true; if (res < 0) - { + { (*off)--; return true; } @@ -174,7 +174,7 @@ startScanEntry(Relation index, GinState *ginstate, GinScanEntry entry, bool firs page = BufferGetPage(entry->buffer); /* try to find curItem in current buffer */ - if ( findItemInPage(page, &entry->curItem, &entry->offset) ) + if (findItemInPage(page, &entry->curItem, &entry->offset)) return; /* walk to right */ @@ -186,13 +186,13 @@ startScanEntry(Relation index, GinState *ginstate, GinScanEntry entry, bool firs page = BufferGetPage(entry->buffer); entry->offset = InvalidOffsetNumber; - if ( findItemInPage(page, &entry->curItem, &entry->offset) ) + if (findItemInPage(page, &entry->curItem, &entry->offset)) return; } /* - * curItem and any greated items was deleted by concurrent vacuum, - * so we finished scan with currrent entry + * curItem and any greated items was deleted by concurrent vacuum, so + * we finished scan with currrent entry */ } } @@ -221,10 +221,10 @@ startScanKey(Relation index, GinState *ginstate, GinScanKey key) if (GinFuzzySearchLimit > 0) { /* - * If all of keys more than threshold we will try to reduce result, - * we hope (and only hope, for intersection operation of array our - * supposition isn't true), that total result will not more than - * minimal predictNumberResult. + * If all of keys more than threshold we will try to reduce + * result, we hope (and only hope, for intersection operation of + * array our supposition isn't true), that total result will not + * more than minimal predictNumberResult. */ for (i = 0; i < key->nentries; i++) diff --git a/src/backend/access/gin/ginscan.c b/src/backend/access/gin/ginscan.c index 2eb1ba95b4b..2e40f8b8d8c 100644 --- a/src/backend/access/gin/ginscan.c +++ b/src/backend/access/gin/ginscan.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.10 2007/05/27 03:50:38 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginscan.c,v 1.11 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -164,13 +164,13 @@ newScanKey(IndexScanDesc scan) UInt16GetDatum(scankey[i].sk_strategy) ) ); - if ( nEntryValues < 0 ) + if (nEntryValues < 0) { /* - * extractQueryFn signals that nothing will be found, - * so we can just set isVoidRes flag... + * extractQueryFn signals that nothing will be found, so we can + * just set isVoidRes flag... */ - so->isVoidRes = true; + so->isVoidRes = true; break; } if (entryValues == NULL || nEntryValues == 0) @@ -187,7 +187,7 @@ newScanKey(IndexScanDesc scan) if (so->nkeys == 0 && !so->isVoidRes) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("GIN index does not support search with void query"))); + errmsg("GIN index does not support search with void query"))); pgstat_count_index_scan(scan->indexRelation); } diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c index e704e8051eb..488a58beb5e 100644 --- a/src/backend/access/gin/ginutil.c +++ b/src/backend/access/gin/ginutil.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.10 2007/01/31 15:09:45 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.11 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -126,17 +126,17 @@ compareEntries(GinState *ginstate, Datum a, Datum b) &ginstate->compareFn, a, b ) - ); + ); } typedef struct { FmgrInfo *cmpDatumFunc; bool *needUnique; -} cmpEntriesData; +} cmpEntriesData; static int -cmpEntries(const Datum *a, const Datum *b, cmpEntriesData *arg) +cmpEntries(const Datum *a, const Datum *b, cmpEntriesData * arg) { int res = DatumGetInt32(FunctionCall2(arg->cmpDatumFunc, *a, *b)); diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c index 1f26869d646..9c0482a8903 100644 --- a/src/backend/access/gin/ginvacuum.c +++ b/src/backend/access/gin/ginvacuum.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.17 2007/09/20 17:56:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.18 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ @@ -28,7 +28,7 @@ typedef struct IndexBulkDeleteCallback callback; void *callback_state; GinState ginstate; - BufferAccessStrategy strategy; + BufferAccessStrategy strategy; } GinVacuumState; @@ -160,14 +160,14 @@ ginVacuumPostingTreeLeaves(GinVacuumState *gvs, BlockNumber blkno, bool isRoot, /* * We should be sure that we don't concurrent with inserts, insert process * never release root page until end (but it can unlock it and lock - * again). New scan can't start but previously started - * ones work concurrently. + * again). New scan can't start but previously started ones work + * concurrently. */ - if ( isRoot ) + if (isRoot) LockBufferForCleanup(buffer); else - LockBuffer(buffer, GIN_EXCLUSIVE); + LockBuffer(buffer, GIN_EXCLUSIVE); Assert(GinPageIsData(page)); @@ -240,8 +240,8 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn BlockNumber parentBlkno, OffsetNumber myoff, bool isParentRoot) { Buffer dBuffer = ReadBufferWithStrategy(gvs->index, deleteBlkno, gvs->strategy); - Buffer lBuffer = (leftBlkno == InvalidBlockNumber) ? - InvalidBuffer : ReadBufferWithStrategy(gvs->index, leftBlkno, gvs->strategy); + Buffer lBuffer = (leftBlkno == InvalidBlockNumber) ? + InvalidBuffer : ReadBufferWithStrategy(gvs->index, leftBlkno, gvs->strategy); Buffer pBuffer = ReadBufferWithStrategy(gvs->index, parentBlkno, gvs->strategy); Page page, parentPage; @@ -268,17 +268,20 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn parentPage = BufferGetPage(pBuffer); #ifdef USE_ASSERT_CHECKING - do { - PostingItem *tod=(PostingItem *) GinDataPageGetItem(parentPage, myoff); - Assert( PostingItemGetBlockNumber(tod) == deleteBlkno ); - } while(0); + do + { + PostingItem *tod = (PostingItem *) GinDataPageGetItem(parentPage, myoff); + + Assert(PostingItemGetBlockNumber(tod) == deleteBlkno); + } while (0); #endif PageDeletePostingItem(parentPage, myoff); page = BufferGetPage(dBuffer); + /* - * we shouldn't change rightlink field to save - * workability of running search scan + * we shouldn't change rightlink field to save workability of running + * search scan */ GinPageGetOpaque(page)->flags = GIN_DELETED; @@ -363,8 +366,8 @@ typedef struct DataPageDeleteStack struct DataPageDeleteStack *child; struct DataPageDeleteStack *parent; - BlockNumber blkno; /* current block number */ - BlockNumber leftBlkno; /* rightest non-deleted page on left */ + BlockNumber blkno; /* current block number */ + BlockNumber leftBlkno; /* rightest non-deleted page on left */ bool isRoot; } DataPageDeleteStack; diff --git a/src/backend/access/gin/ginxlog.c b/src/backend/access/gin/ginxlog.c index 79fbb496b54..7649e4c9003 100644 --- a/src/backend/access/gin/ginxlog.c +++ b/src/backend/access/gin/ginxlog.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.10 2007/10/29 19:26:57 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.11 2007/11/15 21:14:31 momjian Exp $ *------------------------------------------------------------------------- */ #include "postgres.h" @@ -135,7 +135,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) Assert(data->isDelete == FALSE); Assert(GinPageIsData(page)); - if ( ! XLByteLE(lsn, PageGetLSN(page)) ) + if (!XLByteLE(lsn, PageGetLSN(page))) { if (data->isLeaf) { @@ -170,6 +170,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber) { PostingItem *pitem = (PostingItem *) (XLogRecGetData(record) + sizeof(ginxlogInsert)); + forgetIncompleteSplit(data->node, PostingItemGetBlockNumber(pitem), data->updateBlkno); } @@ -180,7 +181,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) Assert(!GinPageIsData(page)); - if ( ! XLByteLE(lsn, PageGetLSN(page)) ) + if (!XLByteLE(lsn, PageGetLSN(page))) { if (data->updateBlkno != InvalidBlockNumber) { @@ -202,7 +203,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), data->offset, false, false) == InvalidOffsetNumber) elog(ERROR, "failed to add item to index page in %u/%u/%u", - data->node.spcNode, data->node.dbNode, data->node.relNode); + data->node.spcNode, data->node.dbNode, data->node.relNode); } if (!data->isLeaf && data->updateBlkno != InvalidBlockNumber) @@ -212,7 +213,7 @@ ginRedoInsert(XLogRecPtr lsn, XLogRecord *record) } } - if ( ! XLByteLE(lsn, PageGetLSN(page)) ) + if (!XLByteLE(lsn, PageGetLSN(page))) { PageSetLSN(page, lsn); PageSetTLI(page, ThisTimeLineID); diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index 0c1b94d7d38..770c2023bd7 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.147 2007/09/20 17:56:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.148 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -360,8 +360,8 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate) ptr->block.blkno = BufferGetBlockNumber(ptr->buffer); /* - * fill page, we can do it because all these pages are new - * (ie not linked in tree or masked by temp page + * fill page, we can do it because all these pages are new (ie not + * linked in tree or masked by temp page */ data = (char *) (ptr->list); for (i = 0; i < ptr->block.num; i++) diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c index ba7a8ab959f..cb1919ac6e0 100644 --- a/src/backend/access/gist/gistget.c +++ b/src/backend/access/gist/gistget.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gist/gistget.c,v 1.67 2007/09/12 22:10:25 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gist/gistget.c,v 1.68 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -383,13 +383,12 @@ gistindex_keytest(IndexTuple tuple, /* * On non-leaf page we can't conclude that child hasn't NULL * values because of assumption in GiST: uinon (VAL, NULL) is VAL - * But if on non-leaf page key IS NULL then all childs - * has NULL. + * But if on non-leaf page key IS NULL then all childs has NULL. */ - Assert( key->sk_flags & SK_SEARCHNULL ); + Assert(key->sk_flags & SK_SEARCHNULL); - if ( GistPageIsLeaf(p) && !isNull ) + if (GistPageIsLeaf(p) && !isNull) return false; } else if (isNull) @@ -404,12 +403,14 @@ gistindex_keytest(IndexTuple tuple, FALSE, isNull); /* - * Call the Consistent function to evaluate the test. The arguments - * are the index datum (as a GISTENTRY*), the comparison datum, and - * the comparison operator's strategy number and subtype from pg_amop. + * Call the Consistent function to evaluate the test. The + * arguments are the index datum (as a GISTENTRY*), the comparison + * datum, and the comparison operator's strategy number and + * subtype from pg_amop. * - * (Presently there's no need to pass the subtype since it'll always - * be zero, but might as well pass it for possible future use.) + * (Presently there's no need to pass the subtype since it'll + * always be zero, but might as well pass it for possible future + * use.) */ test = FunctionCall4(&key->sk_func, PointerGetDatum(&de), diff --git a/src/backend/access/gist/gistproc.c b/src/backend/access/gist/gistproc.c index 590be9133fb..e461b5923d9 100644 --- a/src/backend/access/gist/gistproc.c +++ b/src/backend/access/gist/gistproc.c @@ -10,7 +10,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gist/gistproc.c,v 1.11 2007/09/07 17:04:26 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/access/gist/gistproc.c,v 1.12 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -394,20 +394,22 @@ gist_box_picksplit(PG_FUNCTION_ARGS) ADDLIST(listT, unionT, posT, i); } -#define LIMIT_RATIO 0.1 +#define LIMIT_RATIO 0.1 #define _IS_BADRATIO(x,y) ( (y) == 0 || (float)(x)/(float)(y) < LIMIT_RATIO ) #define IS_BADRATIO(x,y) ( _IS_BADRATIO((x),(y)) || _IS_BADRATIO((y),(x)) ) /* bad disposition, try to split by centers of boxes */ - if ( IS_BADRATIO(posR, posL) && IS_BADRATIO(posT, posB) ) + if (IS_BADRATIO(posR, posL) && IS_BADRATIO(posT, posB)) { - double avgCenterX=0.0, avgCenterY=0.0; - double CenterX, CenterY; + double avgCenterX = 0.0, + avgCenterY = 0.0; + double CenterX, + CenterY; for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) { cur = DatumGetBoxP(entryvec->vector[i].key); - avgCenterX += ((double)cur->high.x + (double)cur->low.x)/2.0; - avgCenterY += ((double)cur->high.y + (double)cur->low.y)/2.0; + avgCenterX += ((double) cur->high.x + (double) cur->low.x) / 2.0; + avgCenterY += ((double) cur->high.y + (double) cur->low.y) / 2.0; } avgCenterX /= maxoff; @@ -417,11 +419,11 @@ gist_box_picksplit(PG_FUNCTION_ARGS) for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) { cur = DatumGetBoxP(entryvec->vector[i].key); - - CenterX = ((double)cur->high.x + (double)cur->low.x)/2.0; - CenterY = ((double)cur->high.y + (double)cur->low.y)/2.0; - if (CenterX < avgCenterX) + CenterX = ((double) cur->high.x + (double) cur->low.x) / 2.0; + CenterY = ((double) cur->high.y + (double) cur->low.y) / 2.0; + + if (CenterX < avgCenterX) ADDLIST(listL, unionL, posL, i); else if (CenterX == avgCenterX) { @@ -442,7 +444,7 @@ gist_box_picksplit(PG_FUNCTION_ARGS) else ADDLIST(listB, unionB, posB, i); } - else + else ADDLIST(listT, unionT, posT, i); } } diff --git a/src/backend/access/gist/gistvacuum.c b/src/backend/access/gist/gistvacuum.c index 212995e7c57..dace2c89067 100644 --- a/src/backend/access/gist/gistvacuum.c +++ b/src/backend/access/gist/gistvacuum.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.32 2007/09/20 17:56:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.33 2007/11/15 21:14:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -35,7 +35,7 @@ typedef struct Relation index; MemoryContext opCtx; GistBulkDeleteResult *result; - BufferAccessStrategy strategy; + BufferAccessStrategy strategy; } GistVacuum; typedef struct diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c index d3f54c934be..5933b02e8eb 100644 --- a/src/backend/access/hash/hash.c +++ b/src/backend/access/hash/hash.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/hash/hash.c,v 1.96 2007/09/12 22:10:25 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/hash/hash.c,v 1.97 2007/11/15 21:14:32 momjian Exp $ * * NOTES * This file contains only the public interface routines. @@ -548,7 +548,7 @@ loop_top: vacuum_delay_point(); buf = _hash_getbuf_with_strategy(rel, blkno, HASH_WRITE, - LH_BUCKET_PAGE | LH_OVERFLOW_PAGE, + LH_BUCKET_PAGE | LH_OVERFLOW_PAGE, info->strategy); page = BufferGetPage(buf); opaque = (HashPageOpaque) PageGetSpecialPointer(page); diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c index 71fe34c8a20..4d1b1ed45cc 100644 --- a/src/backend/access/hash/hashfunc.c +++ b/src/backend/access/hash/hashfunc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.53 2007/09/21 22:52:52 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.54 2007/11/15 21:14:32 momjian Exp $ * * NOTES * These functions are stored in pg_amproc. For each operator class @@ -103,8 +103,8 @@ hashfloat4(PG_FUNCTION_ARGS) * To support cross-type hashing of float8 and float4, we want to return * the same hash value hashfloat8 would produce for an equal float8 value. * So, widen the value to float8 and hash that. (We must do this rather - * than have hashfloat8 try to narrow its value to float4; that could - * fail on overflow.) + * than have hashfloat8 try to narrow its value to float4; that could fail + * on overflow.) */ key8 = key; diff --git a/src/backend/access/hash/hashovfl.c b/src/backend/access/hash/hashovfl.c index e4ea24a62d1..c510c6e65b7 100644 --- a/src/backend/access/hash/hashovfl.c +++ b/src/backend/access/hash/hashovfl.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/hash/hashovfl.c,v 1.60 2007/09/20 17:56:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/hash/hashovfl.c,v 1.61 2007/11/15 21:14:32 momjian Exp $ * * NOTES * Overflow pages look like ordinary relation pages. @@ -156,7 +156,7 @@ _hash_addovflpage(Relation rel, Buffer metabuf, Buffer buf) /* * _hash_getovflpage() * - * Find an available overflow page and return it. The returned buffer + * Find an available overflow page and return it. The returned buffer * is pinned and write-locked, and has had _hash_pageinit() applied, * but it is caller's responsibility to fill the special space. * @@ -402,9 +402,9 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf, bucket = ovflopaque->hasho_bucket; /* - * Zero the page for debugging's sake; then write and release it. - * (Note: if we failed to zero the page here, we'd have problems - * with the Assert in _hash_pageinit() when the page is reused.) + * Zero the page for debugging's sake; then write and release it. (Note: + * if we failed to zero the page here, we'd have problems with the Assert + * in _hash_pageinit() when the page is reused.) */ MemSet(ovflpage, 0, BufferGetPageSize(ovflbuf)); _hash_wrtbuf(rel, ovflbuf); @@ -420,7 +420,7 @@ _hash_freeovflpage(Relation rel, Buffer ovflbuf, Buffer prevbuf = _hash_getbuf_with_strategy(rel, prevblkno, HASH_WRITE, - LH_BUCKET_PAGE | LH_OVERFLOW_PAGE, + LH_BUCKET_PAGE | LH_OVERFLOW_PAGE, bstrategy); Page prevpage = BufferGetPage(prevbuf); HashPageOpaque prevopaque = (HashPageOpaque) PageGetSpecialPointer(prevpage); diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c index 807dbed8a8c..07f27001a89 100644 --- a/src/backend/access/hash/hashpage.c +++ b/src/backend/access/hash/hashpage.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/hash/hashpage.c,v 1.70 2007/09/20 17:56:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/hash/hashpage.c,v 1.71 2007/11/15 21:14:32 momjian Exp $ * * NOTES * Postgres hash pages look like ordinary relation pages. The opaque @@ -37,7 +37,7 @@ static bool _hash_alloc_buckets(Relation rel, BlockNumber firstblock, - uint32 nblocks); + uint32 nblocks); static void _hash_splitbucket(Relation rel, Buffer metabuf, Bucket obucket, Bucket nbucket, BlockNumber start_oblkno, @@ -138,7 +138,7 @@ _hash_getbuf(Relation rel, BlockNumber blkno, int access, int flags) * * This must be used only to fetch pages that are known to be before * the index's filesystem EOF, but are to be filled from scratch. - * _hash_pageinit() is applied automatically. Otherwise it has + * _hash_pageinit() is applied automatically. Otherwise it has * effects similar to _hash_getbuf() with access = HASH_WRITE. * * When this routine returns, a write lock is set on the @@ -184,7 +184,7 @@ _hash_getinitbuf(Relation rel, BlockNumber blkno) Buffer _hash_getnewbuf(Relation rel, BlockNumber blkno) { - BlockNumber nblocks = RelationGetNumberOfBlocks(rel); + BlockNumber nblocks = RelationGetNumberOfBlocks(rel); Buffer buf; if (blkno == P_NEW) @@ -354,10 +354,10 @@ _hash_metapinit(Relation rel) ffactor = 10; /* - * We initialize the metapage, the first two bucket pages, and the - * first bitmap page in sequence, using _hash_getnewbuf to cause - * smgrextend() calls to occur. This ensures that the smgr level - * has the right idea of the physical index length. + * We initialize the metapage, the first two bucket pages, and the first + * bitmap page in sequence, using _hash_getnewbuf to cause smgrextend() + * calls to occur. This ensures that the smgr level has the right idea of + * the physical index length. */ metabuf = _hash_getnewbuf(rel, HASH_METAPAGE); pg = BufferGetPage(metabuf); @@ -501,15 +501,16 @@ _hash_expandtable(Relation rel, Buffer metabuf) goto fail; /* - * Can't split anymore if maxbucket has reached its maximum possible value. + * Can't split anymore if maxbucket has reached its maximum possible + * value. * * Ideally we'd allow bucket numbers up to UINT_MAX-1 (no higher because * the calculation maxbucket+1 mustn't overflow). Currently we restrict * to half that because of overflow looping in _hash_log2() and * insufficient space in hashm_spares[]. It's moot anyway because an - * index with 2^32 buckets would certainly overflow BlockNumber and - * hence _hash_alloc_buckets() would fail, but if we supported buckets - * smaller than a disk block then this would be an independent constraint. + * index with 2^32 buckets would certainly overflow BlockNumber and hence + * _hash_alloc_buckets() would fail, but if we supported buckets smaller + * than a disk block then this would be an independent constraint. */ if (metap->hashm_maxbucket >= (uint32) 0x7FFFFFFE) goto fail; @@ -536,10 +537,10 @@ _hash_expandtable(Relation rel, Buffer metabuf) /* * Likewise lock the new bucket (should never fail). * - * Note: it is safe to compute the new bucket's blkno here, even though - * we may still need to update the BUCKET_TO_BLKNO mapping. This is - * because the current value of hashm_spares[hashm_ovflpoint] correctly - * shows where we are going to put a new splitpoint's worth of buckets. + * Note: it is safe to compute the new bucket's blkno here, even though we + * may still need to update the BUCKET_TO_BLKNO mapping. This is because + * the current value of hashm_spares[hashm_ovflpoint] correctly shows + * where we are going to put a new splitpoint's worth of buckets. */ start_nblkno = BUCKET_TO_BLKNO(metap, new_bucket); @@ -557,11 +558,12 @@ _hash_expandtable(Relation rel, Buffer metabuf) if (spare_ndx > metap->hashm_ovflpoint) { Assert(spare_ndx == metap->hashm_ovflpoint + 1); + /* - * The number of buckets in the new splitpoint is equal to the - * total number already in existence, i.e. new_bucket. Currently - * this maps one-to-one to blocks required, but someday we may need - * a more complicated calculation here. + * The number of buckets in the new splitpoint is equal to the total + * number already in existence, i.e. new_bucket. Currently this maps + * one-to-one to blocks required, but someday we may need a more + * complicated calculation here. */ if (!_hash_alloc_buckets(rel, start_nblkno, new_bucket)) { @@ -673,14 +675,14 @@ fail: static bool _hash_alloc_buckets(Relation rel, BlockNumber firstblock, uint32 nblocks) { - BlockNumber lastblock; + BlockNumber lastblock; char zerobuf[BLCKSZ]; lastblock = firstblock + nblocks - 1; /* - * Check for overflow in block number calculation; if so, we cannot - * extend the index anymore. + * Check for overflow in block number calculation; if so, we cannot extend + * the index anymore. */ if (lastblock < firstblock || lastblock == InvalidBlockNumber) return false; diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 052393fc6b9..20027592b50 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.244 2007/11/07 12:24:24 petere Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.245 2007/11/15 21:14:32 momjian Exp $ * * * INTERFACE ROUTINES @@ -60,9 +60,9 @@ static HeapScanDesc heap_beginscan_internal(Relation relation, - Snapshot snapshot, - int nkeys, ScanKey key, - bool is_bitmapscan); + Snapshot snapshot, + int nkeys, ScanKey key, + bool is_bitmapscan); static XLogRecPtr log_heap_update(Relation reln, Buffer oldbuf, ItemPointerData from, Buffer newbuf, HeapTuple newtup, bool move); static bool HeapSatisfiesHOTUpdate(Relation relation, Bitmapset *hot_attrs, @@ -85,18 +85,18 @@ initscan(HeapScanDesc scan, ScanKey key) * Determine the number of blocks we have to scan. * * It is sufficient to do this once at scan start, since any tuples added - * while the scan is in progress will be invisible to my snapshot - * anyway. (That is not true when using a non-MVCC snapshot. However, - * we couldn't guarantee to return tuples added after scan start anyway, - * since they might go into pages we already scanned. To guarantee - * consistent results for a non-MVCC snapshot, the caller must hold some - * higher-level lock that ensures the interesting tuple(s) won't change.) + * while the scan is in progress will be invisible to my snapshot anyway. + * (That is not true when using a non-MVCC snapshot. However, we couldn't + * guarantee to return tuples added after scan start anyway, since they + * might go into pages we already scanned. To guarantee consistent + * results for a non-MVCC snapshot, the caller must hold some higher-level + * lock that ensures the interesting tuple(s) won't change.) */ scan->rs_nblocks = RelationGetNumberOfBlocks(scan->rs_rd); /* * If the table is large relative to NBuffers, use a bulk-read access - * strategy and enable synchronized scanning (see syncscan.c). Although + * strategy and enable synchronized scanning (see syncscan.c). Although * the thresholds for these features could be different, we make them the * same so that there are only two behaviors to tune rather than four. * @@ -140,8 +140,8 @@ initscan(HeapScanDesc scan, ScanKey key) memcpy(scan->rs_key, key, scan->rs_nkeys * sizeof(ScanKeyData)); /* - * Currently, we don't have a stats counter for bitmap heap scans - * (but the underlying bitmap index scans will be counted). + * Currently, we don't have a stats counter for bitmap heap scans (but the + * underlying bitmap index scans will be counted). */ if (!scan->rs_bitmapscan) pgstat_count_heap_scan(scan->rs_rd); @@ -283,7 +283,7 @@ heapgettup(HeapScanDesc scan, tuple->t_data = NULL; return; } - page = scan->rs_startblock; /* first page */ + page = scan->rs_startblock; /* first page */ heapgetpage(scan, page); lineoff = FirstOffsetNumber; /* first offnum */ scan->rs_inited = true; @@ -317,6 +317,7 @@ heapgettup(HeapScanDesc scan, tuple->t_data = NULL; return; } + /* * Disable reporting to syncscan logic in a backwards scan; it's * not very likely anyone else is doing the same thing at the same @@ -459,9 +460,9 @@ heapgettup(HeapScanDesc scan, finished = (page == scan->rs_startblock); /* - * Report our new scan position for synchronization purposes. - * We don't do that when moving backwards, however. That would - * just mess up any other forward-moving scanners. + * Report our new scan position for synchronization purposes. We + * don't do that when moving backwards, however. That would just + * mess up any other forward-moving scanners. * * Note: we do this before checking for end of scan so that the * final state of the position hint is back at the start of the @@ -554,7 +555,7 @@ heapgettup_pagemode(HeapScanDesc scan, tuple->t_data = NULL; return; } - page = scan->rs_startblock; /* first page */ + page = scan->rs_startblock; /* first page */ heapgetpage(scan, page); lineindex = 0; scan->rs_inited = true; @@ -585,6 +586,7 @@ heapgettup_pagemode(HeapScanDesc scan, tuple->t_data = NULL; return; } + /* * Disable reporting to syncscan logic in a backwards scan; it's * not very likely anyone else is doing the same thing at the same @@ -719,9 +721,9 @@ heapgettup_pagemode(HeapScanDesc scan, finished = (page == scan->rs_startblock); /* - * Report our new scan position for synchronization purposes. - * We don't do that when moving backwards, however. That would - * just mess up any other forward-moving scanners. + * Report our new scan position for synchronization purposes. We + * don't do that when moving backwards, however. That would just + * mess up any other forward-moving scanners. * * Note: we do this before checking for end of scan so that the * final state of the position hint is back at the start of the @@ -1057,7 +1059,7 @@ heap_openrv(const RangeVar *relation, LOCKMODE lockmode) * heap_beginscan - begin relation scan * * heap_beginscan_bm is an alternative entry point for setting up a HeapScanDesc - * for a bitmap heap scan. Although that scan technology is really quite + * for a bitmap heap scan. Although that scan technology is really quite * unlike a standard seqscan, there is just enough commonality to make it * worth using the same data structure. * ---------------- @@ -1423,10 +1425,10 @@ bool heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot, bool *all_dead) { - Page dp = (Page) BufferGetPage(buffer); + Page dp = (Page) BufferGetPage(buffer); TransactionId prev_xmax = InvalidTransactionId; OffsetNumber offnum; - bool at_chain_start; + bool at_chain_start; if (all_dead) *all_dead = true; @@ -1438,7 +1440,7 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot, /* Scan through possible multiple members of HOT-chain */ for (;;) { - ItemId lp; + ItemId lp; HeapTupleData heapTuple; /* check for bogus TID */ @@ -1472,7 +1474,8 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot, break; /* - * The xmin should match the previous xmax value, else chain is broken. + * The xmin should match the previous xmax value, else chain is + * broken. */ if (TransactionIdIsValid(prev_xmax) && !TransactionIdEquals(prev_xmax, @@ -1499,8 +1502,8 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot, *all_dead = false; /* - * Check to see if HOT chain continues past this tuple; if so - * fetch the next offnum and loop around. + * Check to see if HOT chain continues past this tuple; if so fetch + * the next offnum and loop around. */ if (HeapTupleIsHotUpdated(&heapTuple)) { @@ -1511,7 +1514,7 @@ heap_hot_search_buffer(ItemPointer tid, Buffer buffer, Snapshot snapshot, prev_xmax = HeapTupleHeaderGetXmax(heapTuple.t_data); } else - break; /* end of chain */ + break; /* end of chain */ } return false; @@ -1528,8 +1531,8 @@ bool heap_hot_search(ItemPointer tid, Relation relation, Snapshot snapshot, bool *all_dead) { - bool result; - Buffer buffer; + bool result; + Buffer buffer; buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid)); LockBuffer(buffer, BUFFER_LOCK_SHARE); @@ -1665,7 +1668,7 @@ heap_get_latest_tid(Relation relation, * * This is called after we have waited for the XMAX transaction to terminate. * If the transaction aborted, we guarantee the XMAX_INVALID hint bit will - * be set on exit. If the transaction committed, we set the XMAX_COMMITTED + * be set on exit. If the transaction committed, we set the XMAX_COMMITTED * hint bit if possible --- but beware that that may not yet be possible, * if the transaction committed asynchronously. Hence callers should look * only at XMAX_INVALID. @@ -2069,7 +2072,7 @@ l1: /* * If this transaction commits, the tuple will become DEAD sooner or * later. Set flag that this page is a candidate for pruning once our xid - * falls below the OldestXmin horizon. If the transaction finally aborts, + * falls below the OldestXmin horizon. If the transaction finally aborts, * the subsequent page pruning will be a no-op and the hint will be * cleared. */ @@ -2252,15 +2255,15 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup, /* * Fetch the list of attributes to be checked for HOT update. This is - * wasted effort if we fail to update or have to put the new tuple on - * a different page. But we must compute the list before obtaining - * buffer lock --- in the worst case, if we are doing an update on one - * of the relevant system catalogs, we could deadlock if we try to - * fetch the list later. In any case, the relcache caches the data - * so this is usually pretty cheap. + * wasted effort if we fail to update or have to put the new tuple on a + * different page. But we must compute the list before obtaining buffer + * lock --- in the worst case, if we are doing an update on one of the + * relevant system catalogs, we could deadlock if we try to fetch the list + * later. In any case, the relcache caches the data so this is usually + * pretty cheap. * - * Note that we get a copy here, so we need not worry about relcache - * flush happening midway through. + * Note that we get a copy here, so we need not worry about relcache flush + * happening midway through. */ hot_attrs = RelationGetIndexAttrBitmap(relation); @@ -2555,7 +2558,7 @@ l2: { /* * Since the new tuple is going into the same page, we might be able - * to do a HOT update. Check if any of the index columns have been + * to do a HOT update. Check if any of the index columns have been * changed. If not, then HOT update is possible. */ if (HeapSatisfiesHOTUpdate(relation, hot_attrs, &oldtup, heaptup)) @@ -2573,14 +2576,14 @@ l2: /* * If this transaction commits, the old tuple will become DEAD sooner or * later. Set flag that this page is a candidate for pruning once our xid - * falls below the OldestXmin horizon. If the transaction finally aborts, + * falls below the OldestXmin horizon. If the transaction finally aborts, * the subsequent page pruning will be a no-op and the hint will be * cleared. * - * XXX Should we set hint on newbuf as well? If the transaction - * aborts, there would be a prunable tuple in the newbuf; but for now - * we choose not to optimize for aborts. Note that heap_xlog_update - * must be kept in sync if this decision changes. + * XXX Should we set hint on newbuf as well? If the transaction aborts, + * there would be a prunable tuple in the newbuf; but for now we choose + * not to optimize for aborts. Note that heap_xlog_update must be kept in + * sync if this decision changes. */ PageSetPrunable(dp, xid); @@ -2695,22 +2698,24 @@ static bool heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum, HeapTuple tup1, HeapTuple tup2) { - Datum value1, value2; - bool isnull1, isnull2; + Datum value1, + value2; + bool isnull1, + isnull2; Form_pg_attribute att; /* * If it's a whole-tuple reference, say "not equal". It's not really - * worth supporting this case, since it could only succeed after a - * no-op update, which is hardly a case worth optimizing for. + * worth supporting this case, since it could only succeed after a no-op + * update, which is hardly a case worth optimizing for. */ if (attrnum == 0) return false; /* - * Likewise, automatically say "not equal" for any system attribute - * other than OID and tableOID; we cannot expect these to be consistent - * in a HOT chain, or even to be set correctly yet in the new tuple. + * Likewise, automatically say "not equal" for any system attribute other + * than OID and tableOID; we cannot expect these to be consistent in a HOT + * chain, or even to be set correctly yet in the new tuple. */ if (attrnum < 0) { @@ -2720,17 +2725,17 @@ heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum, } /* - * Extract the corresponding values. XXX this is pretty inefficient - * if there are many indexed columns. Should HeapSatisfiesHOTUpdate - * do a single heap_deform_tuple call on each tuple, instead? But - * that doesn't work for system columns ... + * Extract the corresponding values. XXX this is pretty inefficient if + * there are many indexed columns. Should HeapSatisfiesHOTUpdate do a + * single heap_deform_tuple call on each tuple, instead? But that doesn't + * work for system columns ... */ value1 = heap_getattr(tup1, attrnum, tupdesc, &isnull1); value2 = heap_getattr(tup2, attrnum, tupdesc, &isnull2); /* - * If one value is NULL and other is not, then they are certainly - * not equal + * If one value is NULL and other is not, then they are certainly not + * equal */ if (isnull1 != isnull2) return false; @@ -2744,7 +2749,7 @@ heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum, /* * We do simple binary comparison of the two datums. This may be overly * strict because there can be multiple binary representations for the - * same logical value. But we should be OK as long as there are no false + * same logical value. But we should be OK as long as there are no false * positives. Using a type-specific equality operator is messy because * there could be multiple notions of equality in different operator * classes; furthermore, we cannot safely invoke user-defined functions @@ -2758,7 +2763,7 @@ heap_tuple_attr_equals(TupleDesc tupdesc, int attrnum, else { Assert(attrnum <= tupdesc->natts); - att = tupdesc->attrs[attrnum - 1]; + att = tupdesc->attrs[attrnum - 1]; return datumIsEqual(value1, value2, att->attbyval, att->attlen); } } @@ -2779,7 +2784,7 @@ static bool HeapSatisfiesHOTUpdate(Relation relation, Bitmapset *hot_attrs, HeapTuple oldtup, HeapTuple newtup) { - int attrnum; + int attrnum; while ((attrnum = bms_first_member(hot_attrs)) >= 0) { @@ -3094,15 +3099,15 @@ l3: } /* - * We might already hold the desired lock (or stronger), possibly under - * a different subtransaction of the current top transaction. If so, - * there is no need to change state or issue a WAL record. We already - * handled the case where this is true for xmax being a MultiXactId, - * so now check for cases where it is a plain TransactionId. + * We might already hold the desired lock (or stronger), possibly under a + * different subtransaction of the current top transaction. If so, there + * is no need to change state or issue a WAL record. We already handled + * the case where this is true for xmax being a MultiXactId, so now check + * for cases where it is a plain TransactionId. * * Note in particular that this covers the case where we already hold - * exclusive lock on the tuple and the caller only wants shared lock. - * It would certainly not do to give up the exclusive lock. + * exclusive lock on the tuple and the caller only wants shared lock. It + * would certainly not do to give up the exclusive lock. */ xmax = HeapTupleHeaderGetXmax(tuple->t_data); old_infomask = tuple->t_data->t_infomask; @@ -3179,8 +3184,8 @@ l3: { /* * If the XMAX is a valid TransactionId, then we need to - * create a new MultiXactId that includes both the old - * locker and our own TransactionId. + * create a new MultiXactId that includes both the old locker + * and our own TransactionId. */ xid = MultiXactIdCreate(xmax, xid); new_infomask |= HEAP_XMAX_IS_MULTI; @@ -3214,8 +3219,8 @@ l3: /* * Store transaction information of xact locking the tuple. * - * Note: Cmax is meaningless in this context, so don't set it; this - * avoids possibly generating a useless combo CID. + * Note: Cmax is meaningless in this context, so don't set it; this avoids + * possibly generating a useless combo CID. */ tuple->t_data->t_infomask = new_infomask; HeapTupleHeaderClearHotUpdated(tuple->t_data); @@ -3425,6 +3430,7 @@ heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid, buf = InvalidBuffer; } HeapTupleHeaderSetXmin(tuple, FrozenTransactionId); + /* * Might as well fix the hint bits too; usually XMIN_COMMITTED will * already be set here, but there's a small chance not. @@ -3437,9 +3443,9 @@ heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid, /* * When we release shared lock, it's possible for someone else to change * xmax before we get the lock back, so repeat the check after acquiring - * exclusive lock. (We don't need this pushup for xmin, because only - * VACUUM could be interested in changing an existing tuple's xmin, - * and there's only one VACUUM allowed on a table at a time.) + * exclusive lock. (We don't need this pushup for xmin, because only + * VACUUM could be interested in changing an existing tuple's xmin, and + * there's only one VACUUM allowed on a table at a time.) */ recheck_xmax: if (!(tuple->t_infomask & HEAP_XMAX_IS_MULTI)) @@ -3454,13 +3460,14 @@ recheck_xmax: LockBuffer(buf, BUFFER_LOCK_UNLOCK); LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); buf = InvalidBuffer; - goto recheck_xmax; /* see comment above */ + goto recheck_xmax; /* see comment above */ } HeapTupleHeaderSetXmax(tuple, InvalidTransactionId); + /* - * The tuple might be marked either XMAX_INVALID or - * XMAX_COMMITTED + LOCKED. Normalize to INVALID just to be - * sure no one gets confused. + * The tuple might be marked either XMAX_INVALID or XMAX_COMMITTED + * + LOCKED. Normalize to INVALID just to be sure no one gets + * confused. */ tuple->t_infomask &= ~HEAP_XMAX_COMMITTED; tuple->t_infomask |= HEAP_XMAX_INVALID; @@ -3506,8 +3513,9 @@ recheck_xvac: LockBuffer(buf, BUFFER_LOCK_UNLOCK); LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); buf = InvalidBuffer; - goto recheck_xvac; /* see comment above */ + goto recheck_xvac; /* see comment above */ } + /* * If a MOVED_OFF tuple is not dead, the xvac transaction must * have failed; whereas a non-dead MOVED_IN tuple must mean the @@ -3517,9 +3525,10 @@ recheck_xvac: HeapTupleHeaderSetXvac(tuple, InvalidTransactionId); else HeapTupleHeaderSetXvac(tuple, FrozenTransactionId); + /* - * Might as well fix the hint bits too; usually XMIN_COMMITTED will - * already be set here, but there's a small chance not. + * Might as well fix the hint bits too; usually XMIN_COMMITTED + * will already be set here, but there's a small chance not. */ Assert(!(tuple->t_infomask & HEAP_XMIN_INVALID)); tuple->t_infomask |= HEAP_XMIN_COMMITTED; @@ -3632,8 +3641,8 @@ log_heap_clean(Relation reln, Buffer buffer, /* * The OffsetNumber arrays are not actually in the buffer, but we pretend * that they are. When XLogInsert stores the whole buffer, the offset - * arrays need not be stored too. Note that even if all three arrays - * are empty, we want to expose the buffer as a candidate for whole-page + * arrays need not be stored too. Note that even if all three arrays are + * empty, we want to expose the buffer as a candidate for whole-page * storage, since this record type implies a defragmentation operation * even if no item pointers changed state. */ @@ -3686,7 +3695,7 @@ log_heap_clean(Relation reln, Buffer buffer, } /* - * Perform XLogInsert for a heap-freeze operation. Caller must already + * Perform XLogInsert for a heap-freeze operation. Caller must already * have modified the buffer and marked it dirty. */ XLogRecPtr @@ -3711,9 +3720,9 @@ log_heap_freeze(Relation reln, Buffer buffer, rdata[0].next = &(rdata[1]); /* - * The tuple-offsets array is not actually in the buffer, but pretend - * that it is. When XLogInsert stores the whole buffer, the offsets array - * need not be stored too. + * The tuple-offsets array is not actually in the buffer, but pretend that + * it is. When XLogInsert stores the whole buffer, the offsets array need + * not be stored too. */ if (offcnt > 0) { @@ -3853,7 +3862,7 @@ log_heap_move(Relation reln, Buffer oldbuf, ItemPointerData from, * for writing the page to disk after calling this routine. * * Note: all current callers build pages in private memory and write them - * directly to smgr, rather than using bufmgr. Therefore there is no need + * directly to smgr, rather than using bufmgr. Therefore there is no need * to pass a buffer ID to XLogInsert, nor to perform MarkBufferDirty within * the critical section. * @@ -3905,9 +3914,9 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move) Page page; OffsetNumber *offnum; OffsetNumber *end; - int nredirected; - int ndead; - int i; + int nredirected; + int ndead; + int i; if (record->xl_info & XLR_BKP_BLOCK_1) return; @@ -3934,12 +3943,12 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move) { OffsetNumber fromoff = *offnum++; OffsetNumber tooff = *offnum++; - ItemId fromlp = PageGetItemId(page, fromoff); + ItemId fromlp = PageGetItemId(page, fromoff); if (clean_move) { /* Physically move the "to" item to the "from" slot */ - ItemId tolp = PageGetItemId(page, tooff); + ItemId tolp = PageGetItemId(page, tooff); HeapTupleHeader htup; *fromlp = *tolp; @@ -3962,7 +3971,7 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move) for (i = 0; i < ndead; i++) { OffsetNumber off = *offnum++; - ItemId lp = PageGetItemId(page, off); + ItemId lp = PageGetItemId(page, off); ItemIdSetDead(lp); } @@ -3971,14 +3980,14 @@ heap_xlog_clean(XLogRecPtr lsn, XLogRecord *record, bool clean_move) while (offnum < end) { OffsetNumber off = *offnum++; - ItemId lp = PageGetItemId(page, off); + ItemId lp = PageGetItemId(page, off); ItemIdSetUnused(lp); } /* - * Finally, repair any fragmentation, and update the page's hint bit - * about whether it has free pointers. + * Finally, repair any fragmentation, and update the page's hint bit about + * whether it has free pointers. */ PageRepairFragmentation(page); @@ -4617,7 +4626,7 @@ heap_desc(StringInfo buf, uint8 xl_info, char *rec) { xl_heap_update *xlrec = (xl_heap_update *) rec; - if (xl_info & XLOG_HEAP_INIT_PAGE) /* can this case happen? */ + if (xl_info & XLOG_HEAP_INIT_PAGE) /* can this case happen? */ appendStringInfo(buf, "hot_update(init): "); else appendStringInfo(buf, "hot_update: "); @@ -4724,7 +4733,7 @@ heap_sync(Relation rel) /* toast heap, if any */ if (OidIsValid(rel->rd_rel->reltoastrelid)) { - Relation toastrel; + Relation toastrel; toastrel = heap_open(rel->rd_rel->reltoastrelid, AccessShareLock); FlushRelationBuffers(toastrel); diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c index 9723241547f..067b23f24cc 100644 --- a/src/backend/access/heap/pruneheap.c +++ b/src/backend/access/heap/pruneheap.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/pruneheap.c,v 1.3 2007/10/24 13:05:57 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/pruneheap.c,v 1.4 2007/11/15 21:14:32 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -22,21 +22,21 @@ /* Local functions */ -static int heap_prune_chain(Relation relation, Buffer buffer, - OffsetNumber rootoffnum, - TransactionId OldestXmin, - OffsetNumber *redirected, int *nredirected, - OffsetNumber *nowdead, int *ndead, - OffsetNumber *nowunused, int *nunused, - bool redirect_move); +static int heap_prune_chain(Relation relation, Buffer buffer, + OffsetNumber rootoffnum, + TransactionId OldestXmin, + OffsetNumber *redirected, int *nredirected, + OffsetNumber *nowdead, int *ndead, + OffsetNumber *nowunused, int *nunused, + bool redirect_move); static void heap_prune_record_redirect(OffsetNumber *redirected, - int *nredirected, - OffsetNumber offnum, - OffsetNumber rdoffnum); + int *nredirected, + OffsetNumber offnum, + OffsetNumber rdoffnum); static void heap_prune_record_dead(OffsetNumber *nowdead, int *ndead, - OffsetNumber offnum); + OffsetNumber offnum); static void heap_prune_record_unused(OffsetNumber *nowunused, int *nunused, - OffsetNumber offnum); + OffsetNumber offnum); /* @@ -70,16 +70,16 @@ heap_page_prune_opt(Relation relation, Buffer buffer, TransactionId OldestXmin) return; /* - * We prune when a previous UPDATE failed to find enough space on the - * page for a new tuple version, or when free space falls below the - * relation's fill-factor target (but not less than 10%). + * We prune when a previous UPDATE failed to find enough space on the page + * for a new tuple version, or when free space falls below the relation's + * fill-factor target (but not less than 10%). * - * Checking free space here is questionable since we aren't holding - * any lock on the buffer; in the worst case we could get a bogus - * answer. It's unlikely to be *seriously* wrong, though, since - * reading either pd_lower or pd_upper is probably atomic. Avoiding - * taking a lock seems better than sometimes getting a wrong answer - * in what is after all just a heuristic estimate. + * Checking free space here is questionable since we aren't holding any + * lock on the buffer; in the worst case we could get a bogus answer. + * It's unlikely to be *seriously* wrong, though, since reading either + * pd_lower or pd_upper is probably atomic. Avoiding taking a lock seems + * better than sometimes getting a wrong answer in what is after all just + * a heuristic estimate. */ minfree = RelationGetTargetPageFreeSpace(relation, HEAP_DEFAULT_FILLFACTOR); @@ -93,9 +93,9 @@ heap_page_prune_opt(Relation relation, Buffer buffer, TransactionId OldestXmin) /* * Now that we have buffer lock, get accurate information about the - * page's free space, and recheck the heuristic about whether to prune. - * (We needn't recheck PageIsPrunable, since no one else could have - * pruned while we hold pin.) + * page's free space, and recheck the heuristic about whether to + * prune. (We needn't recheck PageIsPrunable, since no one else could + * have pruned while we hold pin.) */ if (PageIsFull(dp) || PageGetHeapFreeSpace((Page) dp) < minfree) { @@ -119,7 +119,7 @@ heap_page_prune_opt(Relation relation, Buffer buffer, TransactionId OldestXmin) * * If redirect_move is set, we remove redirecting line pointers by * updating the root line pointer to point directly to the first non-dead - * tuple in the chain. NOTE: eliminating the redirect changes the first + * tuple in the chain. NOTE: eliminating the redirect changes the first * tuple's effective CTID, and is therefore unsafe except within VACUUM FULL. * The only reason we support this capability at all is that by using it, * VACUUM FULL need not cope with LP_REDIRECT items at all; which seems a @@ -136,18 +136,18 @@ int heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, bool redirect_move, bool report_stats) { - int ndeleted = 0; - Page page = BufferGetPage(buffer); - OffsetNumber offnum, - maxoff; - OffsetNumber redirected[MaxHeapTuplesPerPage * 2]; - OffsetNumber nowdead[MaxHeapTuplesPerPage]; - OffsetNumber nowunused[MaxHeapTuplesPerPage]; - int nredirected = 0; - int ndead = 0; - int nunused = 0; - bool page_was_full = false; - TransactionId save_prune_xid; + int ndeleted = 0; + Page page = BufferGetPage(buffer); + OffsetNumber offnum, + maxoff; + OffsetNumber redirected[MaxHeapTuplesPerPage * 2]; + OffsetNumber nowdead[MaxHeapTuplesPerPage]; + OffsetNumber nowunused[MaxHeapTuplesPerPage]; + int nredirected = 0; + int ndead = 0; + int nunused = 0; + bool page_was_full = false; + TransactionId save_prune_xid; START_CRIT_SECTION(); @@ -159,7 +159,7 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, save_prune_xid = ((PageHeader) page)->pd_prune_xid; PageClearPrunable(page); - /* + /* * Also clear the "page is full" flag if it is set, since there's no point * in repeating the prune/defrag process until something else happens to * the page. @@ -176,7 +176,7 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { - ItemId itemid = PageGetItemId(page, offnum); + ItemId itemid = PageGetItemId(page, offnum); /* Nothing to do if slot is empty or already dead */ if (!ItemIdIsUsed(itemid) || ItemIdIsDead(itemid)) @@ -233,9 +233,9 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, END_CRIT_SECTION(); /* - * If requested, report the number of tuples reclaimed to pgstats. - * This is ndeleted minus ndead, because we don't want to count a now-DEAD - * root item as a deletion for this purpose. + * If requested, report the number of tuples reclaimed to pgstats. This is + * ndeleted minus ndead, because we don't want to count a now-DEAD root + * item as a deletion for this purpose. */ if (report_stats && ndeleted > ndead) pgstat_update_heap_dead_tuples(relation, ndeleted - ndead); @@ -243,19 +243,17 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, /* * XXX Should we update the FSM information of this page ? * - * There are two schools of thought here. We may not want to update - * FSM information so that the page is not used for unrelated - * UPDATEs/INSERTs and any free space in this page will remain - * available for further UPDATEs in *this* page, thus improving - * chances for doing HOT updates. + * There are two schools of thought here. We may not want to update FSM + * information so that the page is not used for unrelated UPDATEs/INSERTs + * and any free space in this page will remain available for further + * UPDATEs in *this* page, thus improving chances for doing HOT updates. * - * But for a large table and where a page does not receive further - * UPDATEs for a long time, we might waste this space by not - * updating the FSM information. The relation may get extended and - * fragmented further. + * But for a large table and where a page does not receive further UPDATEs + * for a long time, we might waste this space by not updating the FSM + * information. The relation may get extended and fragmented further. * - * One possibility is to leave "fillfactor" worth of space in this - * page and update FSM with the remaining space. + * One possibility is to leave "fillfactor" worth of space in this page + * and update FSM with the remaining space. * * In any case, the current FSM implementation doesn't accept * one-page-at-a-time updates, so this is all academic for now. @@ -298,17 +296,17 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, OffsetNumber *nowunused, int *nunused, bool redirect_move) { - int ndeleted = 0; - Page dp = (Page) BufferGetPage(buffer); - TransactionId priorXmax = InvalidTransactionId; - ItemId rootlp; - HeapTupleHeader htup; - OffsetNumber latestdead = InvalidOffsetNumber, - maxoff = PageGetMaxOffsetNumber(dp), - offnum; - OffsetNumber chainitems[MaxHeapTuplesPerPage]; - int nchain = 0, - i; + int ndeleted = 0; + Page dp = (Page) BufferGetPage(buffer); + TransactionId priorXmax = InvalidTransactionId; + ItemId rootlp; + HeapTupleHeader htup; + OffsetNumber latestdead = InvalidOffsetNumber, + maxoff = PageGetMaxOffsetNumber(dp), + offnum; + OffsetNumber chainitems[MaxHeapTuplesPerPage]; + int nchain = 0, + i; rootlp = PageGetItemId(dp, rootoffnum); @@ -321,14 +319,14 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, if (HeapTupleHeaderIsHeapOnly(htup)) { /* - * If the tuple is DEAD and doesn't chain to anything else, mark it - * unused immediately. (If it does chain, we can only remove it as - * part of pruning its chain.) + * If the tuple is DEAD and doesn't chain to anything else, mark + * it unused immediately. (If it does chain, we can only remove + * it as part of pruning its chain.) * * We need this primarily to handle aborted HOT updates, that is, - * XMIN_INVALID heap-only tuples. Those might not be linked to - * by any chain, since the parent tuple might be re-updated before - * any pruning occurs. So we have to be able to reap them + * XMIN_INVALID heap-only tuples. Those might not be linked to by + * any chain, since the parent tuple might be re-updated before + * any pruning occurs. So we have to be able to reap them * separately from chain-pruning. * * Note that we might first arrive at a dead heap-only tuple @@ -354,9 +352,9 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, /* while not end of the chain */ for (;;) { - ItemId lp; - bool tupdead, - recent_dead; + ItemId lp; + bool tupdead, + recent_dead; /* Some sanity checks */ if (offnum < FirstOffsetNumber || offnum > maxoff) @@ -368,9 +366,9 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, break; /* - * If we are looking at the redirected root line pointer, - * jump to the first normal tuple in the chain. If we find - * a redirect somewhere else, stop --- it must not be same chain. + * If we are looking at the redirected root line pointer, jump to the + * first normal tuple in the chain. If we find a redirect somewhere + * else, stop --- it must not be same chain. */ if (ItemIdIsRedirected(lp)) { @@ -382,9 +380,9 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, } /* - * Likewise, a dead item pointer can't be part of the chain. - * (We already eliminated the case of dead root tuple outside - * this function.) + * Likewise, a dead item pointer can't be part of the chain. (We + * already eliminated the case of dead root tuple outside this + * function.) */ if (ItemIdIsDead(lp)) break; @@ -417,6 +415,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, case HEAPTUPLE_RECENTLY_DEAD: recent_dead = true; + /* * This tuple may soon become DEAD. Update the hint field so * that the page is reconsidered for pruning in future. @@ -425,6 +424,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, break; case HEAPTUPLE_DELETE_IN_PROGRESS: + /* * This tuple may soon become DEAD. Update the hint field so * that the page is reconsidered for pruning in future. @@ -434,11 +434,12 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, case HEAPTUPLE_LIVE: case HEAPTUPLE_INSERT_IN_PROGRESS: + /* * If we wanted to optimize for aborts, we might consider * marking the page prunable when we see INSERT_IN_PROGRESS. - * But we don't. See related decisions about when to mark - * the page prunable in heapam.c. + * But we don't. See related decisions about when to mark the + * page prunable in heapam.c. */ break; @@ -486,12 +487,12 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, * Mark as unused each intermediate item that we are able to remove * from the chain. * - * When the previous item is the last dead tuple seen, we are at - * the right candidate for redirection. + * When the previous item is the last dead tuple seen, we are at the + * right candidate for redirection. */ for (i = 1; (i < nchain) && (chainitems[i - 1] != latestdead); i++) { - ItemId lp = PageGetItemId(dp, chainitems[i]); + ItemId lp = PageGetItemId(dp, chainitems[i]); ItemIdSetUnused(lp); heap_prune_record_unused(nowunused, nunused, chainitems[i]); @@ -499,17 +500,17 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, } /* - * If the root entry had been a normal tuple, we are deleting it, - * so count it in the result. But changing a redirect (even to - * DEAD state) doesn't count. + * If the root entry had been a normal tuple, we are deleting it, so + * count it in the result. But changing a redirect (even to DEAD + * state) doesn't count. */ if (ItemIdIsNormal(rootlp)) ndeleted++; /* * If the DEAD tuple is at the end of the chain, the entire chain is - * dead and the root line pointer can be marked dead. Otherwise - * just redirect the root to the correct chain member. + * dead and the root line pointer can be marked dead. Otherwise just + * redirect the root to the correct chain member. */ if (i >= nchain) { @@ -528,25 +529,25 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, { /* * We found a redirect item that doesn't point to a valid follow-on - * item. This can happen if the loop in heap_page_prune caused us - * to visit the dead successor of a redirect item before visiting - * the redirect item. We can clean up by setting the redirect item - * to DEAD state. + * item. This can happen if the loop in heap_page_prune caused us to + * visit the dead successor of a redirect item before visiting the + * redirect item. We can clean up by setting the redirect item to + * DEAD state. */ ItemIdSetDead(rootlp); heap_prune_record_dead(nowdead, ndead, rootoffnum); } /* - * If requested, eliminate LP_REDIRECT items by moving tuples. Note that + * If requested, eliminate LP_REDIRECT items by moving tuples. Note that * if the root item is LP_REDIRECT and doesn't point to a valid follow-on * item, we already killed it above. */ if (redirect_move && ItemIdIsRedirected(rootlp)) { OffsetNumber firstoffnum = ItemIdGetRedirect(rootlp); - ItemId firstlp = PageGetItemId(dp, firstoffnum); - HeapTupleData firsttup; + ItemId firstlp = PageGetItemId(dp, firstoffnum); + HeapTupleData firsttup; Assert(ItemIdIsNormal(firstlp)); /* Set up firsttup to reference the tuple at its existing CTID */ @@ -558,15 +559,15 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, firsttup.t_tableOid = RelationGetRelid(relation); /* - * Mark the tuple for invalidation. Needed because we're changing - * its CTID. + * Mark the tuple for invalidation. Needed because we're changing its + * CTID. */ CacheInvalidateHeapTuple(relation, &firsttup); /* - * Change heap-only status of the tuple because after the line - * pointer manipulation, it's no longer a heap-only tuple, but is - * directly pointed to by index entries. + * Change heap-only status of the tuple because after the line pointer + * manipulation, it's no longer a heap-only tuple, but is directly + * pointed to by index entries. */ Assert(HeapTupleIsHeapOnly(&firsttup)); HeapTupleClearHeapOnly(&firsttup); @@ -594,7 +595,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, /* Record newly-redirected item pointer */ static void heap_prune_record_redirect(OffsetNumber *redirected, int *nredirected, - OffsetNumber offnum, OffsetNumber rdoffnum) + OffsetNumber offnum, OffsetNumber rdoffnum) { Assert(*nredirected < MaxHeapTuplesPerPage); redirected[*nredirected * 2] = offnum; @@ -641,17 +642,18 @@ heap_prune_record_unused(OffsetNumber *nowunused, int *nunused, void heap_get_root_tuples(Page page, OffsetNumber *root_offsets) { - OffsetNumber offnum, maxoff; + OffsetNumber offnum, + maxoff; MemSet(root_offsets, 0, MaxHeapTuplesPerPage * sizeof(OffsetNumber)); maxoff = PageGetMaxOffsetNumber(page); for (offnum = FirstOffsetNumber; offnum <= maxoff; offnum++) { - ItemId lp = PageGetItemId(page, offnum); - HeapTupleHeader htup; - OffsetNumber nextoffnum; - TransactionId priorXmax; + ItemId lp = PageGetItemId(page, offnum); + HeapTupleHeader htup; + OffsetNumber nextoffnum; + TransactionId priorXmax; /* skip unused and dead items */ if (!ItemIdIsUsed(lp) || ItemIdIsDead(lp)) diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c index e8c5eec50ac..20c5938ff27 100644 --- a/src/backend/access/heap/rewriteheap.c +++ b/src/backend/access/heap/rewriteheap.c @@ -10,7 +10,7 @@ * * The caller is responsible for creating the new heap, all catalog * changes, supplying the tuples to be written to the new heap, and - * rebuilding indexes. The caller must hold AccessExclusiveLock on the + * rebuilding indexes. The caller must hold AccessExclusiveLock on the * target table, because we assume no one else is writing into it. * * To use the facility: @@ -18,13 +18,13 @@ * begin_heap_rewrite * while (fetch next tuple) * { - * if (tuple is dead) - * rewrite_heap_dead_tuple - * else - * { - * // do any transformations here if required - * rewrite_heap_tuple - * } + * if (tuple is dead) + * rewrite_heap_dead_tuple + * else + * { + * // do any transformations here if required + * rewrite_heap_tuple + * } * } * end_heap_rewrite * @@ -43,7 +43,7 @@ * to substitute the correct ctid instead. * * For each ctid reference from A -> B, we might encounter either A first - * or B first. (Note that a tuple in the middle of a chain is both A and B + * or B first. (Note that a tuple in the middle of a chain is both A and B * of different pairs.) * * If we encounter A first, we'll store the tuple in the unresolved_tups @@ -58,11 +58,11 @@ * and can write A immediately with the correct ctid. * * Entries in the hash tables can be removed as soon as the later tuple - * is encountered. That helps to keep the memory usage down. At the end, + * is encountered. That helps to keep the memory usage down. At the end, * both tables are usually empty; we should have encountered both A and B * of each pair. However, it's possible for A to be RECENTLY_DEAD and B * entirely DEAD according to HeapTupleSatisfiesVacuum, because the test - * for deadness using OldestXmin is not exact. In such a case we might + * for deadness using OldestXmin is not exact. In such a case we might * encounter B first, and skip it, and find A later. Then A would be added * to unresolved_tups, and stay there until end of the rewrite. Since * this case is very unusual, we don't worry about the memory usage. @@ -78,7 +78,7 @@ * of CLUSTERing on an unchanging key column, we'll see all the versions * of a given tuple together anyway, and so the peak memory usage is only * proportional to the number of RECENTLY_DEAD versions of a single row, not - * in the whole table. Note that if we do fail halfway through a CLUSTER, + * in the whole table. Note that if we do fail halfway through a CLUSTER, * the old table is still valid, so failure is not catastrophic. * * We can't use the normal heap_insert function to insert into the new @@ -96,7 +96,7 @@ * Portions Copyright (c) 1994-5, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.7 2007/09/20 17:56:30 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.8 2007/11/15 21:14:32 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -116,20 +116,20 @@ */ typedef struct RewriteStateData { - Relation rs_new_rel; /* destination heap */ - Page rs_buffer; /* page currently being built */ - BlockNumber rs_blockno; /* block where page will go */ - bool rs_buffer_valid; /* T if any tuples in buffer */ - bool rs_use_wal; /* must we WAL-log inserts? */ - TransactionId rs_oldest_xmin; /* oldest xmin used by caller to + Relation rs_new_rel; /* destination heap */ + Page rs_buffer; /* page currently being built */ + BlockNumber rs_blockno; /* block where page will go */ + bool rs_buffer_valid; /* T if any tuples in buffer */ + bool rs_use_wal; /* must we WAL-log inserts? */ + TransactionId rs_oldest_xmin; /* oldest xmin used by caller to * determine tuple visibility */ - TransactionId rs_freeze_xid; /* Xid that will be used as freeze - * cutoff point */ - MemoryContext rs_cxt; /* for hash tables and entries and - * tuples in them */ - HTAB *rs_unresolved_tups; /* unmatched A tuples */ - HTAB *rs_old_new_tid_map; /* unmatched B tuples */ -} RewriteStateData; + TransactionId rs_freeze_xid;/* Xid that will be used as freeze cutoff + * point */ + MemoryContext rs_cxt; /* for hash tables and entries and tuples in + * them */ + HTAB *rs_unresolved_tups; /* unmatched A tuples */ + HTAB *rs_old_new_tid_map; /* unmatched B tuples */ +} RewriteStateData; /* * The lookup keys for the hash tables are tuple TID and xmin (we must check @@ -139,27 +139,27 @@ typedef struct RewriteStateData */ typedef struct { - TransactionId xmin; /* tuple xmin */ + TransactionId xmin; /* tuple xmin */ ItemPointerData tid; /* tuple location in old heap */ -} TidHashKey; +} TidHashKey; /* * Entry structures for the hash tables */ typedef struct { - TidHashKey key; /* expected xmin/old location of B tuple */ + TidHashKey key; /* expected xmin/old location of B tuple */ ItemPointerData old_tid; /* A's location in the old heap */ - HeapTuple tuple; /* A's tuple contents */ -} UnresolvedTupData; + HeapTuple tuple; /* A's tuple contents */ +} UnresolvedTupData; typedef UnresolvedTupData *UnresolvedTup; typedef struct { - TidHashKey key; /* actual xmin/old location of B tuple */ + TidHashKey key; /* actual xmin/old location of B tuple */ ItemPointerData new_tid; /* where we put it in the new heap */ -} OldToNewMappingData; +} OldToNewMappingData; typedef OldToNewMappingData *OldToNewMapping; @@ -189,8 +189,8 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin, HASHCTL hash_ctl; /* - * To ease cleanup, make a separate context that will contain - * the RewriteState struct itself plus all subsidiary data. + * To ease cleanup, make a separate context that will contain the + * RewriteState struct itself plus all subsidiary data. */ rw_cxt = AllocSetContextCreate(CurrentMemoryContext, "Table rewrite", @@ -221,7 +221,7 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin, state->rs_unresolved_tups = hash_create("Rewrite / Unresolved ctids", - 128, /* arbitrary initial size */ + 128, /* arbitrary initial size */ &hash_ctl, HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT); @@ -229,7 +229,7 @@ begin_heap_rewrite(Relation new_heap, TransactionId oldest_xmin, state->rs_old_new_tid_map = hash_create("Rewrite / Old to new tid map", - 128, /* arbitrary initial size */ + 128, /* arbitrary initial size */ &hash_ctl, HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT); @@ -250,8 +250,8 @@ end_heap_rewrite(RewriteState state) UnresolvedTup unresolved; /* - * Write any remaining tuples in the UnresolvedTups table. If we have - * any left, they should in fact be dead, but let's err on the safe side. + * Write any remaining tuples in the UnresolvedTups table. If we have any + * left, they should in fact be dead, but let's err on the safe side. * * XXX this really is a waste of code no? */ @@ -276,15 +276,15 @@ end_heap_rewrite(RewriteState state) } /* - * If the rel isn't temp, must fsync before commit. We use heap_sync - * to ensure that the toast table gets fsync'd too. + * If the rel isn't temp, must fsync before commit. We use heap_sync to + * ensure that the toast table gets fsync'd too. * * It's obvious that we must do this when not WAL-logging. It's less - * obvious that we have to do it even if we did WAL-log the pages. - * The reason is the same as in tablecmds.c's copy_relation_data(): - * we're writing data that's not in shared buffers, and so a CHECKPOINT - * occurring during the rewriteheap operation won't have fsync'd data - * we wrote before the checkpoint. + * obvious that we have to do it even if we did WAL-log the pages. The + * reason is the same as in tablecmds.c's copy_relation_data(): we're + * writing data that's not in shared buffers, and so a CHECKPOINT + * occurring during the rewriteheap operation won't have fsync'd data we + * wrote before the checkpoint. */ if (!state->rs_new_rel->rd_istemp) heap_sync(state->rs_new_rel); @@ -310,17 +310,17 @@ rewrite_heap_tuple(RewriteState state, { MemoryContext old_cxt; ItemPointerData old_tid; - TidHashKey hashkey; - bool found; - bool free_new; + TidHashKey hashkey; + bool found; + bool free_new; old_cxt = MemoryContextSwitchTo(state->rs_cxt); /* * Copy the original tuple's visibility information into new_tuple. * - * XXX we might later need to copy some t_infomask2 bits, too? - * Right now, we intentionally clear the HOT status bits. + * XXX we might later need to copy some t_infomask2 bits, too? Right now, + * we intentionally clear the HOT status bits. */ memcpy(&new_tuple->t_data->t_choice.t_heap, &old_tuple->t_data->t_choice.t_heap, @@ -335,16 +335,16 @@ rewrite_heap_tuple(RewriteState state, * While we have our hands on the tuple, we may as well freeze any * very-old xmin or xmax, so that future VACUUM effort can be saved. * - * Note we abuse heap_freeze_tuple() a bit here, since it's expecting - * to be given a pointer to a tuple in a disk buffer. It happens - * though that we can get the right things to happen by passing - * InvalidBuffer for the buffer. + * Note we abuse heap_freeze_tuple() a bit here, since it's expecting to + * be given a pointer to a tuple in a disk buffer. It happens though that + * we can get the right things to happen by passing InvalidBuffer for the + * buffer. */ heap_freeze_tuple(new_tuple->t_data, state->rs_freeze_xid, InvalidBuffer); /* - * Invalid ctid means that ctid should point to the tuple itself. - * We'll override it later if the tuple is part of an update chain. + * Invalid ctid means that ctid should point to the tuple itself. We'll + * override it later if the tuple is part of an update chain. */ ItemPointerSetInvalid(&new_tuple->t_data->t_ctid); @@ -369,9 +369,9 @@ rewrite_heap_tuple(RewriteState state, if (mapping != NULL) { /* - * We've already copied the tuple that t_ctid points to, so we - * can set the ctid of this tuple to point to the new location, - * and insert it right away. + * We've already copied the tuple that t_ctid points to, so we can + * set the ctid of this tuple to point to the new location, and + * insert it right away. */ new_tuple->t_data->t_ctid = mapping->new_tid; @@ -405,10 +405,10 @@ rewrite_heap_tuple(RewriteState state, } /* - * Now we will write the tuple, and then check to see if it is the - * B tuple in any new or known pair. When we resolve a known pair, - * we will be able to write that pair's A tuple, and then we have to - * check if it resolves some other pair. Hence, we need a loop here. + * Now we will write the tuple, and then check to see if it is the B tuple + * in any new or known pair. When we resolve a known pair, we will be + * able to write that pair's A tuple, and then we have to check if it + * resolves some other pair. Hence, we need a loop here. */ old_tid = old_tuple->t_self; free_new = false; @@ -422,13 +422,12 @@ rewrite_heap_tuple(RewriteState state, new_tid = new_tuple->t_self; /* - * If the tuple is the updated version of a row, and the prior - * version wouldn't be DEAD yet, then we need to either resolve - * the prior version (if it's waiting in rs_unresolved_tups), - * or make an entry in rs_old_new_tid_map (so we can resolve it - * when we do see it). The previous tuple's xmax would equal this - * one's xmin, so it's RECENTLY_DEAD if and only if the xmin is - * not before OldestXmin. + * If the tuple is the updated version of a row, and the prior version + * wouldn't be DEAD yet, then we need to either resolve the prior + * version (if it's waiting in rs_unresolved_tups), or make an entry + * in rs_old_new_tid_map (so we can resolve it when we do see it). + * The previous tuple's xmax would equal this one's xmin, so it's + * RECENTLY_DEAD if and only if the xmin is not before OldestXmin. */ if ((new_tuple->t_data->t_infomask & HEAP_UPDATED) && !TransactionIdPrecedes(HeapTupleHeaderGetXmin(new_tuple->t_data), @@ -449,9 +448,9 @@ rewrite_heap_tuple(RewriteState state, if (unresolved != NULL) { /* - * We have seen and memorized the previous tuple already. - * Now that we know where we inserted the tuple its t_ctid - * points to, fix its t_ctid and insert it to the new heap. + * We have seen and memorized the previous tuple already. Now + * that we know where we inserted the tuple its t_ctid points + * to, fix its t_ctid and insert it to the new heap. */ if (free_new) heap_freetuple(new_tuple); @@ -461,8 +460,8 @@ rewrite_heap_tuple(RewriteState state, new_tuple->t_data->t_ctid = new_tid; /* - * We don't need the hash entry anymore, but don't free - * its tuple just yet. + * We don't need the hash entry anymore, but don't free its + * tuple just yet. */ hash_search(state->rs_unresolved_tups, &hashkey, HASH_REMOVE, &found); @@ -474,8 +473,8 @@ rewrite_heap_tuple(RewriteState state, else { /* - * Remember the new tid of this tuple. We'll use it to set - * the ctid when we find the previous tuple in the chain. + * Remember the new tid of this tuple. We'll use it to set the + * ctid when we find the previous tuple in the chain. */ OldToNewMapping mapping; @@ -506,22 +505,22 @@ rewrite_heap_dead_tuple(RewriteState state, HeapTuple old_tuple) { /* * If we have already seen an earlier tuple in the update chain that - * points to this tuple, let's forget about that earlier tuple. It's - * in fact dead as well, our simple xmax < OldestXmin test in - * HeapTupleSatisfiesVacuum just wasn't enough to detect it. It - * happens when xmin of a tuple is greater than xmax, which sounds + * points to this tuple, let's forget about that earlier tuple. It's in + * fact dead as well, our simple xmax < OldestXmin test in + * HeapTupleSatisfiesVacuum just wasn't enough to detect it. It happens + * when xmin of a tuple is greater than xmax, which sounds * counter-intuitive but is perfectly valid. * - * We don't bother to try to detect the situation the other way - * round, when we encounter the dead tuple first and then the - * recently dead one that points to it. If that happens, we'll - * have some unmatched entries in the UnresolvedTups hash table - * at the end. That can happen anyway, because a vacuum might - * have removed the dead tuple in the chain before us. + * We don't bother to try to detect the situation the other way round, + * when we encounter the dead tuple first and then the recently dead one + * that points to it. If that happens, we'll have some unmatched entries + * in the UnresolvedTups hash table at the end. That can happen anyway, + * because a vacuum might have removed the dead tuple in the chain before + * us. */ UnresolvedTup unresolved; - TidHashKey hashkey; - bool found; + TidHashKey hashkey; + bool found; memset(&hashkey, 0, sizeof(hashkey)); hashkey.xmin = HeapTupleHeaderGetXmin(old_tuple->t_data); @@ -541,7 +540,7 @@ rewrite_heap_dead_tuple(RewriteState state, HeapTuple old_tuple) } /* - * Insert a tuple to the new relation. This has to track heap_insert + * Insert a tuple to the new relation. This has to track heap_insert * and its subsidiary functions! * * t_self of the tuple is set to the new TID of the tuple. If t_ctid of the @@ -551,11 +550,12 @@ rewrite_heap_dead_tuple(RewriteState state, HeapTuple old_tuple) static void raw_heap_insert(RewriteState state, HeapTuple tup) { - Page page = state->rs_buffer; - Size pageFreeSpace, saveFreeSpace; - Size len; - OffsetNumber newoff; - HeapTuple heaptup; + Page page = state->rs_buffer; + Size pageFreeSpace, + saveFreeSpace; + Size len; + OffsetNumber newoff; + HeapTuple heaptup; /* * If the new tuple is too big for storage or contains already toasted @@ -610,7 +610,8 @@ raw_heap_insert(RewriteState state, HeapTuple tup) /* * Now write the page. We say isTemp = true even if it's not a * temp table, because there's no need for smgr to schedule an - * fsync for this write; we'll do it ourselves in end_heap_rewrite. + * fsync for this write; we'll do it ourselves in + * end_heap_rewrite. */ RelationOpenSmgr(state->rs_new_rel); smgrextend(state->rs_new_rel->rd_smgr, state->rs_blockno, @@ -638,12 +639,12 @@ raw_heap_insert(RewriteState state, HeapTuple tup) ItemPointerSet(&(tup->t_self), state->rs_blockno, newoff); /* - * Insert the correct position into CTID of the stored tuple, too, - * if the caller didn't supply a valid CTID. + * Insert the correct position into CTID of the stored tuple, too, if the + * caller didn't supply a valid CTID. */ - if(!ItemPointerIsValid(&tup->t_data->t_ctid)) + if (!ItemPointerIsValid(&tup->t_data->t_ctid)) { - ItemId newitemid; + ItemId newitemid; HeapTupleHeader onpage_tup; newitemid = PageGetItemId(page, newoff); diff --git a/src/backend/access/heap/syncscan.c b/src/backend/access/heap/syncscan.c index 795efccc090..7b0653c9baa 100644 --- a/src/backend/access/heap/syncscan.c +++ b/src/backend/access/heap/syncscan.c @@ -4,7 +4,7 @@ * heap scan synchronization support * * When multiple backends run a sequential scan on the same table, we try - * to keep them synchronized to reduce the overall I/O needed. The goal is + * to keep them synchronized to reduce the overall I/O needed. The goal is * to read each page into shared buffer cache only once, and let all backends * that take part in the shared scan process the page before it falls out of * the cache. @@ -26,7 +26,7 @@ * don't want such queries to slow down others. * * There can realistically only be a few large sequential scans on different - * tables in progress at any time. Therefore we just keep the scan positions + * tables in progress at any time. Therefore we just keep the scan positions * in a small LRU list which we scan every time we need to look up or update a * scan position. The whole mechanism is only applied for tables exceeding * a threshold size (but that is not the concern of this module). @@ -40,7 +40,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/syncscan.c,v 1.1 2007/06/08 18:23:52 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/syncscan.c,v 1.2 2007/11/15 21:14:32 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -52,7 +52,7 @@ /* GUC variables */ #ifdef TRACE_SYNCSCAN -bool trace_syncscan = false; +bool trace_syncscan = false; #endif @@ -89,21 +89,21 @@ typedef struct ss_scan_location_t { RelFileNode relfilenode; /* identity of a relation */ BlockNumber location; /* last-reported location in the relation */ -} ss_scan_location_t; +} ss_scan_location_t; typedef struct ss_lru_item_t { - struct ss_lru_item_t *prev; - struct ss_lru_item_t *next; - ss_scan_location_t location; -} ss_lru_item_t; + struct ss_lru_item_t *prev; + struct ss_lru_item_t *next; + ss_scan_location_t location; +} ss_lru_item_t; typedef struct ss_scan_locations_t { - ss_lru_item_t *head; - ss_lru_item_t *tail; - ss_lru_item_t items[1]; /* SYNC_SCAN_NELEM items */ -} ss_scan_locations_t; + ss_lru_item_t *head; + ss_lru_item_t *tail; + ss_lru_item_t items[1]; /* SYNC_SCAN_NELEM items */ +} ss_scan_locations_t; #define SizeOfScanLocations(N) offsetof(ss_scan_locations_t, items[N]) @@ -112,7 +112,7 @@ static ss_scan_locations_t *scan_locations; /* prototypes for internal functions */ static BlockNumber ss_search(RelFileNode relfilenode, - BlockNumber location, bool set); + BlockNumber location, bool set); /* @@ -130,8 +130,8 @@ SyncScanShmemSize(void) void SyncScanShmemInit(void) { - int i; - bool found; + int i; + bool found; scan_locations = (ss_scan_locations_t *) ShmemInitStruct("Sync Scan Locations List", @@ -186,20 +186,20 @@ SyncScanShmemInit(void) static BlockNumber ss_search(RelFileNode relfilenode, BlockNumber location, bool set) { - ss_lru_item_t *item; + ss_lru_item_t *item; item = scan_locations->head; for (;;) { - bool match; + bool match; match = RelFileNodeEquals(item->location.relfilenode, relfilenode); if (match || item->next == NULL) { /* - * If we reached the end of list and no match was found, - * take over the last entry + * If we reached the end of list and no match was found, take over + * the last entry */ if (!match) { @@ -242,7 +242,7 @@ ss_search(RelFileNode relfilenode, BlockNumber location, bool set) * relation, or 0 if no valid location is found. * * We expect the caller has just done RelationGetNumberOfBlocks(), and - * so that number is passed in rather than computing it again. The result + * so that number is passed in rather than computing it again. The result * is guaranteed less than relnblocks (assuming that's > 0). */ BlockNumber @@ -257,8 +257,8 @@ ss_get_location(Relation rel, BlockNumber relnblocks) /* * If the location is not a valid block number for this scan, start at 0. * - * This can happen if for instance a VACUUM truncated the table - * since the location was saved. + * This can happen if for instance a VACUUM truncated the table since the + * location was saved. */ if (startloc >= relnblocks) startloc = 0; @@ -294,12 +294,12 @@ ss_report_location(Relation rel, BlockNumber location) #endif /* - * To reduce lock contention, only report scan progress every N pages. - * For the same reason, don't block if the lock isn't immediately - * available. Missing a few updates isn't critical, it just means that a - * new scan that wants to join the pack will start a little bit behind the - * head of the scan. Hopefully the pages are still in OS cache and the - * scan catches up quickly. + * To reduce lock contention, only report scan progress every N pages. For + * the same reason, don't block if the lock isn't immediately available. + * Missing a few updates isn't critical, it just means that a new scan + * that wants to join the pack will start a little bit behind the head of + * the scan. Hopefully the pages are still in OS cache and the scan + * catches up quickly. */ if ((location % SYNC_SCAN_REPORT_INTERVAL) == 0) { diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c index 4f62b1f8598..0a8873f9945 100644 --- a/src/backend/access/heap/tuptoaster.c +++ b/src/backend/access/heap/tuptoaster.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.78 2007/10/11 18:19:58 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.79 2007/11/15 21:14:32 momjian Exp $ * * * INTERFACE ROUTINES @@ -72,9 +72,9 @@ do { \ static void toast_delete_datum(Relation rel, Datum value); static Datum toast_save_datum(Relation rel, Datum value, - bool use_wal, bool use_fsm); -static struct varlena *toast_fetch_datum(struct varlena *attr); -static struct varlena *toast_fetch_datum_slice(struct varlena *attr, + bool use_wal, bool use_fsm); +static struct varlena *toast_fetch_datum(struct varlena * attr); +static struct varlena *toast_fetch_datum_slice(struct varlena * attr, int32 sliceoffset, int32 length); @@ -90,9 +90,9 @@ static struct varlena *toast_fetch_datum_slice(struct varlena *attr, ---------- */ struct varlena * -heap_tuple_fetch_attr(struct varlena *attr) +heap_tuple_fetch_attr(struct varlena * attr) { - struct varlena *result; + struct varlena *result; if (VARATT_IS_EXTERNAL(attr)) { @@ -121,7 +121,7 @@ heap_tuple_fetch_attr(struct varlena *attr) * ---------- */ struct varlena * -heap_tuple_untoast_attr(struct varlena *attr) +heap_tuple_untoast_attr(struct varlena * attr) { if (VARATT_IS_EXTERNAL(attr)) { @@ -156,8 +156,8 @@ heap_tuple_untoast_attr(struct varlena *attr) /* * This is a short-header varlena --- convert to 4-byte header format */ - Size data_size = VARSIZE_SHORT(attr) - VARHDRSZ_SHORT; - Size new_size = data_size + VARHDRSZ; + Size data_size = VARSIZE_SHORT(attr) - VARHDRSZ_SHORT; + Size new_size = data_size + VARHDRSZ; struct varlena *new_attr; new_attr = (struct varlena *) palloc(new_size); @@ -178,12 +178,12 @@ heap_tuple_untoast_attr(struct varlena *attr) * ---------- */ struct varlena * -heap_tuple_untoast_attr_slice(struct varlena *attr, +heap_tuple_untoast_attr_slice(struct varlena * attr, int32 sliceoffset, int32 slicelength) { struct varlena *preslice; struct varlena *result; - char *attrdata; + char *attrdata; int32 attrsize; if (VARATT_IS_EXTERNAL(attr)) @@ -205,7 +205,7 @@ heap_tuple_untoast_attr_slice(struct varlena *attr, if (VARATT_IS_COMPRESSED(preslice)) { PGLZ_Header *tmp = (PGLZ_Header *) preslice; - Size size = PGLZ_RAW_SIZE(tmp) + VARHDRSZ; + Size size = PGLZ_RAW_SIZE(tmp) + VARHDRSZ; preslice = (struct varlena *) palloc(size); SET_VARSIZE(preslice, size); @@ -300,7 +300,7 @@ toast_raw_datum_size(Datum value) Size toast_datum_size(Datum value) { - struct varlena *attr = (struct varlena *) DatumGetPointer(value); + struct varlena *attr = (struct varlena *) DatumGetPointer(value); Size result; if (VARATT_IS_EXTERNAL(attr)) @@ -469,8 +469,8 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple |