X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=6948cf6c27902528030c17f0f8f602811a3b79dc;hb=67bc14539b91a77d841b02b76444fdd62206d896;hp=ae5a9e0d21b6583712fcc5d7fd3578cb55479876;hpb=6b1a0d77983a7a2dd80630cc46ad659fa4cc3b7a;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index ae5a9e0d..6948cf6c 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -3219,7 +3219,6 @@ class DBConn(object): 'almost_obsolete_all_associations', 'almost_obsolete_src_associations', 'any_associations_source', - 'bin_assoc_by_arch', 'bin_associations_binaries', 'binaries_suite_arch', 'binfiles_suite_component_arch', @@ -3591,12 +3590,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')