Hi Jacob-

I finally got around to testing your fixes. Unfortunately, MySQL does not
convert empty strings to nulls out of the box, nor could I find a way to
make it support this behavior. (This was after a small amount of googling
around; there may be an answer somewhere that I just couldn't find - maybe
someone here knows?).

I'll keep poking around a little bit and see if I can see a way around this
- it would be a bummer if the ETL framework exhibited radically different
behavior depending on which adapter it was using.

Darin
  


> From: Jacob Maine <[EMAIL PROTECTED]>
> Date: Fri, 17 Oct 2008 11:07:53 -0700 (PDT)
> To: Darin Wilson <[EMAIL PROTECTED]>
> Cc: <activewarehouse-discuss@rubyforge.org>
> Subject: Re: [Activewarehouse-discuss] would the real codebase please stand
> up? :)
> 
> Hi Darin - 
> 
> Please pull from my adapter_extensions branch
> (http://github.com/mainej/adapter_extensions/tree) or wait until Anthony pulls
> my changes.  Unfortunately, I'm not sure that will fix
> test_bulk_import_with_empties.  I can't be sure because I don't have MySQL
> installed, and don't have time to do that right now.
> 
> The change I made to adapter_extensions allows Postgres to import empty
> strings as nulls.  That's what the test is about.  I put the test in for both
> adapters, hoping that MySQL would do the right thing out of the box.  If it's
> not working, I suggest either making your proposed change, or looking at
> adapter_extensions to see if you can get MySQL to handle empty strings in a
> more useful way.  I'll look at this stuff more this weekend to make sure my
> system is up-to-date and tests are passing for Postgres.
> 
> Hopefully with two groups developing for Postgres and MySQL, we'll get AW & AW
> ETL back into a stable state.
> 
> Best, 
> Jacob
> 
> 
> ----- Darin Wilson <[EMAIL PROTECTED]> wrote:
>> I just pulled the latest from your github repo and ran the ETL test suite
>> locally against MySQL. I got 10 errors that were about SCDs, so I'm assuming
>> those were the same ones you mentioned in your last message(?).
>> 
>> There was one other error:
>> 
>>   1) Failure:
>> test_bulk_import_with_empties(ProcessorTest) [./test/processor_test.rb:19]:
>> <ActiveRecord::StatementInvalid> exception expected but none was thrown.
>> 
>> It turns out that MySQL is much less strict about what goes into the bulk
>> loader - if you try to load a row with an empty value into a column that
>> disallows null, MySQL just skips it without an error. Nice! :)
>> 
>> I'm not sure how you'd like to handle that. I tried poking around a bit to
>> see if there's a way to force MySQL into being more strict, but I couldn't
>> get anything to work reliably. The simplest fix would be to do something
>> like this in the test:
>> 
>>     unless ETL::Engine.connection(:data_warehouse).class ==
>> ActiveRecord::ConnectionAdapters::MysqlAdapter
>>       assert_raise(ActiveRecord::StatementInvalid) {
>> do_bulk_import('bulk_import_with_empties.txt') }
>>     end
>> 
>> which sort of invalidates the test, but it doesn't seem like there's a way
>> to make this test actually work with MySQL. Your call. ;)
>> 
>> Darin
>> 
>> 
>>> From: Anthony Eden <[EMAIL PROTECTED]>
>>> Date: Thu, 16 Oct 2008 15:23:04 -0400
>>> To: Darin Wilson <[EMAIL PROTECTED]>
>>> Cc: <activewarehouse-discuss@rubyforge.org>
>>> Subject: Re: [Activewarehouse-discuss] would the real codebase please stand
>>> up? :)
>>> 
>>> I think I have most of the fixes to ETL in for the 2.1 changes. I've
>>> started changing over some of the tests to use shoulda 1.x, so if you
>>> want to run the built in tests then you'll need the shoulda gem. There
>>> are currently two failing tests related to the SCD implementation.
>>> Jacob, was that an area you worked on? If so could you take a look at
>>> the failing tests? Also, I currently have tested with Postgres locally
>>> but not MySQL, so if someone wants to fight through the test suite on
>>> MySQL, be my guest. :-)
>>> 
>>> Thanks.
>>> 
>>> -Anthony
>>> 
>>> On Thu, Oct 16, 2008 at 12:11 PM, Darin Wilson
>>> <[EMAIL PROTECTED]> wrote:
>>>> Cool - that is what I was going to start working on. :)
>>>> 
>>>> Please let us know when your 2.1 fixes to ETL are checked in - I'd like to
>>>> try it out with our ETL (and I have a bunch of test cases for it).
>>>> 
>>>> Thanks!
>>>> Darin
>>>> 
>>>>> From: Anthony Eden <[EMAIL PROTECTED]>
>>>>> Date: Thu, 16 Oct 2008 06:59:41 -0400
>>>>> To: Marty Haught <[EMAIL PROTECTED]>
>>>>> Cc: <activewarehouse-discuss@rubyforge.org>
>>>>> Subject: Re: [Activewarehouse-discuss] would the real codebase please
>>>>> stand
>>>>> up? :)
>>>>> 
>>>>> I've started the upgrade to 2.1. I've already modified ActiveWarehouse
>>>>> ETL to handle the new migration process and I have it running right
>>>>> now under 2.1. Once I get past my first ETL load on the project I'm
>>>>> working on I'll move onto the AW plugin.
>>>>> 
>>>>> -Anthony
>>>>> _______________________________________________
>>>>> Activewarehouse-discuss mailing list
>>>>> Activewarehouse-discuss@rubyforge.org
>>>>> http://rubyforge.org/mailman/listinfo/activewarehouse-discuss
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Activewarehouse-discuss mailing list
>>>> Activewarehouse-discuss@rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/activewarehouse-discuss
>>>> 
>> 
>> 
>> _______________________________________________
>> Activewarehouse-discuss mailing list
>> Activewarehouse-discuss@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/activewarehouse-discuss
> 


_______________________________________________
Activewarehouse-discuss mailing list
Activewarehouse-discuss@rubyforge.org
http://rubyforge.org/mailman/listinfo/activewarehouse-discuss

Reply via email to