SQL Redux

Martin Hepworth maxsec at TOTALISE.CO.UK
Thu Jul 31 11:42:34 IST 2003


aha

I think the

@fields = map { ($_ eq '')?'NULL':"$_" } @fields;

bit is missing from Steve's patch. I'll try and plop a line or two in to
check the potential NULL's and mark the value correctly..

--
Martin

Julian Field wrote:

> At 11:04 31/07/2003, you wrote:
>
>> Chris Trudeau wrote:
>>
>>>> this is exactly the problem I'm seeing with 4.22.5 on FreeBSD.
>>>
>>>
>>>
>>> CT:  OK, there seems to be a common thread...I haven't expanded test to
>>> anything other than 4.22-5 or 4.22.1, but the older version I have
>>> working
>>> beatifully, so either the logging function in 4.22-1 doesn't have the
>>> NULL
>>> value problem or its addressed differently.  Perhaps I will try
>>> installing
>>> 4.22-1 or a between version to try and pinpoint where it breaks!
>>
>> Chris
>>
>> looking at the 4.22.1 code there's quite a big change on the whole SQL
>> logging setup. Infact the code is radically different.
>>
>> in 4.22.1 it reads the logfile to get the info required. Slow...
>>
>> in 4.22.5 it's using the values from the currently processed email to
>> drive the insert. It's a lot faster, but seems not to translate NULLs
>> etc very well.
>
>
> This goes in CustomConfig.pm around line 373.
> It goes in just before the "prepare" statement that inserts @fields into
> the database table.
> Note the additional bugfix when replacing ' with \'
>
>   while(<$logfile1>) {
>     chomp;
>     @fields = split(/\t/);
>     # Work through each field protecting any special characters such as '
>     # The line below replaces ' with \'
>     @fields = map { s/\'/\\'/g } @fields;
>
>     # Set any empty strings to NULL so the SQL insert works correctly
>     @fields = map { ($_ eq '')?'NULL':"$_" } @fields;
>
>
> --
> Julian Field
> www.MailScanner.info
> MailScanner thanks transtec Computers for their support



More information about the MailScanner mailing list