{"record":{"id":"5e7ad825152cf067","repo":"infiniflow/ragflow","slug":"for-the-security-reason-it-does-not-support-datab","errorCode":null,"errorMessage":"For the security reason, it does not support database named rag_flow.","messagePattern":"For the security reason, it does not support database named rag_flow\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"agent/tools/exesql.py","lineNumber":62,"sourceCode":"        self.database = \"\"\n        self.username = \"\"\n        self.host = \"\"\n        self.port = 3306\n        self.password = \"\"\n        self.max_records = 1024\n\n    def check(self):\n        self.check_valid_value(self.db_type, \"Choose DB type\", [\"mysql\", \"postgres\", \"mariadb\", \"mssql\", \"IBM DB2\", \"trino\", \"oceanbase\"])\n        self.check_empty(self.database, \"Database name\")\n        self.check_empty(self.username, \"database username\")\n        self.check_empty(self.host, \"IP Address\")\n        self.check_positive_integer(self.port, \"IP Port\")\n        if self.db_type != \"trino\":\n            self.check_empty(self.password, \"Database password\")\n        self.check_positive_integer(self.max_records, \"Maximum number of records\")\n        if self.database == \"rag_flow\":\n            if self.host == \"ragflow-mysql\":\n                raise ValueError(\"For the security reason, it does not support database named rag_flow.\")\n            if self.password == \"infini_rag_flow\":\n                raise ValueError(\"For the security reason, it does not support database named rag_flow.\")\n\n    def get_input_form(self) -> dict[str, dict]:\n        return {\"sql\": {\"name\": \"SQL\", \"type\": \"line\"}}\n\n\nclass ExeSQL(ToolBase, ABC):\n    component_name = \"ExeSQL\"\n\n    @timeout(int(os.environ.get(\"COMPONENT_EXEC_TIMEOUT\", 60)))\n    def _invoke(self, **kwargs):\n        if self.check_if_canceled(\"ExeSQL processing\"):\n            return\n\n        def convert_decimals(obj):\n            from decimal import Decimal\n            import math","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/agent/tools/exesql.py#L44-L80","documentation":"Error \"For the security reason, it does not support database named rag_flow.\" thrown in infiniflow/ragflow.","triggerScenarios":"Thrown at agent/tools/exesql.py:62 when the library encounters an invalid state.","commonSituations":"An ExeSQL tool is configured to query the internal rag_flow database, which is blocked for security; pointing the tool at a different database prevents this error.","solutions":["Do not use the reserved database name 'rag_flow'; choose another database."],"exampleFix":"database = 'analytics'  # not 'rag_flow'","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"554fb1133ac3861732235ad9c377eb5e0a770665","analyzedAt":"2026-08-15T09:20:16.380Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}