Skip to content

MySQL Community routine invocation preview parity #12

Description

@openai0229

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions