Quoting Frederick Cheung <[EMAIL PROTECTED]>:
> On 9 Dec 2008, at 21:33, Jeffrey L. Taylor wrote:
[snip]
> > I think I've found the answer.  The key thing is that the test  
> > script is
> > adding a record at run time.  ActiveRecord does not commit these  
> > records.
> > This is so it can rollback the test database to just the fixtures  
> > after each
> > test.  The record ID is being passed to Xapian thru acts_as_xapian  
> > database,
> > but there is no such record actually in the database, just in the  
> > ActiveRecord
> > cache.  This problem exists for all search engines that read the  
> > database
> > directly instead of going thru Rails.
> 
> Although the record isn't committed, other connections to the database  
> can see it if they ask.
> With Sphinx I get it to execute "SET SESSION TRANSACTION ISOLATION  
> LEVEL READ UNCOMMITTED" and it can then see the non committed changes  
> from my tests.
> 

Thank you.  Do you know if this is an SQL standard?  From the MySQL manual it
looks like it is MySQL specific.  For the moment I'll just test the Xapian
searching against records in the fixtures.  But this is good to know it that
turns out to be too great a restriction, i.e., an undetected because of this
bug bites me.

Jeffrey

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to