- print " %s = (struct %s%s *) ovsdb_idl_get_row_arc(row_, &%stable_classes[%sTABLE_%s], &datum->values[0].uuid);" % (valueVar, prefix, type.valueRefTable.lower(), prefix, prefix.upper(), type.valueRefTable.upper())
+ print " %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_classes[%sTABLE_%s], &datum->values[0].uuid));" % (valueVar, prefix, type.valueRefTable.lower(), prefix, prefix.upper(), type.valueRefTable.upper())
+ if (not typeIsOptionalPointer(type) and
+ (type.key == "string" or type.value == "string")):
+ print " } else {"
+ if type.key == "string":
+ print " %s = \"\";" % keyVar
+ if type.value == "string":
+ print " %s = \"\";" % valueVar