diff options
author | Francisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com> | 2003-10-24 20:33:49 +0400 |
---|---|---|
committer | Francisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com> | 2003-10-24 20:33:49 +0400 |
commit | 11a59684be5c4ac0935d11f0427d9748b48bb607 (patch) | |
tree | d4204fd1a10aee161c997f7e6b1c7580752b1ca4 /mcs/class/Npgsql/NpgsqlTypes | |
parent | 79d40fd1cfb67db64e258a099a770bc7f5450af0 (diff) |
2003-10-24: Francisco Figueiredo Jr. <fxjrlists@yahoo.com.br>
* Better performance implementation of the method which converts a byte[] to a bytea string. Thanks Jackson Harper (jackson at ximian dot com)
svn path=/trunk/mcs/; revision=19362
Diffstat (limited to 'mcs/class/Npgsql/NpgsqlTypes')
-rwxr-xr-x | mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs index 18db767b769..0d63fcadccf 100755 --- a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs +++ b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypesHelper.cs @@ -483,20 +483,20 @@ namespace NpgsqlTypes private static String ConvertByteArrayToBytea(Byte[] byteArray) { - NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "ConvertByteArrayToBytea"); - StringBuilder result = new StringBuilder(""); - - foreach(Byte byteToConvert in byteArray) - { - result.Append("\\\\"); - result.Append((byteToConvert & 0xC0) >> 6); - result.Append((byteToConvert & 0x38) >> 3); - result.Append(byteToConvert & 0x07); - } - - return result.ToString(); - } - + NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, "ConvertByteArrayToBytea"); + Int32 len = byteArray.Length; + Char[] res = new Char [len * 5]; + for (Int32 i = 0; i <len; i++) + { + res [(i*5)] = '\\'; + res [(i*5)+1] = '\\'; + res [(i*5)+2] = (Char) (((byteArray[i] & 0xC0) >> 6) + '0'); + res [(i*5)+3] = (Char) (((byteArray[i] & 0x38) >> 3) + '0'); + res [(i*5)+4] = (Char) ((byteArray[i] & 0x07) + '0'); + } + + return new String (res); + } } |