From d86baf9f65817949a8dfdf78ff5ce37c7db2d802 Mon Sep 17 00:00:00 2001 From: Tim Laszlo Date: Tue, 24 Jul 2012 10:05:31 -0500 Subject: DBStats: Limit rows purged when using sqlite SQLite limits the number of variables allowed in a single SQL statement. This reduces the number of rows purged when SQLite is used. --- src/lib/Bcfg2/Server/Admin/Reports.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/Bcfg2/Server/Admin/Reports.py b/src/lib/Bcfg2/Server/Admin/Reports.py index 17e1e1e4d..8201ad104 100644 --- a/src/lib/Bcfg2/Server/Admin/Reports.py +++ b/src/lib/Bcfg2/Server/Admin/Reports.py @@ -281,6 +281,10 @@ class Reports(Bcfg2.Server.Admin.Mode): self.log.debug("Filtering by maxdate: %s" % maxdate) ipurge = ipurge.filter(timestamp__lt=maxdate) + if Bcfg2.Server.Reports.settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3': + grp_limit = 100 + else: + grp_limit = 1000 if state: filtered = True if state not in ('dirty', 'clean', 'modified'): @@ -293,7 +297,7 @@ class Reports(Bcfg2.Server.Admin.Mode): rnum = 0 try: while rnum < count: - grp = list(ipurge[:1000].values("id")) + grp = list(ipurge[:grp_limit].values("id")) # just in case... if not grp: break -- cgit v1.2.3-1-g7c22