[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?
> 
Thanks!
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, 	 
"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();
         }
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.
Regards,
Francisco Figueiredo Jr.
    
    
More information about the Mono-devel-list
mailing list