summaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/org/postgresql/fastpath
diff options
context:
space:
mode:
authorDave Cramer <davec@fastcrypt.com>2003-12-17 15:38:42 +0000
committerDave Cramer <davec@fastcrypt.com>2003-12-17 15:38:42 +0000
commite4955c2ec365daaae6e3eab730e0686ebbf009cc (patch)
tree27386436e55302091c71f3a03252142f3c2f50d0 /src/interfaces/jdbc/org/postgresql/fastpath
parent95eea2d89c49fd073ad01407d842c6f8199c74e2 (diff)
patch from Kris Jurka to fix large object 7.1 compatible protocol issues
modified test case from Alexey Yudichev to be part of the testsuite
Diffstat (limited to 'src/interfaces/jdbc/org/postgresql/fastpath')
-rw-r--r--src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java b/src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java
index e69529fc05d..44243f7b8ea 100644
--- a/src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java
+++ b/src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java
@@ -6,7 +6,7 @@
* Copyright (c) 2003, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java,v 1.17 2003/11/29 19:52:09 pgsql Exp $
+ * $PostgreSQL: pgsql/src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java,v 1.18 2003/12/17 15:38:42 davec Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,7 +63,7 @@ public class Fastpath
*/
public Object fastpath(int fnid, boolean resulttype, FastpathArg[] args) throws SQLException
{
- if (conn.haveMinimumServerVersion("7.4")) {
+ if (conn.haveMinimumCompatibleVersion("7.4")) {
return fastpathV3(fnid, resulttype, args);
} else {
return fastpathV2(fnid, resulttype, args);
@@ -78,19 +78,22 @@ public class Fastpath
// send the function call
try
{
- int l_msgLen = 0;
- l_msgLen += 16;
- for (int i=0;i < args.length;i++)
+ int l_msgLen = 14;
+ for (int i=0; i < args.length; i++) {
+ l_msgLen += 2;
l_msgLen += args[i].sendSize();
+ }
stream.SendChar('F');
stream.SendInteger(l_msgLen,4);
stream.SendInteger(fnid, 4);
- stream.SendInteger(1,2);
- stream.SendInteger(1,2);
+
stream.SendInteger(args.length,2);
+ for (int i=0; i < args.length; i++)
+ stream.SendInteger(1,2);
- for (int i = 0;i < args.length;i++)
+ stream.SendInteger(args.length,2);
+ for (int i = 0; i < args.length; i++)
args[i].send(stream);
stream.SendInteger(1,2);