aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/common/reloptions.c27
-rw-r--r--src/include/access/reloptions.h21
2 files changed, 25 insertions, 23 deletions
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 0060be6a028..b926689c5cb 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.22 2009/02/28 00:10:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.23 2009/03/23 16:36:27 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -175,7 +175,7 @@ static relopt_real realRelOpts[] =
{ { NULL } }
};
-static relopt_string stringRelOpts[] =
+static relopt_string stringRelOpts[] =
{
/* list terminator */
{ { NULL } }
@@ -739,7 +739,7 @@ extractRelOptions(HeapTuple tuple, TupleDesc tupdesc, Oid amoptions)
options = NULL; /* keep compiler quiet */
break;
}
-
+
return options;
}
@@ -972,16 +972,17 @@ allocateReloptStruct(Size base, relopt_value *options, int numoptions)
* struct (previously allocated with allocateReloptStruct) with the parsed
* values.
*
- * rdopts is the pointer to the allocated struct to be filled; basesize is
- * the sizeof(struct) that was passed to allocateReloptStruct. options and
- * numoptions are parseRelOptions' output. elems and numelems is the array
- * of elements to be parsed. Note that when validate is true, it is expected
- * that all options are also in elems.
+ * rdopts is the pointer to the allocated struct to be filled.
+ * basesize is the sizeof(struct) that was passed to allocateReloptStruct.
+ * options, of length numoptions, is parseRelOptions' output.
+ * elems, of length numelems, is the table describing the allowed options.
+ * When validate is true, it is expected that all options appear in elems.
*/
void
-fillRelOptions(void *rdopts, Size basesize, relopt_value *options,
- int numoptions, bool validate, relopt_parse_elt *elems,
- int numelems)
+fillRelOptions(void *rdopts, Size basesize,
+ relopt_value *options, int numoptions,
+ bool validate,
+ const relopt_parse_elt *elems, int numelems)
{
int i;
int offset = basesize;
@@ -1044,7 +1045,7 @@ fillRelOptions(void *rdopts, Size basesize, relopt_value *options,
}
}
if (validate && !found)
- elog(ERROR, "storate parameter \"%s\" not found in parse table",
+ elog(ERROR, "reloption \"%s\" not found in parse table",
options[i].gen->name);
}
SET_VARSIZE(rdopts, offset);
@@ -1061,7 +1062,7 @@ default_reloptions(Datum reloptions, bool validate, relopt_kind kind)
relopt_value *options;
StdRdOptions *rdopts;
int numoptions;
- relopt_parse_elt tab[] = {
+ static const relopt_parse_elt tab[] = {
{"fillfactor", RELOPT_TYPE_INT, offsetof(StdRdOptions, fillfactor)},
{"autovacuum_enabled", RELOPT_TYPE_BOOL,
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, enabled)},
diff --git a/src/include/access/reloptions.h b/src/include/access/reloptions.h
index 7c02f3b12b3..b40d95a0fba 100644
--- a/src/include/access/reloptions.h
+++ b/src/include/access/reloptions.h
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/reloptions.h,v 1.12 2009/02/02 19:31:39 alvherre Exp $
+ * $PostgreSQL: pgsql/src/include/access/reloptions.h,v 1.13 2009/03/23 16:36:27 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -106,12 +106,12 @@ typedef struct relopt_string
char default_val[1]; /* variable length, zero-terminated */
} relopt_string;
-/* This is the input type for fillRelOptions */
+/* This is the table datatype for fillRelOptions */
typedef struct
{
- char *optname;
- relopt_type opttype;
- int offset;
+ const char *optname; /* option's name */
+ relopt_type opttype; /* option's datatype */
+ int offset; /* offset of field in result struct */
} relopt_parse_elt;
@@ -149,8 +149,8 @@ typedef struct
* }
*
* Note that this is more or less the same that fillRelOptions does, so only
- * use this if you need to do something non-standard within some options'
- * block.
+ * use this if you need to do something non-standard within some option's
+ * code block.
*/
#define HAVE_RELOPTION(optname, option) \
(pg_strncasecmp(option.gen->name, optname, option.gen->namelen + 1) == 0)
@@ -252,9 +252,10 @@ extern relopt_value *parseRelOptions(Datum options, bool validate,
relopt_kind kind, int *numrelopts);
extern void *allocateReloptStruct(Size base, relopt_value *options,
int numoptions);
-extern void fillRelOptions(void *rdopts, Size basesize, relopt_value *options,
- int numoptions, bool validate, relopt_parse_elt *elems,
- int nelems);
+extern void fillRelOptions(void *rdopts, Size basesize,
+ relopt_value *options, int numoptions,
+ bool validate,
+ const relopt_parse_elt *elems, int nelems);
extern bytea *default_reloptions(Datum reloptions, bool validate,
relopt_kind kind);