X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=9c25f67014562c8b1453f08b2577b670e99978ba;hb=3f673e29a7eccfbf1ef4f162dfe5bc40af84cd81;hp=ae5a9e0d21b6583712fcc5d7fd3578cb55479876;hpb=788aa4ad2ffc3a36dc6b41e433119feae26dc9a5;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index ae5a9e0d..9c25f670 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -3591,12 +3591,21 @@ class DBConn(object): self.__setupmappers() self.pid = os.getpid() - def session(self): + def session(self, work_mem = 0): + ''' + Returns a new session object. If a work_mem parameter is provided a new + transaction is started and the work_mem parameter is set for this + transaction. The work_mem parameter is measured in MB. A default value + will be used if the parameter is not set. + ''' # reinitialize DBConn in new processes if self.pid != os.getpid(): clear_mappers() self.__createconn() - return self.db_smaker() + session = self.db_smaker() + if work_mem > 0: + session.execute("SET LOCAL work_mem TO '%d MB'" % work_mem) + return session __all__.append('DBConn')