X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=9c25f67014562c8b1453f08b2577b670e99978ba;hb=9d4e45eb9a3f847f00f3b09d85d7b7ed46529ba9;hp=ae5a9e0d21b6583712fcc5d7fd3578cb55479876;hpb=4d93fa91d9332090e0fbab687f66014368c8c8c5;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')