[Mono-devel-list] Npgsql patch for binary types

Francisco Figueiredo Jr. fxjrlists at yahoo.com.br
Thu Oct 23 11:14:51 EDT 2003

Jackson Harper wrote:
> Hello,

Hi Jackson!

> 	Attached is a patch to NpgsqlTypes/NpgswlTypesHelper.cs that allows
> binary types to be used as parameters. Is it ok to commit?


We now have two implementations for this.

This is the implementation which we already have in cvs:

private static String ConvertByteArrayToBytea(Byte[] byteArray)
         NpgsqlEventLog.LogMethodEnter(LogLevel.Debug, CLASSNAME, 	 
                 StringBuilder  result = new StringBuilder(""); 

                 foreach(Byte byteToConvert in byteArray)
                         result.Append((byteToConvert & 0xC0) >> 6);
                         result.Append((byteToConvert & 0x38) >> 3);
                         result.Append(byteToConvert & 0x07);

                 return result.ToString();

But I don't know yet if yours could be faster. We have to do somet 
tests. I know that the current implementation isn't so fast. I mean, it 
is using byte shifts and I don't know how much slower or faster it could 
be compared to "ifs".

Also, we have the inverse operation and I'm sure this has a lot of space 
for optimizations. Please have a look in the ConvertyByteAToByteArray 
method. The problem there is to convert a string in octal form \\201 for 
example in its byte value. This method is very slow and consuming a lot 
of memory when the value to be converted is larger than 2 megabytes.

Does anybody know some good way of converting a string value in octal to 
its byte value?

> Thanks,

Thank you Jackson.


Francisco Figueiredo Jr.

More information about the Mono-devel-list mailing list