int noldoptions;
int i;
- Assert(ARR_ELEMTYPE(array) == TEXTOID);
-
deconstruct_array(array, TEXTOID, -1, false, 'i',
&oldoptions, NULL, &noldoptions);
array = DatumGetArrayTypeP(options);
- Assert(ARR_ELEMTYPE(array) == TEXTOID);
-
deconstruct_array(array, TEXTOID, -1, false, 'i',
&optiondatums, NULL, &noptions);
/* Done if no options */
if (PointerIsValid(DatumGetPointer(options)))
{
- ArrayType *array;
+ ArrayType *array = DatumGetArrayTypeP(options);
Datum *optiondatums;
int noptions;
- array = DatumGetArrayTypeP(options);
-
- Assert(ARR_ELEMTYPE(array) == TEXTOID);
-
deconstruct_array(array, TEXTOID, -1, false, 'i',
&optiondatums, NULL, &noptions);
errmsg("unrecognized parameter \"%s\"", s)));
}
}
+
+ /* It's worth avoiding memory leaks in this function */
+ pfree(optiondatums);
+ if (((void *) array) != DatumGetPointer(options))
+ pfree(array);
}
*numrelopts = numoptions;