{"record":{"id":"929ef971fa029cd3","repo":"apache/seatunnel","slug":"no-result-returned-after-running-query-sqlquery-929ef9","errorCode":null,"errorMessage":"No result returned after running query [${sqlQuery}]","messagePattern":"No result returned after running query \\[(.+?)\\]","errorType":"exception","errorClass":"SQLException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java","lineNumber":274,"sourceCode":"                    String.format(\n                            \"SELECT MAX(%s) FROM (\"\n                                    + \"SELECT TOP (%s) %s FROM %s WHERE %s >= ? ORDER BY %s ASC \"\n                                    + \") AS T\",\n                            quotedColumn,\n                            chunkSize,\n                            quotedColumn,\n                            tableIdentifier(table.getTablePath()),\n                            quotedColumn,\n                            quotedColumn);\n        }\n        try (PreparedStatement ps = connection.prepareStatement(sqlQuery)) {\n            ps.setObject(1, includedLowerBound);\n            try (ResultSet rs = ps.executeQuery()) {\n                if (rs.next()) {\n                    return rs.getObject(1);\n                } else {\n                    // this should never happen\n                    throw new SQLException(\n                            String.format(\"No result returned after running query [%s]\", sqlQuery));\n                }\n            }\n        }\n    }\n\n    @Override\n    public TypeConverter<BasicTypeDefine> getTypeConverter() {\n        return SqlServerTypeConverter.INSTANCE;\n    }\n\n    @Override\n    public void applySchemaChange(\n            Connection connection, TablePath tablePath, AlterTableAddColumnEvent event)\n            throws SQLException {\n        List<String> ddlSQL = new ArrayList<>();\n        Column column = event.getColumn();\n        String sourceDialectName = event.getSourceDialectName();","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlserver/SqlServerDialect.java#L256-L292","documentation":"Thrown by SqlServerDialect.queryNextChunkMax when the chunk-max query (SELECT MAX(col) ... WHERE col > ? ... or similar) returns no rows, which the code comments say should never happen. It guards the chunk-splitting invariant that every chunk boundary query yields one row.","triggerScenarios":"Calling queryNextChunkMax with an includedLowerBound that produces zero matching rows, typically when the split key column has NULLs, the table was truncated/changed between split enumeration and query execution, or the chunk SQL is malformed for the data.","commonSituations":"Concurrent deletes/truncation during split computation; split key column containing NULL values excluded by comparison; incorrect split key chosen (non-monotonic column).","solutions":["Re-run the job so split enumeration sees a consistent table snapshot","Choose a stable, NOT NULL, monotonic split key column","Reduce chunk size or use a smaller table scan so bounds align with actual data","Check for concurrent ETL jobs modifying the table during splitting"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"SELECT COUNT(*) FROM MyTable WHERE MySplitKey > ? AND MySplitKey <= ?; -- must be > 0","typeGuard":null,"tryCatchPattern":"try {\n    readSplits();\n} catch (SQLException e) {\n    if (e.getMessage().contains(\"No result returned after running query\")) {\n        // re-enumerate splits on a stable snapshot\n    }\n}","preventionTips":["Choose a NOT NULL monotonic split key","Avoid concurrent truncation/deletion during split computation","Keep chunk bounds aligned with real data ranges"],"tags":["jdbc","sqlserver","split-reading","empty-result"],"backgroundTag":"empty-result-set","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}