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
--