diff options
Diffstat (limited to 'src/backend/foreign/foreign.c')
| -rw-r--r-- | src/backend/foreign/foreign.c | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index 042dbed13d0..a67f70b973d 100644 --- a/src/backend/foreign/foreign.c +++ b/src/backend/foreign/foreign.c @@ -260,7 +260,7 @@ deflist_to_tuplestore(ReturnSetInfo *rsinfo, List *options)  	TupleDesc	tupdesc;  	Tuplestorestate *tupstore;  	Datum		values[2]; -	bool		nulls[2] = {0}; +	bool		nulls[2];  	MemoryContext per_query_ctx;  	MemoryContext oldcontext; @@ -292,7 +292,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] = 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);  	} | 
