dosubot[bot] commented on issue #28630: URL: https://github.com/apache/superset/issues/28630#issuecomment-2743970054
<!-- Answer --> Resolving the issue at the dbapi or db engine spec level involves modifying how Superset handles SQL functions like `GROUP_CONCAT` for specific database engines. Superset uses the `BaseEngineSpec` class to provide database engine-specific configurations, including SQL function handling <sup>[[1]](https://github.com/apache/superset/blob/master/superset/db_engine_specs/base.py)</sup>. To address the `GROUP_CONCAT` issue without relying on `SQL_QUERY_MUTATOR`, you can extend the relevant engine spec class (e.g., `DorisEngineSpec` or `MySQLEngineSpec`) to customize the SQL function handling for `GROUP_CONCAT`. This involves overriding methods that parse or modify SQL queries to ensure compatibility with the specific SQL dialect of Doris or MySQL. Here's a general approach: 1. **Identify the Engine Spec Class**: Locate the engine spec class for Doris or MySQL in the Superset codebase (e.g., `doris.py` or `mysql.py`). 2. **Override SQL Handling Methods**: Modify or add methods in the engine spec class to handle `GROUP_CONCAT` without appending `SEPARATOR ','`. This might involve customizing the SQL parsing logic or query transformation methods. 3. **Test the Changes**: Ensure that the changes work correctly by testing with both Doris and MySQL databases to verify that `GROUP_CONCAT` is handled as expected. By implementing these changes at the db engine spec level, you can ensure that Superset generates compatible SQL queries for the affected databases without relying on global query mutators. <!-- Dosu Comment Footer --> *To continue talking to [Dosu](https://dosu.dev), mention @dosu.* --- <sup>Help Dosu learn! Give it feedback: [Great Response](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=great_response) | [Irrelevant Answer](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=irrelevant_answer) | [Incorrect Sources](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=incorrect_sources) | [Too Verbose](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=hallucination) | [Bug Report](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/0a86b500-e63c-4fe2-8ceb-f65a4f1befca?feedback_type=other)</sup> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
