private String getFieldDisplayValue(SqlFieldSchema fieldSchema) {
    if (!isComplexField(fieldSchema.getFieldType())) {
      return fieldSchema.getFieldType().toString();
    }
    SamzaSqlFieldType fieldType = fieldSchema.getFieldType();
    switch (fieldType) {
      case ARRAY:
        return String.format("ARRAY(%s)", getFieldDisplayValue(fieldSchema.getElementSchema()));
      case MAP:
        return String.format("MAP(%s, %s)", SamzaSqlFieldType.STRING.toString(),
            getFieldDisplayValue(fieldSchema.getValueSchema()));
      case ROW:
        String rowDisplayValue = fieldSchema.getRowSchema()
            .getFields()
            .stream()
            .map(f -> getFieldDisplayValue(f.getFieldSchema()))
            .collect(Collectors.joining(","));
        return String.format("ROW(%s)", rowDisplayValue);
      default:
        throw new UnsupportedOperationException("Unknown field type " + fieldType);
    }
  }
Handles the given command
@param command input {@link CliCommand} to handle
@return false if command is to quit, or fatal error happened that Shell should not continue running. True o.w.
@throws CommandHandlerException if unrecoverable error happened while handling the input {@link CliCommand}
samza-sql-shell/src/main/java/org/apache/samza/sql/client/impl/CliCommandHandler.java