Improved progress display
Previously, the progress bar updated only after completing an entire table. For large tables such as LIBARC, this could make the application appear to have stopped responding. Phase 10 updates the interface while rows are being exported.
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
# Phase 13 — Administration enhancements
|
||||
|
||||
- Added Server Error Log view (reads `performance_schema.error_log`, available on supported MySQL versions and with appropriate privileges).
|
||||
- Added filter/search for administration result tables.
|
||||
- Added optional 5-second auto-refresh of administration data.
|
||||
- Added account selection and read-only `SHOW GRANTS` inspector to Users and Privileges.
|
||||
- Existing backup/restore functionality preserved.
|
||||
- No user account or server mutations are performed by these features.
|
||||
|
||||
**Validation:** Source-level checks and ZIP integrity only; full macOS Xcode build and live-server tests are still required.
|
||||
@@ -0,0 +1,11 @@
|
||||
# Phase 14 — MySQL Account Management
|
||||
|
||||
Adds a **Manage Accounts…** sheet under Administration → Users and Privileges.
|
||||
|
||||
Operations: create account, change password, lock/unlock account, grant/revoke an individual database privilege. Every operation displays a SQL preview and requires an explicit confirmation. Passwords are masked in previews, never persisted by the account management form, and cleared after execution. Privileges are chosen from an allowlist. User, host, and database inputs use conservative character allowlists.
|
||||
|
||||
The existing account list and Show Grants remain available. Auto-refresh is switched off when account management opens, and the account list refreshes on dismissal.
|
||||
|
||||
**Limitations:** Requires sufficient MySQL privileges. Only basic ASCII account/host/database names supported. No account deletion, global privileges, roles, or complex grant options. SQL mode NO_BACKSLASH_ESCAPES is rejected for password operations. Password values are sent using the native query protocol, which may expose them in server-side SQL logs; parameterized MySQL account DDL isn't implemented. No automatic rollback for account changes.
|
||||
|
||||
**Validation:** Static/source inspection and ZIP integrity only. This environment cannot compile the macOS Xcode target or verify changes against a MySQL server. Test on a disposable MySQL instance before production use.
|
||||
@@ -0,0 +1,9 @@
|
||||
# Phase 15 — Live MySQL Session Management
|
||||
|
||||
Adds session control to Administration → Client Connections. Select a session ID from `SHOW FULL PROCESSLIST`, then choose **Stop Query** (`KILL QUERY`) or **Disconnect Session** (`KILL CONNECTION`). Both actions require a destructive confirmation. The app validates the session ID as a positive UInt64, rejects terminating its own active MySQL connection, reports errors and refreshes the process list afterward. Search and five-second auto-refresh from Phase 13 remain available.
|
||||
|
||||
**Permissions:** MySQL privileges determine which sessions can be seen or terminated. Session IDs may be reused after a connection exits; always verify the selected session before confirming. A race remains possible between selecting an ID and execution. Terminating connections may interrupt work or roll back uncommitted transactions. There is no undo.
|
||||
|
||||
**Scope:** This phase focuses on session management. Advanced server configuration editing and performance diagnostics are not implemented here.
|
||||
|
||||
**Validation:** Source patch and ZIP integrity checked. No macOS Xcode compiler or live MySQL server available in this environment; test on a disposable MySQL instance before production use.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Phase 16 — Native MySQL Diagnostics
|
||||
|
||||
Adds five read-only Administration → Performance screens:
|
||||
|
||||
- **Slow Query Analysis:** `performance_schema.events_statements_summary_by_digest` sorted by cumulative execution time, with counts, rows examined, and first/last seen timestamps. Times are raw picoseconds, **not** milliseconds.
|
||||
- **Table I/O Hotspots:** `performance_schema.table_io_waits_summary_by_table` with read/write counts and timings.
|
||||
- **InnoDB Metrics:** selected `SHOW GLOBAL STATUS` buffer-pool, I/O, lock, and row counters.
|
||||
- **InnoDB Lock Waits:** current edges in `performance_schema.data_lock_waits`.
|
||||
- **Connection Statistics:** connection, abort, thread, and query counters.
|
||||
|
||||
All screens reuse the existing searchable grid, manual refresh, and optional five-second auto-refresh. SQL is read-only. Some screens require MySQL 8.0+ and enabled Performance Schema instrumentation/privileges; errors are displayed in the existing administration error view. The digest and table I/O summaries are cumulative and may be reset by server restarts or instrumentation changes. This phase does **not** enable slow-query logging or change server configuration.
|
||||
|
||||
## Validation
|
||||
|
||||
Source inspection and ZIP integrity check performed. **Not compiled with Xcode or tested on a live MySQL server.** Test on a nonproduction MySQL 8.0+ instance first.
|
||||
Reference in New Issue
Block a user