{"record":{"id":"490d298a27424206","repo":"apache/seatunnel","slug":"table-tablepath-databasename-null-schemaname","errorCode":null,"errorMessage":"Table 'TablePath{databaseName='null', schemaName='null', tableName='null'}' does not exist in catalog 'null'","messagePattern":"Table 'TablePath(.+?)' does not exist in catalog 'null'","errorType":"exception","errorClass":"TableNotExistException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java","lineNumber":219,"sourceCode":"        throw new UnsupportedOperationException();\n    }\n\n    protected Column buildColumn(ResultSet resultSet) throws SQLException {\n        throw new UnsupportedOperationException();\n    }\n\n    protected TableIdentifier getTableIdentifier(TablePath tablePath) {\n        return TableIdentifier.of(\n                catalogName,\n                tablePath.getDatabaseName(),\n                tablePath.getSchemaName(),\n                tablePath.getTableName());\n    }\n\n    public CatalogTable getTable(TablePath tablePath)\n            throws CatalogException, TableNotExistException {\n        if (!tableExists(tablePath)) {\n            throw new TableNotExistException(catalogName, tablePath);\n        }\n\n        String dbUrl;\n        if (StringUtils.isNotBlank(tablePath.getDatabaseName())) {\n            dbUrl = getUrlFromDatabaseName(tablePath.getDatabaseName());\n        } else {\n            dbUrl = getUrlFromDatabaseName(defaultDatabase);\n        }\n        Connection conn = getConnection(dbUrl);\n        try {\n            DatabaseMetaData metaData = conn.getMetaData();\n            Optional<String> comment = getTableComment(metaData, tablePath);\n            Optional<PrimaryKey> primaryKey = getPrimaryKey(metaData, tablePath);\n            List<ConstraintKey> constraintKeys = getConstraintKeys(metaData, tablePath);\n            TableSchema.Builder tableSchemaBuilder =\n                    buildColumnsReturnTablaSchemaBuilder(tablePath, conn);\n            // add primary key\n            primaryKey.ifPresent(tableSchemaBuilder::primaryKey);","sourceCodeStart":201,"sourceCodeEnd":237,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java#L201-L237","documentation":"AbstractJdbcCatalog.getTable() first checks tableExists(tablePath) and throws TableNotExistException when the check fails. The message shows the catalog name and TablePath that could not be resolved — here the fields render as null because the TablePath was built without database/schema/table identifiers.","triggerScenarios":"getTable(tablePath) is called (directly or via getCatalogTable/tableOfQuery) with a TablePath whose databaseName/schemaName/tableName are null or not present in the catalog, so tableExists() returns false.","commonSituations":"Table name not fully qualified (missing database/schema parts); typo in table or database name; case-sensitivity mismatch (lower/upper case identifiers); querying a table before the connector's catalog was pointed at the right database.","solutions":["Pass a fully qualified TablePath (database.schema.table as applicable) with exact-case identifiers.","Verify the table exists: run the catalog's listTables/tableExists for the intended database.","Check for case-sensitivity and whitespace in the configured table name.","Ensure the catalog URL/username has access to the database containing the table."],"exampleFix":"// before\nTablePath path = TablePath.of(null, null, null);\n// after\nTablePath path = TablePath.of(\"mydb\", \"public\", \"orders\");","handlingStrategy":"validation","validationCode":"TablePath p = TablePath.of(db, schema, table); if (p.getDatabaseName() == null || p.getTableName() == null) throw new IllegalArgumentException(\"TablePath must be fully qualified\");","typeGuard":null,"tryCatchPattern":"catch (TableNotExistException e) { log.error(\"Table {} missing in catalog {}\", e.tablePath(), e.catalogName()); /* create table or fix config */ }","preventionTips":["Always pass fully qualified, correctly-cased table identifiers","Verify table existence with listTables before syncing","Watch for case sensitivity in identifier names"],"tags":["jdbc","catalog","table-not-exist","tablepath"],"backgroundTag":"entity-not-found","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}