{"record":{"id":"820d494d326110b5","repo":"infiniflow/ragflow","slug":"for-trino-database-must-be-catalog-schema-or","errorCode":null,"errorMessage":"For Trino, `database` must be 'catalog.schema' or at least 'catalog'.","messagePattern":"For Trino, `database` must be 'catalog\\.schema' or at least 'catalog'\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"agent/tools/exesql.py","lineNumber":166,"sourceCode":"                import trino\n                from trino.auth import BasicAuthentication\n            except Exception:\n                raise Exception(\"Missing dependency 'trino'. Please install: pip install trino\")\n\n            def _parse_catalog_schema(db: str):\n                if not db:\n                    return None, None\n                if \".\" in db:\n                    c, s = db.split(\".\", 1)\n                elif \"/\" in db:\n                    c, s = db.split(\"/\", 1)\n                else:\n                    c, s = db, \"default\"\n                return c, s\n\n            catalog, schema = _parse_catalog_schema(self._param.database)\n            if not catalog:\n                raise Exception(\"For Trino, `database` must be 'catalog.schema' or at least 'catalog'.\")\n\n            http_scheme = \"https\" if os.environ.get(\"TRINO_USE_TLS\", \"0\") == \"1\" else \"http\"\n            auth = None\n            if http_scheme == \"https\" and self._param.password:\n                auth = BasicAuthentication(self._param.username, self._param.password)\n\n            try:\n                db = trino.dbapi.connect(\n                    host=safe_host, port=int(self._param.port or 8080), user=self._param.username or \"ragflow\", catalog=catalog, schema=schema or \"default\", http_scheme=http_scheme, auth=auth\n                )\n            except Exception as e:\n                raise Exception(\"Database Connection Failed! \\n\" + str(e))\n        elif self._param.db_type == \"IBM DB2\":\n            import ibm_db\n\n            conn_str = f\"DATABASE={self._param.database};HOSTNAME={safe_host};PORT={self._param.port};PROTOCOL=TCPIP;UID={self._param.username};PWD={self._param.password};\"\n            try:\n                conn = ibm_db.connect(conn_str, \"\", \"\")","sourceCodeStart":148,"sourceCodeEnd":184,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/agent/tools/exesql.py#L148-L184","documentation":"Error \"For Trino, `database` must be 'catalog.schema' or at least 'catalog'.\" thrown in infiniflow/ragflow.","triggerScenarios":"Thrown at agent/tools/exesql.py:166 when the library encounters an invalid state.","commonSituations":"A Trino connection is configured with a plain database name; Trino requires catalog[.schema] addressing, so updating the database field prevents this error.","solutions":["Set the database parameter to 'catalog' or 'catalog.schema' form for Trino."],"exampleFix":"database = 'hive.analytics'","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-15T22:17:37.221Z"}