{"record":{"id":"33cc02b591776ddd","repo":"prestodb/presto","slug":"rowupdated","errorCode":null,"errorMessage":"rowUpdated","messagePattern":"rowUpdated","errorType":"exception","errorClass":"SQLFeatureNotSupportedException","httpStatus":null,"severity":"error","filePath":"presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java","lineNumber":753,"sourceCode":"            throws SQLException\n    {\n        checkOpen();\n        return TYPE_FORWARD_ONLY;\n    }\n\n    @Override\n    public int getConcurrency()\n            throws SQLException\n    {\n        checkOpen();\n        return CONCUR_READ_ONLY;\n    }\n\n    @Override\n    public boolean rowUpdated()\n            throws SQLException\n    {\n        throw new SQLFeatureNotSupportedException(\"rowUpdated\");\n    }\n\n    @Override\n    public boolean rowInserted()\n            throws SQLException\n    {\n        throw new SQLFeatureNotSupportedException(\"rowInserted\");\n    }\n\n    @Override\n    public boolean rowDeleted()\n            throws SQLException\n    {\n        throw new SQLFeatureNotSupportedException(\"rowDeleted\");\n    }\n\n    @Override\n    public void updateNull(int columnIndex)","sourceCodeStart":735,"sourceCodeEnd":771,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java#L735-L771","documentation":"PrestoResultSet throws SQLFeatureNotSupportedException(\"rowUpdated\") because Presto results are immutable snapshots of query output; there is no updatable-row concept, so the JDBC row-change detection methods are unsupported stubs.","triggerScenarios":"Calling ResultSet.rowUpdated() on a PrestoResultSet at any time.","commonSituations":"Generic JDBC result-set wrappers that call rowUpdated/rowInserted/rowDeleted during iteration for change detection on updatable result sets.","solutions":["Remove rowUpdated() calls; Presto result sets can never report updates","Skip change-detection logic when the underlying connection is a Presto connection","Track changes at the database level with version/timestamp columns queried in SQL instead"],"exampleFix":"// before\nif (rs.rowUpdated()) { refresh(rs); }\n// after\n// Presto result sets are static; no update detection is possible\nprocess(rs);","handlingStrategy":"try-catch","validationCode":"int type = stmt.getResultSetType();\nif (type != ResultSet.TYPE_FORWARD_ONLY && !conn.getMetaData().supportsResultSetType(type)) { /* skip change detection */ }","typeGuard":null,"tryCatchPattern":"try { rs.rowUpdated(); } catch (SQLFeatureNotSupportedException e) { /* treat as false; Presto results are immutable */ }","preventionTips":["Do not use updatable-result-set APIs with Presto","Detect changes via SQL (version columns, re-query) rather than cursor APIs","Gate rowUpdated/rowInserted/rowDeleted calls on driver capability checks"],"tags":["jdbc","unsupported-operation","updatable-resultset"],"backgroundTag":"jdbc-updatable-resultset-unsupported","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}