Skip to content

Conversation

wazir-ahmed
Copy link
Collaborator

  • Add validation methods for mysql_users, pgsql_users, mysql_servers,
    pgsql_servers and proxysql_servers
  • Check for duplicates and mandatory fields
  • Return descriptive error messages to clients when validation fails
  • Add new admin command PROXYSQL SET CONFIG FILE to dynamically change configuration file path
  • Add TAP test for configuration validation

Closes #5035

- Add validation methods for `mysql_users`, `pgsql_users`, `mysql_servers`,
  `pgsql_servers` and `proxysql_servers`
- Check for duplicates and mandatory fields
- Return descriptive error messages to clients when validation fails

Signed-off-by: Wazir Ahmed <[email protected]>
Co-authored-by: takaidohigasi <[email protected]>
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @wazir-ahmed, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the robustness of ProxySQL by implementing critical validation checks for various configuration sections when loaded from the configuration file. It ensures that only well-formed and unique entries are processed, preventing potential issues arising from malformed or redundant data. Furthermore, it provides greater operational flexibility by allowing administrators to dynamically update the configuration file source.

Highlights

  • Configuration Validation: Introduced comprehensive validation for mysql_users, pgsql_users, mysql_servers, pgsql_servers, and proxysql_servers configurations loaded from the config file. This includes checks for mandatory fields and duplicate entries, returning descriptive error messages to clients when validation fails.
  • Dynamic Configuration File Path: Added a new administrative command PROXYSQL SET CONFIG FILE which allows the configuration file path to be changed dynamically at runtime.
  • Test Coverage: A new TAP test (test_load_from_config_validation-t.cpp) has been added to ensure the new configuration validation logic functions correctly under various scenarios, including valid, duplicate, and incomplete configurations.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces validation for LOAD * FROM CONFIG commands, which is a valuable addition for ensuring configuration integrity. The changes include checks for duplicates and mandatory fields, providing descriptive error messages. A new PROXYSQL SET CONFIG FILE command is also added for dynamic configuration file path changes, along with a comprehensive TAP test. My review identified a memory leak and an opportunity to refactor duplicated code for better maintainability.

wazir-ahmed and others added 2 commits September 9, 2025 13:17
- New admin command to dynamically change configuration file path

Signed-off-by: Wazir Ahmed <[email protected]>
Signed-off-by: Wazir Ahmed <[email protected]>
Co-authored-by: takaidohigasi <[email protected]>
@wazir-ahmed wazir-ahmed force-pushed the load-from-config-validation branch from f9d7934 to ec7383d Compare September 9, 2025 07:48
Copy link

sonarqubecloud bot commented Sep 9, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
8.4% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Load ... FROM CONFIG do not return error when it failed to load by PK violation
1 participant