* fix(redis):format INFO output as plain text in cluster mode
* fix(client): remove default JRE download on first launch
* fix(grid): keep row number colors stable
* feat(grid): add pinned query result history
* fix(grid): limit field count badge to data tabs
* fix(settings): persist sidebar page size
* fix(redis): resolve large integer precision loss in JSON tree view
---------
Co-authored-by: Scars <yss2813483011xxl@gmail.com>
Co-authored-by: t8y2 <1156263951@qq.com>
Apply fix_potential_double_encoding() to table/object comment fields
returned by list_tables(), list_table_status_show(), and row_to_object(),
consistent with the existing fix for column comments (c21b5d0).
The sidebar tree displays TABLE_COMMENT directly from these functions,
so when MySQL returns Latin1-decoded bytes for UTF-8 content, the
comment shows as garbled text like 'OAéƒ¨é—¨åŒæ¥è¡¨' instead of
'OA部门同步表'.
Fix UTF-8 boundary issues in mysql_top_level_limit, parse_usize_token,
and mysql_keyword_at functions that caused crashes when SQL contains
Chinese characters in string literals.
The issue was introduced in commit 021e1682 which added byte-level
indexing without proper UTF-8 boundary checks. When parsing SQL with
Chinese text (e.g., \"WHERE name LIKE '%批量保存%'\"), the byte index
could point to the middle of a multi-byte UTF-8 character, causing
Rust to panic when slicing the string.
Changes:
- parse_usize_token: Use std::str::from_utf8 to validate slice before parsing
- mysql_keyword_at: Add is_char_boundary checks for safe string slicing
- mysql_top_level_limit: Skip non-UTF-8-boundary bytes after incrementing index
This ensures all byte-level indexing operations stay on valid UTF-8 boundaries,
preventing panics while maintaining the original functionality of detecting
LIMIT clauses for bounded result set collection.
Fixes crash reported by users when executing queries with Chinese conditions.