ITypeInfo * getConcatResultType(IHqlExpression * expr) { assertex(!"not sure if this is unicode safe, but appears not to be used"); //first work out the maximum size of the target unsigned max = expr->numChildren(); unsigned idx; unsigned totalSize = 0; bool unknown = false; type_t resultType = type_string; for (idx = 0; idx < max; idx++) { ITypeInfo * type = expr->queryChild(idx)->queryType(); unsigned size = type->getStringLen(); if (size == UNKNOWN_LENGTH) unknown = true; else totalSize += size; if (type->getTypeCode() == type_varstring) resultType = type_varstring; } if (unknown) totalSize = 1023; if (resultType == type_string) return makeStringType(totalSize, NULL, NULL); return makeVarStringType(totalSize); }