[pg-cvs] CVS update: pg/v3-protocol.lisp

Eric Marsden emarsden at common-lisp.net
Wed Apr 21 19:27:47 UTC 2004


Update of /project/pg/cvsroot/pg
In directory common-lisp.net:/tmp/cvs-serv23077

Modified Files:
	v3-protocol.lisp 
Log Message:

A provisional fix for large object support: the test case (whose
large-object component only runs on CMUCL) was resetting the connection
during the IMPORT/EXPORT test, due to an unexpected #\V packet
(FunctionCallResponse) in DO-FOLLOWUP-QUERY. It's still not clear why a
FunctionCallResponse should be received anywhere other than in FN.
This test is currently failing due to CR -> "\012" corruption that I haven't
debugged. 



Date: Wed Apr 21 15:27:47 2004
Author: emarsden

Index: pg/v3-protocol.lisp
diff -u pg/v3-protocol.lisp:1.9 pg/v3-protocol.lisp:1.10
--- pg/v3-protocol.lisp:1.9	Thu Apr  1 13:35:19 2004
+++ pg/v3-protocol.lisp	Wed Apr 21 15:27:46 2004
@@ -579,8 +579,14 @@
            ;; PortalSuspend
            ;; we're done in any case:
            (return result))
-         ((#\2
-           ;; BindComplete
+          ((#\V)
+           ;; FunctionCallResponse -- not clear why we would get these here instead of in FN
+           (let* ((length (read-from-packet packet :int32))
+                  (response (unless (= length -1)
+                              (read-string-from-packet packet length))))
+             (setf (pgresult-status result) response)))
+          ((#\2
+            ;; BindComplete
            #\1
            ;; ParseComplete
            #\3
@@ -709,7 +715,7 @@
           :for packet = (read-packet connection)
           :do
           (case (pg-packet-type packet)
-            ((#\V)
+            ((#\V) ; FunctionCallResponse
              (let* ((length (read-from-packet packet :int32))
                     (data (unless (= length -1)
                             (if integer-result





More information about the Pg-cvs mailing list