From 29ea8ff9b13f7e4e42d18a04a46e5cc3d8f9cfd2 Mon Sep 17 00:00:00 2001 From: Dave Cramer <davec@fastcrypt.com> Date: Tue, 5 Mar 2002 18:02:44 +0000 Subject: [PATCH] Patch by Nicolas Verger to correctly propogate SQLWarning to the Statement and ResultSet --- .../jdbc/org/postgresql/ResultSet.java | 32 +++++++++++++++++++ .../jdbc/org/postgresql/Statement.java | 12 +++++++ 2 files changed, 44 insertions(+) diff --git a/src/interfaces/jdbc/org/postgresql/ResultSet.java b/src/interfaces/jdbc/org/postgresql/ResultSet.java index a9da22d4f46..768a489e6f3 100644 --- a/src/interfaces/jdbc/org/postgresql/ResultSet.java +++ b/src/interfaces/jdbc/org/postgresql/ResultSet.java @@ -223,5 +223,37 @@ public abstract class ResultSet return s; } + + /** + * The first warning reported by calls on this ResultSet is + * returned. Subsequent ResultSet warnings will be chained + * to this SQLWarning. + * + * <p>The warning chain is automatically cleared each time a new + * row is read. + * + * <p><B>Note:</B> This warning chain only covers warnings caused by + * ResultSet methods. Any warnings caused by statement methods + * (such as reading OUT parameters) will be chained on the + * Statement object. + * + * @return the first SQLWarning or null; + * @exception SQLException if a database access error occurs. + */ + public SQLWarning getWarnings() throws SQLException + { + return warnings; + } + + /** + * Add a warning chain to the current warning chain + * @param warnings warnings to add + */ + public void addWarnings(SQLWarning warnings) { + if ( this.warnings != null ) + this.warnings.setNextWarning(warnings); + else + this.warnings = warnings; + } } diff --git a/src/interfaces/jdbc/org/postgresql/Statement.java b/src/interfaces/jdbc/org/postgresql/Statement.java index dbd061bfd39..ea2cc0d0c33 100644 --- a/src/interfaces/jdbc/org/postgresql/Statement.java +++ b/src/interfaces/jdbc/org/postgresql/Statement.java @@ -110,6 +110,18 @@ public abstract class Statement timeout = seconds; } + /** + * This adds a warning to the warning chain. + * @param msg message to add + */ + public void addWarning(String msg) + { + if (warnings != null) + warnings.setNextWarning(new SQLWarning(msg)); + else + warnings = new SQLWarning(msg); + } + /* * The first warning reported by calls on this Statement is * returned. A Statement's execute methods clear its SQLWarning -- GitLab