Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:59:47 +0100] rev 5013
[source storage] refactor source sql generation and results handling to allow repository side callbacks
for instance with the BytesFileSystemStorage, before this change:
* fspath, _fsopen function were stored procedures executed on the database
-> files had to be available both on the repository *and* the database host
* we needed implementation for each handled database
Now, those function are python callbacks executed when necessary on the
repository side, on data comming from the database.
The litle cons are:
* you can't do anymore restriction on mapped attributes
* you can't write queries which will return in the same rset column
some mapped attributes (or not mapped the same way) / some not
This seems much acceptable since:
* it's much more easy to handle when you start having the db on another host
than the repo
* BFSS works seemlessly on any backend now
* you don't bother that much about the cons (at least in the bfss case):
you usually don't do any restriction on Bytes...
Bonus points: BFSS is more efficient (no queries under the cover as it
was done in the registered procedure) and we have a much nicer/efficient
fspath implementation.
IMO, that rocks :D
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:49:07 +0100] rev 5012
[bfss] fix name error
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:46:55 +0100] rev 5011
[source storage] on deletion, entity has no edited_attributes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:44:24 +0100] rev 5010
[cleanup] rename dbms_helper to dbhelper for consistency
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:42:17 +0100] rev 5009
[entity] we also have to override dict.pop to properly maintain edited_attributes consistency
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:41:26 +0100] rev 5008
[bfss test] some minor refactoring. Test deletion + creation/update/deletion rollback