AttrNumber attnum = idxrec->indkey[keyno];
if (!colno)
- appendStringInfo(&buf, sep);
+ appendStringInfoString(&buf, sep);
sep = ", ";
if (attnum != 0)
if (var->varnoold > 0 && var->varnoold <= rtablelength)
{
RangeTblEntry *varrte = rt_fetch(var->varnoold, rtable);
- char *varname;
+ AttrNumber varattnum = var->varoattno;
- varname = get_rte_attribute_name(varrte, var->varoattno);
- attrs = lappend(attrs, makeString(varname));
- continue;
+ /* need this test in case it's referencing a resjunk col */
+ if (varattnum <= list_length(varrte->eref->colnames))
+ {
+ char *varname;
+
+ varname = get_rte_attribute_name(varrte, varattnum);
+ attrs = lappend(attrs, makeString(varname));
+ continue;
+ }
}
}
/* Fallback if can't get name */
Oid sortcoltype;
TypeCacheEntry *typentry;
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
sortexpr = get_rule_sortgroupclause(srt, query->targetList,
force_colno, context);
sortcoltype = exprType(sortexpr);
{
SortClause *srt = (SortClause *) lfirst(l);
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
get_rule_sortgroupclause(srt, query->targetList,
false, context);
sep = ", ";
if (tle->resdom->resjunk)
continue; /* ignore junk entries */
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
sep = ", ";
colno++;
{
GroupClause *grp = (GroupClause *) lfirst(l);
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
get_rule_sortgroupclause(grp, query->targetList,
false, context);
sep = ", ";
if (tle->resdom->resjunk)
continue; /* ignore junk entries */
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
sep = ", ";
/*
if (tle->resdom->resjunk)
continue; /* ignore junk entries */
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
sep = ", ";
/*
if (tupdesc == NULL ||
!tupdesc->attrs[i]->attisdropped)
{
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
get_rule_expr(e, context, true);
sep = ", ";
}
{
if (!tupdesc->attrs[i]->attisdropped)
{
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
appendStringInfo(buf, "NULL");
sep = ", ";
}
sep = "";
foreach(l, (List *) node)
{
- appendStringInfo(buf, sep);
+ appendStringInfoString(buf, sep);
get_rule_expr((Node *) lfirst(l), context, showimplicit);
sep = ", ";
}