Yessica Brinkmann <yessica.brinkmann@xxxxxxxxx> writes: > I really thought a lot, but I don't understand why but the function fails > after the expression is executed: > appendStringInfo (& cols, "% s a.attnum =% d", (i> 0? "OR": ""), idxcd-> > varattno [i]); I think you're probably shooting yourself in the foot here: /* pfree() the memory allocated for the previous candidate. FIXME: Avoid * meddling with the internals of a StringInfo, and try to use an API. */ if( cols.len > 0 ) { pfree( cols.data ); cols.data = NULL; } /*IF col.len>0*/ Don't do that, use resetStringInfo() instead. regards, tom lane