There is a big change in DAL. a = DAL(uri) b = DAL(uri)
now "a is b" because DAL is a singleton (almost). It is a thread local singleton as long a uri is specified. What does this mean in practice? It means that unless you have lazy virtual fields, Row and Rows objects can be serialized (pickled), properly cached, and stored in session. For example: session.rows = session.rows or db(db.mytable).select() and you can still do: session.rows.first().update_record(....) has many practical implications in the way you program and there is even more we could do. In the future we may be able to serialize every DAL expression. This is a big change in the source and the internal logic is complex. It may have some unforeseen side effects. PLEASE TEST THAT TRUNK DOES NOT BREAK YOUR CODE before this makes it into stable. massimo --