Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient
In directory sc8-pr-cvs1:/tmp/cvs-serv14628
Modified Files:
PgDbClient.cs PgStatement.cs
Log Message:
* source/NPgClient/PgDbClient.cs:
* source/NPgClient/PgStatement.cs:
- Added correct processing of Sync and error messages.
Index: PgDbClient.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** PgDbClient.cs 21 Nov 2003 12:23:05 -0000 1.34
--- PgDbClient.cs 21 Nov 2003 18:01:04 -0000 1.35
***************
*** 180,183 ****
--- 180,184 ----
packet.Write((byte)0); // Terminator
+ // Handshake protocol will be negotiated here if the connection is using SSL/TLS
SendData(packet.GetSimplePacketBytes());
***************
*** 271,274 ****
--- 272,278 ----
PgClientException ex = processErrorPacket(responsePacket);
+ // Perform a sync
+ Sync();
+
throw ex;
}
***************
*** 543,547 ****
public void RollbackTransction()
{
! PgStatement stmt = CreateStatement("ROLLBACK TRANSACTION");
stmt.Query();
--- 547,551 ----
public void RollbackTransction()
{
! PgStatement stmt = CreateStatement("ROLLBACK TRANSACTION");
stmt.Query();
***************
*** 586,589 ****
--- 590,601 ----
// Send packet to the server
SendData(packet.GetPacketBytes(PgFrontEndCodes.SYNC));
+
+ // Receive response
+ PgResponsePacket response = new PgResponsePacket();
+ while (response.Message != PgBackendCodes.READY_FOR_QUERY)
+ {
+ response = ReceiveResponsePacket();
+ processResponsePacket(response);
+ }
}
catch (Exception ex)
Index: PgStatement.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgStatement.cs,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** PgStatement.cs 20 Nov 2003 17:34:43 -0000 1.11
--- PgStatement.cs 21 Nov 2003 18:01:04 -0000 1.12
***************
*** 195,199 ****
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.PARSE));
! // Sync server and client
db.Flush();
--- 195,199 ----
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.PARSE));
! // Flush pending messages
db.Flush();
***************
*** 249,253 ****
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.DESCRIBE));
! // Sync server and client
db.Flush();
--- 249,253 ----
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.DESCRIBE));
! // Flush pending messages
db.Flush();
***************
*** 317,321 ****
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.BIND));
! // Sync server and client
db.Flush();
--- 317,321 ----
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.BIND));
! // Flush pending messages
db.Flush();
***************
*** 355,364 ****
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.EXECUTE));
! // Sync server and client
db.Flush();
// Receive response
PgResponsePacket response = new PgResponsePacket();
! while (response.Message != PgBackendCodes.READY_FOR_QUERY &&
response.Message != PgBackendCodes.PORTAL_SUSPENDED &&
response.Message != PgBackendCodes.COMMAND_COMPLETE)
--- 355,364 ----
db.SendData(packet.GetPacketBytes(PgFrontEndCodes.EXECUTE));
! // Flush pending messages
db.Flush();
// Receive response
PgResponsePacket response = new PgResponsePacket();
! while (response.Message != PgBackendCodes.READY_FOR_QUERY &&
response.Message != PgBackendCodes.PORTAL_SUSPENDED &&
response.Message != PgBackendCodes.COMMAND_COMPLETE)
***************
*** 385,391 ****
{
db.Sync();
-
- response = db.ReceiveResponsePacket();
- processSqlPacket(response);
}
--- 385,388 ----
|