Scope
Complete the original Community MySQL routine invocation-preview surface without changing the retained frontend. Migration preview and replacement execution remain a separate follow-up because they require compensating restore semantics.
Acceptance criteria
- POST /api/rdb/routine/preview_invocation supports MySQL FUNCTION and PROCEDURE requests.
- Generated SQL preserves Community parameter order, IN/OUT/INOUT handling, default literals, qualified identifiers, and trailing statement separators.
- FUNCTION previews use SELECT; PROCEDURE previews emit required SET, CALL, and OUT/INOUT SELECT statements.
- Zero-parameter and unknown routine names preserve the pinned preview behavior; MySQL existence validation occurs only when the generated SQL is executed.
- Axum HTTP and desktop legacy_request dispatch expose the same route and envelope.
- Missing, invalid, non-MySQL, and unsupported routine-type inputs fail with the existing binding or API error envelopes.
- Native mysql_async metadata is used and Java remains dormant.
- A real local Docker MySQL 8.4 test covers function plus IN/OUT/INOUT procedure previews and executes the generated SQL through the existing Console path.
- Focused tests, make verify, strict Clippy, and CI pass.
- Original Community frontend and styles remain unchanged.
- No macOS package workflow is triggered.
Reference
Pinned Community DbRoutineOperationController and MysqlRoutineManager.
Scope
Complete the original Community MySQL routine invocation-preview surface without changing the retained frontend. Migration preview and replacement execution remain a separate follow-up because they require compensating restore semantics.
Acceptance criteria
Reference
Pinned Community DbRoutineOperationController and MysqlRoutineManager.