{"record":{"id":"49f3c51d541a45df","repo":"apache/seatunnel","slug":"no-result-returned-after-running-query-sqlquery-49f3c5","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/yashandb/YashanDbDialect.java","lineNumber":291,"sourceCode":"            sqlQuery =\n                    String.format(\n                            \"SELECT MAX(%s) FROM (\"\n                                    + \"SELECT %s FROM %s WHERE %s >= ? ORDER BY %s ASC \"\n                                    + \") WHERE ROWNUM <= %s\",\n                            quotedColumn,\n                            quotedColumn,\n                            tableIdentifier(table.getTablePath()),\n                            quotedColumn,\n                            quotedColumn,\n                            chunkSize);\n        }\n\n        try (PreparedStatement ps = connection.prepareStatement(sqlQuery)) {\n            ps.setObject(1, includedLowerBound);\n            try (ResultSet rs = ps.executeQuery()) {\n                if (!rs.next()) {\n                    // this should never happen\n                    throw new SQLException(\n                            String.format(\"No result returned after running query [%s]\", sqlQuery));\n                }\n                return rs.getObject(1);\n            }\n        }\n    }\n\n    @Override\n    public Object[] sampleDataFromColumn(\n            Connection connection,\n            JdbcSourceTable table,\n            String columnName,\n            int samplingRate,\n            int fetchSize)\n            throws Exception {\n        String sampleQuery;\n        if (StringUtils.isNotBlank(table.getQuery())) {\n            sampleQuery =","sourceCodeStart":273,"sourceCodeEnd":309,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbDialect.java#L273-L309","documentation":"Thrown by YashanDbDialect.queryNextChunkMax when the prepared statement for the next-chunk MAX query executes but returns no result set row, leaving the chunk boundary undeterminable for the ROWNUM-based pagination query.","triggerScenarios":"Calling queryNextChunkMax when the key-range predicate matches zero rows: NULL split-key values, concurrent data changes, or an unsuitable split key column.","commonSituations":"Table truncated mid-split; sparse or non-monotonic split key chosen; NULLs in the split column.","solutions":["Use a NOT NULL, monotonic split key","Re-run so splits are computed against consistent data","Avoid concurrent DML/DLL on the table during splitting","Reduce chunk size so bounds track real data"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"SELECT MAX(SplitKey) FROM YashanTable WHERE SplitKey > ?; -- must return one row","typeGuard":null,"tryCatchPattern":"try {\n    readSplits();\n} catch (SQLException e) {\n    if (e.getMessage().startsWith(\"No result returned\")) { /* re-enumerate splits */ }\n}","preventionTips":["Pick a NOT NULL monotonic split key","Avoid concurrent truncate/delete during splitting","Ensure the key range contains data"],"tags":["jdbc","yashandb","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"}