From b50cf4d70028266091a1078d48dc9b858043720b Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Mon, 27 Sep 2021 14:28:35 -0400 Subject: [PATCH] fix: Issue #2267, version 14 returns UNDEFINED FUNCTION for testInvokeFunctionHavingReturnParameter, also add v13, and v14 to Server versions --- .../src/main/java/org/postgresql/core/ServerVersion.java | 4 +++- .../test/jdbc3/EscapeSyntaxCallModeCallTest.java | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pgjdbc/src/main/java/org/postgresql/core/ServerVersion.java b/pgjdbc/src/main/java/org/postgresql/core/ServerVersion.java index d7f5175a41..b0a0d29283 100644 --- a/pgjdbc/src/main/java/org/postgresql/core/ServerVersion.java +++ b/pgjdbc/src/main/java/org/postgresql/core/ServerVersion.java @@ -28,7 +28,9 @@ public enum ServerVersion implements Version { v9_6("9.6.0"), v10("10"), v11("11"), - v12("12") + v12("12"), + v13("13"), + v14("14") ; private final int version; diff --git a/pgjdbc/src/test/java/org/postgresql/test/jdbc3/EscapeSyntaxCallModeCallTest.java b/pgjdbc/src/test/java/org/postgresql/test/jdbc3/EscapeSyntaxCallModeCallTest.java index f575506ca1..c25726077d 100644 --- a/pgjdbc/src/test/java/org/postgresql/test/jdbc3/EscapeSyntaxCallModeCallTest.java +++ b/pgjdbc/src/test/java/org/postgresql/test/jdbc3/EscapeSyntaxCallModeCallTest.java @@ -11,6 +11,7 @@ import org.postgresql.PGProperty; import org.postgresql.core.ServerVersion; import org.postgresql.jdbc.EscapeSyntaxCallMode; +import org.postgresql.test.TestUtil; import org.postgresql.util.PSQLState; import org.junit.Test; @@ -60,7 +61,12 @@ public void testInvokeFunctionHavingReturnParameter() throws Throwable { cs.execute(); fail("Should throw an exception"); } catch (SQLException ex) { - assertTrue(ex.getSQLState().equalsIgnoreCase(PSQLState.WRONG_OBJECT_TYPE.getState())); + // version 14 changes this to undefined function + if (TestUtil.haveMinimumServerVersion(con, ServerVersion.v14)) { + assertTrue(ex.getSQLState().equalsIgnoreCase(PSQLState.UNDEFINED_FUNCTION.getState())); + } else { + assertTrue(ex.getSQLState().equalsIgnoreCase(PSQLState.WRONG_OBJECT_TYPE.getState())); + } } }