[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
#! /bin/sh -e
case "$1" in
configure|abort-upgrade|abort-remove|abort-deconfigure)
update-rc.d cubicweb defaults 99 >/dev/null
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
if [ "$1" = configure ]; then
# XXX bw compat: erudi -> cubicweb migration
if [ -e "/etc/erudi.d/" ]; then
mv /etc/erudi.d/* /etc/cubicweb.d/ && (
echo 'moved /etc/erudi.d/* to /etc/cubicweb.d/'
sed -i s/ginco/cubicweb/g /etc/*/*.py
sed -i s/erudi/cubicweb/ */*.conf
) || true # empty dir
fi
if [ -e "/var/log/erudi/" ]; then
mv /var/log/erudi/* /var/log/cubicweb/ && (
echo 'moved /var/log/erudi/* to /var/log/cubicweb/'
) || true # empty dir
fi
if [ -e "/var/lib/erudi/backup" ]; then
mv /var/lib/erudi/backup/* /var/lib/cubicweb/backup/ && (
echo 'moved /var/lib/erudi/backup/* to /var/lib/cubicweb/backup/'
) || true # empty dir
fi
if [ -e "/var/lib/erudi/instances" ]; then
mv /var/lib/erudi/instances/* /var/lib/cubicweb/instances/ && (
echo 'moved /var/lib/erudi/instances/* to /var/lib/cubicweb/instances/'
) || true # empty dir
fi
fi
#DEBHELPER#
exit 0