Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient
In directory sc8-pr-cvs1:/tmp/cvs-serv5275
Modified Files:
PgDbClient.cs PgOutputPacket.cs PgResponsePacket.cs
Log Message:
* source/NPgClient/PgOutputPacket.cs:
* source/NPgClient/PgResponsePacket.cs:
* source/NPgClient/PgDbClient.cs:
- Added correct encoding/decoding of string values with the
client_encoding character set.
Index: PgDbClient.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgDbClient.cs,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** PgDbClient.cs 14 Nov 2003 13:44:23 -0000 1.32
--- PgDbClient.cs 17 Nov 2003 10:56:41 -0000 1.33
***************
*** 355,359 ****
switch (parameterName)
{
! case "server_encoding":
settings.Encoding = charSets[parameterValue].Encoding;
break;
--- 355,359 ----
switch (parameterName)
{
! case "client_encoding":
settings.Encoding = charSets[parameterValue].Encoding;
break;
Index: PgOutputPacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgOutputPacket.cs,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** PgOutputPacket.cs 12 Nov 2003 22:38:32 -0000 1.18
--- PgOutputPacket.cs 17 Nov 2003 10:56:41 -0000 1.19
***************
*** 61,65 ****
{
this.encoding = encoding;
! Write(new byte[0]);
}
--- 61,65 ----
{
this.encoding = encoding;
! this.Write(new byte[0]);
}
***************
*** 70,75 ****
public void WriteString(string data)
{
! this.Write(data.ToCharArray());
! this.Write(PgCodes.NULL_TERMINATOR);
}
--- 70,78 ----
public void WriteString(string data)
{
! if (!data.EndsWith(PgCodes.NULL_TERMINATOR.ToString()))
! {
! data += PgCodes.NULL_TERMINATOR;
! }
! this.Write(encoding.GetBytes(data));
}
***************
*** 388,393 ****
case PgDataType.VarChar:
{
! string paramValue = value.ToString();
! packet.WriteInt(encoding.GetByteCount(paramValue + PgCodes.NULL_TERMINATOR));
packet.WriteString(paramValue);
}
--- 391,396 ----
case PgDataType.VarChar:
{
! string paramValue = value.ToString() + PgCodes.NULL_TERMINATOR;
! packet.WriteInt(encoding.GetByteCount(paramValue));
packet.WriteString(paramValue);
}
Index: PgResponsePacket.cs
===================================================================
RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/NPgClient/PgResponsePacket.cs,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** PgResponsePacket.cs 6 Nov 2003 16:37:22 -0000 1.19
--- PgResponsePacket.cs 17 Nov 2003 10:56:41 -0000 1.20
***************
*** 136,140 ****
Read(buffer, 0, length);
! return Encoding.Default.GetString(buffer);
}
--- 136,140 ----
Read(buffer, 0, length);
! return encoding.GetString(buffer);
}
***************
*** 146,150 ****
Read(buffer, 0, length);
! return Encoding.Default.GetString(buffer);
}
--- 146,150 ----
Read(buffer, 0, length);
! return encoding.GetString(buffer);
}
|