[ic] database transactions problem in log_transaction

david yee iamyee at gmail.com
Tue Jun 28 21:53:10 EDT 2005


I'm having what I believe to be a transactional mySQL issue in  
log_transaction.  I must first admit that I am not sure whether  
transactions are crucial in the case of a straightforward foundation- 
style store, but here goes nonetheless...

I have tried using both a [query] tag and perl Db objects in  
log_transaction to make updates to a set of rows in the  
"transactions" table, after the current transaction row is created.   
The query in question is:

UPDATE transactions SET value='0' WHERE username LIKE '$username' AND  
hold = 1;

That query is never passed to mySQL, and the following error lines  
appear in error.log:

  /process Bad SQL statement: Can't locate object method "new" via  
package "Vend::SQL_Parser" (perhaps you forgot to load  
"Vend::SQL_Parser"?) at /usr/lib/interchange/lib/Vend/Scan.pm line 597.
 >
 > Query was: UPDATE transactions SET value='0' WHERE username LIKE  
'userx' AND hold = 1

/process Unable to find base table in query: UPDATE transactions SET  
value='0' WHERE username LIKE 'userx' AND hold = 1

Now, since this only happens on tables that are marked in their route  
directive as transactional tables, I imagine that's the cause. Is  
there something that would prevent a SQL query from working inside,  
for example, log_transaction? What might I be able to do to update  
those rows, besides waiting for the route to complete?

Thanks in advance; if there's anything I can provide to make this  
clearer, please let me know.

Best
David


More information about the interchange-users mailing list