[SCM] build.samba.org - branch master updated

Jelmer Vernooij jelmer at samba.org
Sun Nov 21 18:50:37 MST 2010


The branch, master has been updated
       via  c742b9f add cast.
      from  57e649e Fix revision .

http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c742b9f991ea32bf4121c9de47cfe65817e716ae
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Nov 22 02:49:51 2010 +0100

    add cast.

-----------------------------------------------------------------------

Summary of changes:
 buildfarm/sqldb.py        |   23 ++++++++++++++++++++---
 buildfarm/web/__init__.py |   11 ++++++-----
 2 files changed, 26 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py
index bf1d570..e950c72 100644
--- a/buildfarm/sqldb.py
+++ b/buildfarm/sqldb.py
@@ -40,10 +40,27 @@ try:
 except ImportError:
     import sqlite3
 from storm.database import create_database
+from storm.expr import EXPR, FuncExpr, compile
 from storm.locals import Bool, Desc, Int, Unicode, RawStr
 from storm.store import Store
 
 
+class Cast(FuncExpr):
+    __slots__ = ("column", "type")
+    name = "CAST"
+
+    def __init__(self, column, type):
+        self.column = column
+        self.type = type
+
+ at compile.when(Cast)
+def compile_count(compile, cast, state):
+    state.push("context", EXPR)
+    column = compile(cast.column, state)
+    state.pop()
+    return "CAST(%s AS %s)" % (column, cast.type)
+
+
 class StormBuild(Build):
     __storm_table__ = "build"
 
@@ -230,9 +247,9 @@ class StormCachingBuildResultStore(BuildResultStore):
             StormBuild.compiler == compiler,
             ]
         if revision is not None:
-            expr.append(StormBuild.revision == revision)
+            expr.append(Cast(StormBuild.revision, "TEXT") == revision)
         if checksum is not None:
-            expr.append(StormBuild.checksum == checksum)
+            expr.append(Cast(StormBuild.checksum, "TEXT") == checksum)
         result = self.store.find(StormBuild, *expr).order_by(Desc(StormBuild.upload_time))
         ret = result.first()
         if ret is None:
@@ -278,7 +295,7 @@ class StormCachingBuildFarm(BuildFarm):
         return distinct_builds(result.order_by(Desc(StormBuild.upload_time)))
 
     def get_tree_builds(self, tree):
-        result = self._get_store().find(StormBuild, StormBuild.tree == tree)
+        result = self._get_store().find(StormBuild, Cast(StormBuild.tree, "TEXT") == tree)
         return distinct_builds(result.order_by(Desc(StormBuild.upload_time)))
 
     def get_last_builds(self):
diff --git a/buildfarm/web/__init__.py b/buildfarm/web/__init__.py
index 77f1d1c..8c9aad6 100755
--- a/buildfarm/web/__init__.py
+++ b/buildfarm/web/__init__.py
@@ -118,7 +118,7 @@ def build_status_html(myself, build):
         "host": build.host,
         "tree": build.tree,
         "compiler": build.compiler,
-        "checksum": build.log_checksum()
+        "checksum": build.log_checksum(),
         }
     if build.revision:
         params["revision"] = build.revision
@@ -381,7 +381,7 @@ class ViewBuildPage(BuildFarmPage):
 
     def show_oldrevs(self, myself, tree, host, compiler):
         """show the available old revisions, if any"""
-        old_builds  = self.buildfarm.builds.get_old_builds(tree, host, compiler)
+        old_builds = self.buildfarm.builds.get_old_builds(tree, host, compiler)
 
         if not old_builds:
             return
@@ -392,10 +392,11 @@ class ViewBuildPage(BuildFarmPage):
         yield "<thead><tr><th>Revision</th><th>Status</th><th>Age</th></tr></thead>\n"
         yield "<tbody>\n"
 
-        for build in old_builds:
+        for old_build in old_builds:
             yield "<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n" % (
-                revision_link(myself, build.revision, tree),
-                build_status_html(myself, build), util.dhm_time(build.age))
+                revision_link(myself, old_build.revision, tree),
+                build_status_html(myself, old_build),
+                util.dhm_time(old_build.age))
 
         yield "</tbody></table>\n"
 


-- 
build.samba.org


More information about the samba-cvs mailing list