ITypeInfo * makeRowReferenceType(IHqlExpression * ds) { ITypeInfo * recordType = ds ? LINK(ds->queryRecordType()) : NULL; ITypeInfo * rowType = makeReferenceModifier(makeRowType(recordType)); if (ds) { ITypeInfo * dsType = ds->queryType(); if (hasLinkedRow(dsType)) rowType = makeAttributeModifier(rowType, getLinkCountedAttr()); if (hasOutOfLineModifier(dsType)) rowType = makeOutOfLineModifier(rowType); } return rowType; }
inline bool hasOutOfLineRows(ITypeInfo * type) { return (hasOutOfLineModifier(type) || hasLinkCountedModifier(type)); }