diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2011-09-13 11:36:49 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2011-09-13 11:36:49 -0400 |
commit | 6693c9a5ed3ac9c07160039742dde8aa67e96ecf (patch) | |
tree | 91524073e56ff886de49de2acc1a184ef989abe9 /src | |
parent | 3f3304408cb103745ee0722d303c526594a8046c (diff) | |
download | postgresql-6693c9a5ed3ac9c07160039742dde8aa67e96ecf.tar.gz postgresql-6693c9a5ed3ac9c07160039742dde8aa67e96ecf.zip |
deflist_to_tuplestore dumped core on an option with no value.
Make it return NULL for the option_value, instead.
Per report from Frank van Vugt. Back-patch to 8.4 where this code was
added.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/foreign/foreign.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index 67a4597c382..a7d30a15caf 100644 --- a/src/backend/foreign/foreign.c +++ b/src/backend/foreign/foreign.c @@ -363,8 +363,17 @@ deflist_to_tuplestore(ReturnSetInfo *rsinfo, List *options) DefElem *def = lfirst(cell); values[0] = CStringGetTextDatum(def->defname); - values[1] = CStringGetTextDatum(((Value *) def->arg)->val.str); - nulls[0] = nulls[1] = false; + nulls[0] = false; + if (def->arg) + { + values[1] = CStringGetTextDatum(((Value *) (def->arg))->val.str); + nulls[1] = false; + } + else + { + values[1] = (Datum) 0; + nulls[1] = true; + } tuplestore_putvalues(tupstore, tupdesc, values, nulls); } |