throws StandardException
{
int columns = (referencedCols == null) ?
size() : referencedCols.getNumBitsSet();
ExecRowBuilder builder = new ExecRowBuilder(columns, indexRow);
// Get the index of the first column to set in the row template.
int colNum = (referencedCols == null) ? 0 : referencedCols.anySetBit();
for (int i = 0; i < size(); i++) {
ResultColumn rc = (ResultColumn) elementAt(i);
ValueNode sourceExpr = rc.getExpression();
if (sourceExpr instanceof CurrentRowLocationNode) {
builder.setColumn(colNum + 1, newRowLocationTemplate());
} else if (skipPropagatedCols &&
sourceExpr instanceof VirtualColumnNode) {
// Skip over those columns whose source is the immediate
// child result set. (No need to generate a wrapper
// for a SQL NULL when we are smart enough not to pass
// that wrapper to the store.)
continue;
} else {
builder.setColumn(colNum + 1, rc.getType());
}
// Get the index of the next column to set in the row template.
if (referencedCols == null) {
colNum++;