Index: trunk/src/VBox/ValidationKit/testmanager/db/TestManagerDatabaseComments.pgsql
===================================================================
--- trunk/src/VBox/ValidationKit/testmanager/db/TestManagerDatabaseComments.pgsql	(revision 69778)
+++ trunk/src/VBox/ValidationKit/testmanager/db/TestManagerDatabaseComments.pgsql	(revision 69781)
@@ -29,5 +29,4 @@
   'When this was logged.';
 
-
 COMMENT ON COLUMN SystemLog.sEvent IS
   'The event type.
@@ -35,8 +34,6 @@
 some enum type everytime we introduce a new event type.';
 
-
 COMMENT ON COLUMN SystemLog.sLogText IS
   'The log text.';
-
 
 COMMENT ON TABLE Users IS
@@ -54,38 +51,29 @@
          current_timestamp.';
 
-
 COMMENT ON COLUMN Users.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN Users.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN Users.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN Users.sUsername IS
   'User name.';
 
-
 COMMENT ON COLUMN Users.sEmail IS
   'The email address of the user.';
 
-
 COMMENT ON COLUMN Users.sFullName IS
   'The full name.';
 
-
 COMMENT ON COLUMN Users.sLoginName IS
   'The login name used by apache.';
 
-
 COMMENT ON COLUMN Users.fReadOnly IS
   'Read access only.';
 
-
 COMMENT ON TABLE GlobalResources IS
   'Global resource configuration.
@@ -97,30 +85,23 @@
          current_timestamp.';
 
-
 COMMENT ON COLUMN GlobalResources.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN GlobalResources.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN GlobalResources.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN GlobalResources.sName IS
   'The name of the resource.';
 
-
 COMMENT ON COLUMN GlobalResources.sDescription IS
   'Optional resource description.';
 
-
 COMMENT ON COLUMN GlobalResources.fEnabled IS
   'Indicates whether this resource is currently enabled (online).';
 
-
 COMMENT ON TABLE BuildSources IS
   'Build sources.
@@ -136,25 +117,19 @@
       join/whatever when searching for builds?';
 
-
 COMMENT ON COLUMN BuildSources.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN BuildSources.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN BuildSources.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN BuildSources.sName IS
   'The name of the build source.';
 
-
 COMMENT ON COLUMN BuildSources.sDescription IS
   'Description.';
-
 
 COMMENT ON COLUMN BuildSources.sProduct IS
@@ -162,14 +137,11 @@
 ASSUME that it is okay to limit a build source to a single product.';
 
-
 COMMENT ON COLUMN BuildSources.sBranch IS
   'Which branch.
 ASSUME that it is okay to limit a build source to a branch.';
 
-
 COMMENT ON COLUMN BuildSources.asTypes IS
   'Build types to include, all matches if NULL.
 @todo Weighting the types would be nice in a later version.';
-
 
 COMMENT ON COLUMN BuildSources.asOsArches IS
@@ -180,17 +152,13 @@
 @remarks See marks on ''os-agnostic'' and ''noarch'' in BuildCategories.';
 
-
 COMMENT ON COLUMN BuildSources.iFirstRevision IS
   'The first subversion tree revision to match, no lower limit if NULL.';
 
-
 COMMENT ON COLUMN BuildSources.iLastRevision IS
   'The last subversion tree revision to match, no upper limit if NULL.';
 
-
 COMMENT ON COLUMN BuildSources.cSecMaxAge IS
   'The maximum age of the builds in seconds, unlimited if NULL.';
 
-
 COMMENT ON TABLE TestCases IS
   'Test case configuration.
@@ -200,33 +168,25 @@
          current_timestamp.';
 
-
 COMMENT ON COLUMN TestCases.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestCases.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestCases.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestCases.sName IS
   'The name of the test case.';
 
-
 COMMENT ON COLUMN TestCases.sDescription IS
   'Optional test case description.';
 
-
 COMMENT ON COLUMN TestCases.fEnabled IS
   'Indicates whether this test case is currently enabled.';
 
-
 COMMENT ON COLUMN TestCases.cSecTimeout IS
   'Default test case timeout given in seconds.';
-
 
 COMMENT ON COLUMN TestCases.sTestBoxReqExpr IS
@@ -236,5 +196,4 @@
 If NULL everything matches.';
 
-
 COMMENT ON COLUMN TestCases.sBuildReqExpr IS
   'Default build requirement expression (python boolean expression).
@@ -243,5 +202,4 @@
 If NULL everything matches.';
 
-
 COMMENT ON COLUMN TestCases.sBaseCmd IS
   'The base command.
@@ -249,5 +207,4 @@
 (IFS). References to @BUILD_BINARIES@ will be replaced WITH the content
 of the Builds(sBinaries) field.';
-
 
 COMMENT ON COLUMN TestCases.sTestSuiteZips IS
@@ -261,5 +218,4 @@
 @DOWNLOAD_BASE_URL@ prefix can be used to refer to this area.';
 
-
 COMMENT ON TABLE TestCaseArgs IS
   'Test case argument list variations.
@@ -307,17 +263,13 @@
          current_timestamp.';
 
-
 COMMENT ON COLUMN TestCaseArgs.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestCaseArgs.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestCaseArgs.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestCaseArgs.sArgs IS
@@ -327,9 +279,7 @@
 the content of the Builds(sBinaries) field.';
 
-
 COMMENT ON COLUMN TestCaseArgs.cSecTimeout IS
   'Optional test case timeout given in seconds.
 If NULL, the TestCases.cSecTimeout field is used instead.';
-
 
 COMMENT ON COLUMN TestCaseArgs.sTestBoxReqExpr IS
@@ -338,5 +288,4 @@
 as in that table.  This is checked after first checking the requirements
 in the TestCases.sTestBoxReqExpr field.';
-
 
 COMMENT ON COLUMN TestCaseArgs.sBuildReqExpr IS
@@ -347,12 +296,9 @@
 TestCases.sBuildReqExpr field.';
 
-
 COMMENT ON COLUMN TestCaseArgs.cGangMembers IS
   'Number of testboxes required (gang scheduling).';
 
-
 COMMENT ON COLUMN TestCaseArgs.sSubName IS
   'Optional variation sub-name.';
-
 
 COMMENT ON INDEX TestCaseArgsLookupIdx IS
@@ -363,5 +309,4 @@
 reconfigured with more/less permutations.';
 
-
 COMMENT ON TABLE TestCaseDeps IS
   'Test case dependencies (N:M)
@@ -380,17 +325,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestCaseDeps.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestCaseDeps.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestCaseDeps.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON TABLE TestCaseGlobalRsrcDeps IS
@@ -402,17 +343,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestCaseGlobalRsrcDeps.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestCaseGlobalRsrcDeps.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestCaseGlobalRsrcDeps.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON TABLE TestGroups IS
@@ -431,26 +368,20 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestGroups.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestGroups.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestGroups.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestGroups.sName IS
   'The name of the scheduling group.';
 
-
 COMMENT ON COLUMN TestGroups.sDescription IS
   'Optional group description.';
 
-
 COMMENT ON TABLE TestGroupMembers IS
   'The N:M relationship between test case configurations and test groups.
@@ -461,17 +392,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestGroupMembers.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestGroupMembers.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestGroupMembers.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestGroupMembers.iSchedPriority IS
@@ -481,5 +408,4 @@
 @todo Not sure we want to keep this...';
 
-
 COMMENT ON TABLE SchedGroups IS
   'Scheduling group (aka. testbox partitioning) configuration.
@@ -505,12 +431,9 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN SchedGroups.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN SchedGroups.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
-
 
 COMMENT ON COLUMN SchedGroups.uidAuthor IS
@@ -519,16 +442,12 @@
 @note This is NULL for the default group.';
 
-
 COMMENT ON COLUMN SchedGroups.sName IS
   'The name of the scheduling group.';
 
-
 COMMENT ON COLUMN SchedGroups.sDescription IS
   'Optional group description.';
 
-
 COMMENT ON COLUMN SchedGroups.fEnabled IS
   'Indicates whether this group is currently enabled.';
-
 
 COMMENT ON COLUMN SchedGroups.enmScheduler IS
@@ -537,9 +456,7 @@
 effort stuff provided by the initial implementation.';
 
-
 COMMENT ON COLUMN SchedGroups.sComment IS
   'The Validation Kit build source (@VALIDATIONKIT_ZIP@).
 Non-unique foreign key: BuildSources(idBuildSrc)';
-
 
 COMMENT ON TABLE SchedGroupMembers IS
@@ -559,17 +476,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN SchedGroupMembers.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN SchedGroupMembers.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN SchedGroupMembers.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN SchedGroupMembers.iSchedPriority IS
@@ -577,5 +490,4 @@
 Higher number causes the test case to be run more frequently.
 @sa TestGroupMembers.iSchedPriority, TestBoxesInSchedGroups.iSchedPriority';
-
 
 COMMENT ON COLUMN SchedGroupMembers.bmHourlySchedule IS
@@ -584,5 +496,4 @@
 Each bit in the bitstring represents one hour, with bit 0 indicating the
 midnight hour on a monday.';
-
 
 COMMENT ON TABLE TestBoxStrTab IS
@@ -617,20 +528,15 @@
      Average row cost strings:       5709824 / 1292 =      4420 bytes/row';
 
-
 COMMENT ON COLUMN TestBoxStrTab.sValue IS
   'The string value.';
 
-
 COMMENT ON COLUMN TestBoxStrTab.tsCreated IS
   'Creation time stamp.';
 
-
 COMMENT ON TYPE TestBoxCmd_T IS
   'Testbox commands.';
 
-
 COMMENT ON TYPE LomKind_T IS
   'The kind of lights out management on a testbox.';
-
 
 COMMENT ON TABLE TestBoxes IS
@@ -652,18 +558,14 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestBoxes.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestBoxes.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestBoxes.uidAuthor IS
   'The user id of the one who created/modified this entry.
 When modified automatically by the testbox, NULL is used.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestBoxes.uuidSystem IS
@@ -673,9 +575,7 @@
 establish its identity beyond doubt.';
 
-
 COMMENT ON COLUMN TestBoxes.sName IS
   'The testbox name.
 Usually similar to the DNS name.';
-
 
 COMMENT ON COLUMN TestBoxes.fEnabled IS
@@ -685,8 +585,6 @@
 alternative to deleting the testbox.';
 
-
 COMMENT ON COLUMN TestBoxes.enmLomKind IS
   'The kind of lights-out-management.';
-
 
 COMMENT ON COLUMN TestBoxes.lCpuRevision IS
@@ -695,36 +593,27 @@
   (EffFamily << 24) | (EffModel << 8) | Stepping.';
 
-
 COMMENT ON COLUMN TestBoxes.cCpus IS
   'Number of CPUs, CPU cores and CPU threads.';
 
-
 COMMENT ON COLUMN TestBoxes.fCpuHwVirt IS
   'Set if capable of hardware virtualization.';
 
-
 COMMENT ON COLUMN TestBoxes.fCpuNestedPaging IS
   'Set if capable of nested paging.';
 
-
 COMMENT ON COLUMN TestBoxes.fCpu64BitGuest IS
   'Set if CPU capable of 64-bit (VBox) guests.';
 
-
 COMMENT ON COLUMN TestBoxes.fChipsetIoMmu IS
   'Set if chipset with usable IOMMU (VT-d / AMD-Vi).';
 
-
 COMMENT ON COLUMN TestBoxes.fRawMode IS
   'Set if the test box does raw-mode tests.';
 
-
 COMMENT ON COLUMN TestBoxes.cMbMemory IS
   'The (approximate) memory size in megabytes (rounded down to nearest 4 MB).';
 
-
 COMMENT ON COLUMN TestBoxes.cMbScratch IS
   'The amount of scratch space in megabytes (rounded down to nearest 64 MB).';
-
 
 COMMENT ON COLUMN TestBoxes.iTestBoxScriptRev IS
@@ -732,19 +621,15 @@
 Probably good to have when scheduling upgrades as well for status purposes.';
 
-
 COMMENT ON COLUMN TestBoxes.iPythonHexVersion IS
   'The python sys.hexversion (layed out as of 2.7).
 Good to know which python versions we need to support.';
 
-
 COMMENT ON COLUMN TestBoxes.enmPendingCmd IS
   'Pending command.
 @note We put it here instead of in TestBoxStatuses to get history.';
 
-
 COMMENT ON INDEX TestBoxesUuidIdx IS
   'Nested paging requires hardware virtualization.';
 
-
 COMMENT ON TABLE TestBoxesInSchedGroups IS
   'N:M relationship between test boxes and scheduling groups.
@@ -757,17 +642,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestBoxesInSchedGroups.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestBoxesInSchedGroups.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestBoxesInSchedGroups.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestBoxesInSchedGroups.iSchedPriority IS
@@ -776,5 +657,4 @@
 @sa TestGroupMembers.iSchedPriority, SchedGroups.iSchedPriority';
 
-
 COMMENT ON TABLE FailureCategories IS
   'Failure categories.
@@ -787,17 +667,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN FailureCategories.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN FailureCategories.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN FailureCategories.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN FailureCategories.sShort IS
@@ -805,9 +681,7 @@
 For combo boxes and other selection lists.';
 
-
 COMMENT ON COLUMN FailureCategories.sFull IS
   'Full description
 For cursor-over-poppups for instance.';
-
 
 COMMENT ON TABLE FailureReasons IS
@@ -824,17 +698,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN FailureReasons.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN FailureReasons.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN FailureReasons.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN FailureReasons.sShort IS
@@ -842,17 +712,13 @@
 For combo boxes and other selection lists.';
 
-
 COMMENT ON COLUMN FailureReasons.sFull IS
   'Full failure description.';
 
-
 COMMENT ON COLUMN FailureReasons.iTicket IS
   'Ticket number in the primary bugtracker.';
 
-
 COMMENT ON COLUMN FailureReasons.asUrls IS
   'Other URLs to reports or discussions of the observed symptoms.';
 
-
 COMMENT ON TABLE TestResultFailures IS
   'This is for tracking/discussing test result failures.
@@ -866,21 +732,16 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN TestResultFailures.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN TestResultFailures.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN TestResultFailures.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN TestResultFailures.sComment IS
   'Optional comment.';
-
 
 COMMENT ON TABLE BuildBlacklist IS
@@ -908,17 +769,13 @@
       now, as it''s relatively easy to change this later one.';
 
-
 COMMENT ON COLUMN BuildBlacklist.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN BuildBlacklist.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
 
-
 COMMENT ON COLUMN BuildBlacklist.uidAuthor IS
   'The user id of the one who created/modified this entry.
 Non-unique foreign key: Users(uid)';
-
 
 COMMENT ON COLUMN BuildBlacklist.sProduct IS
@@ -926,13 +783,10 @@
 ASSUME that it is okay to limit a blacklisting to a single product.';
 
-
 COMMENT ON COLUMN BuildBlacklist.sBranch IS
   'Which branch.
 ASSUME that it is okay to limit a blacklisting to a branch.';
 
-
 COMMENT ON COLUMN BuildBlacklist.asTypes IS
   'Build types to include, all matches if NULL.';
-
 
 COMMENT ON COLUMN BuildBlacklist.asOsArches IS
@@ -943,12 +797,9 @@
 @remarks See marks on ''os-agnostic'' and ''noarch'' in BuildCategories.';
 
-
 COMMENT ON COLUMN BuildBlacklist.iFirstRevision IS
   'The first subversion tree revision to blacklist.';
 
-
 COMMENT ON COLUMN BuildBlacklist.iLastRevision IS
   'The last subversion tree revision to blacklist, no upper limit if NULL.';
-
 
 COMMENT ON TABLE BuildCategories IS
@@ -961,22 +812,17 @@
 Insert only table, no update, no delete.  History is not needed.';
 
-
 COMMENT ON COLUMN BuildCategories.sProduct IS
   'Product.
 The product name.  For instance ''VBox'' or ''VBoxTestSuite''.';
 
-
 COMMENT ON COLUMN BuildCategories.sRepository IS
   'The version control repository name.';
 
-
 COMMENT ON COLUMN BuildCategories.sBranch IS
   'The branch name (in the version control system).';
-
 
 COMMENT ON COLUMN BuildCategories.sType IS
   'The build type.
 See KBUILD_BLD_TYPES in kBuild for a list of standard build types.';
-
 
 COMMENT ON COLUMN BuildCategories.asOsArches IS
@@ -993,5 +839,4 @@
 @note    The array shall be sorted ascendingly to prevent unnecessary duplicates!';
 
-
 COMMENT ON TABLE Builds IS
   'The builds table contains builds from the tinderboxes and oaccasionally from
@@ -1016,17 +861,13 @@
          tsExpire = TIMESTAMP WITH TIME ZONE ''infinity''.';
 
-
 COMMENT ON COLUMN Builds.tsCreated IS
   'When this build was created or entered into the database.
 This remains unchanged';
 
-
 COMMENT ON COLUMN Builds.tsEffective IS
   'When this row starts taking effect (inclusive).';
 
-
 COMMENT ON COLUMN Builds.tsExpire IS
   'When this row stops being tsEffective (exclusive).';
-
 
 COMMENT ON COLUMN Builds.uidAuthor IS
@@ -1035,16 +876,12 @@
 @note This is NULL if added by a batch job / tinderbox.';
 
-
 COMMENT ON COLUMN Builds.iRevision IS
   'The subversion tree revision of the build.';
 
-
 COMMENT ON COLUMN Builds.sVersion IS
   'The product version number (suitable for RTStrVersionCompare).';
 
-
 COMMENT ON COLUMN Builds.sLogUrl IS
   'The link to the tinderbox log of this build.';
-
 
 COMMENT ON COLUMN Builds.sBinaries IS
@@ -1052,8 +889,6 @@
 The binaries have paths relative to the TESTBOX_PATH_BUILDS or full URLs.';
 
-
 COMMENT ON COLUMN Builds.fBinariesDeleted IS
   'Set when the binaries gets deleted by the build quota script.';
-
 
 COMMENT ON TABLE VcsRevisions IS
@@ -1073,16 +908,12 @@
       associate a commit to a branch.';
 
-
 COMMENT ON COLUMN VcsRevisions.sRepository IS
   'The version control tree name.';
 
-
 COMMENT ON COLUMN VcsRevisions.iRevision IS
   'The version control tree revision number.';
 
-
 COMMENT ON COLUMN VcsRevisions.tsCreated IS
   'When the revision was created (committed).';
-
 
 COMMENT ON COLUMN VcsRevisions.sAuthor IS
@@ -1090,8 +921,6 @@
 @note Not to be confused with uidAuthor and test manager users.';
 
-
 COMMENT ON COLUMN VcsRevisions.sMessage IS
   'The commit message.';
-
 
 COMMENT ON TABLE TestResultStrTab IS
@@ -1109,16 +938,12 @@
 @note Should use a stored procedure to query/insert a string.';
 
-
 COMMENT ON COLUMN TestResultStrTab.sValue IS
   'The string value.';
 
-
 COMMENT ON COLUMN TestResultStrTab.tsCreated IS
   'Creation time stamp.';
 
-
 COMMENT ON TYPE TestStatus_T IS
   'The status of a test (set / result).';
-
 
 COMMENT ON TABLE TestResults IS
@@ -1141,8 +966,6 @@
          test set.';
 
-
 COMMENT ON COLUMN TestResults.tsCreated IS
   'Creation time stamp.  This may also be the timestamp of when the test started.';
-
 
 COMMENT ON COLUMN TestResults.tsElapsed IS
@@ -1152,16 +975,12 @@
 @todo maybe use a nanosecond field here, check with what';
 
-
 COMMENT ON COLUMN TestResults.cErrors IS
   'The error count.';
 
-
 COMMENT ON COLUMN TestResults.enmStatus IS
   'The test status.';
 
-
 COMMENT ON COLUMN TestResults.iNestingDepth IS
   'Nesting depth.';
-
 
 COMMENT ON TABLE TestResultValues IS
@@ -1174,12 +993,9 @@
 This is an insert only table, no deletes, no updates.';
 
-
 COMMENT ON COLUMN TestResultValues.tsCreated IS
   'Creation time stamp.';
 
-
 COMMENT ON COLUMN TestResultValues.lValue IS
   'The value.';
-
 
 COMMENT ON COLUMN TestResultValues.iUnit IS
@@ -1188,5 +1004,4 @@
       with the other places we use unit (IPRT/testdriver/VMMDev).';
 
-
 COMMENT ON TABLE TestResultFiles IS
   'Test result files.
@@ -1201,8 +1016,6 @@
 This is an insert only table, no deletes, no updates.';
 
-
 COMMENT ON COLUMN TestResultFiles.tsCreated IS
   'Creation time stamp.';
-
 
 COMMENT ON INDEX TestResultFilesIdx IS
@@ -1213,5 +1026,4 @@
               ''text/xml''';
 
-
 COMMENT ON TABLE TestResultMsgs IS
   'Test result message.
@@ -1225,13 +1037,10 @@
 This is an insert only table, no deletes, no updates.';
 
-
 COMMENT ON COLUMN TestResultMsgs.tsCreated IS
   'Creation time stamp.';
 
-
 COMMENT ON COLUMN TestResultMsgs.enmLevel IS
   'The message level.';
 
-
 COMMENT ON TABLE TestSets IS
   'Test sets / Test case runs.
@@ -1242,8 +1051,6 @@
       finding something more appropriate.';
 
-
 COMMENT ON COLUMN TestSets.tsConfig IS
   'The test config timestamp, used when reading test config.';
-
 
 COMMENT ON COLUMN TestSets.tsCreated IS
@@ -1251,12 +1058,9 @@
 idGenTestBox is valid at this point.';
 
-
 COMMENT ON COLUMN TestSets.tsDone IS
   'When this test completed, i.e. testing stopped.  This should only be set once.';
 
-
 COMMENT ON COLUMN TestSets.enmStatus IS
   'The current status.';
-
 
 COMMENT ON COLUMN TestSets.sBaseFilename IS
@@ -1276,8 +1080,6 @@
          at some later point.';
 
-
 COMMENT ON COLUMN TestSets.iGangMemberNo IS
   'The gang member number number, 0 is the leader.';
-
 
 COMMENT ON INDEX TestSetsGangIdx IS
@@ -1286,13 +1088,10 @@
       gang members by WHERE idTestSetGangLeader = :id.';
 
-
 COMMENT ON INDEX TestSetsDoneCreatedBuildCatIdx IS
   'The TestSetsDoneCreatedBuildCatIdx is for testbox results, graph options and such.';
 
-
 COMMENT ON INDEX TestSetsGraphBoxIdx IS
   'For graphs.';
 
-
 COMMENT ON TYPE TestBoxState_T IS
   'TestBox state.
@@ -1300,10 +1099,8 @@
 @todo Consider drawing a state diagram for this.';
 
-
 COMMENT ON TABLE TestBoxStatuses IS
   'Testbox status table.
 
 History is not planned on this table.';
-
 
 COMMENT ON COLUMN TestBoxStatuses.tsUpdated IS
@@ -1315,8 +1112,6 @@
 scenario it won''t be updated until the gang is gathered or we time out.';
 
-
 COMMENT ON COLUMN TestBoxStatuses.enmState IS
   'The current state.';
-
 
 COMMENT ON COLUMN TestBoxStatuses.iWorkItem IS
@@ -1324,5 +1119,4 @@
 This is used to pick and prioritize between multiple scheduling groups.';
 
-
 COMMENT ON TABLE GlobalResourceStatuses IS
   'Global resource status, tracks which test set resources are allocated by.
@@ -1330,8 +1124,6 @@
 History is not planned on this table.';
 
-
 COMMENT ON COLUMN GlobalResourceStatuses.tsAllocated IS
   'When the allocation took place.';
-
 
 COMMENT ON TABLE SchedQueues IS
@@ -1364,13 +1156,10 @@
 History is not planned on this table.';
 
-
 COMMENT ON COLUMN SchedQueues.bmHourlySchedule IS
   'The scheduling time constraints (see SchedGroupMembers.bmHourlySchedule).';
-
 
 COMMENT ON COLUMN SchedQueues.tsConfig IS
   'When the queue entry was created and for which config is valid.
 This is the timestamp that should be used when reading config info.';
-
 
 COMMENT ON COLUMN SchedQueues.tsLastScheduled IS
@@ -1380,5 +1169,4 @@
 useful beyond introspection and non-unique foreign key hacking.';
 
-
 COMMENT ON COLUMN SchedQueues.cMissingGangMembers IS
   'The number of gang members still missing.
@@ -1390,3 +1178,2 @@
 to figure out whether to remain in ''gather-gang''::TestBoxState_T.';
 
-
Index: trunk/src/VBox/ValidationKit/testmanager/db/gen-sql-comments.py
===================================================================
--- trunk/src/VBox/ValidationKit/testmanager/db/gen-sql-comments.py	(revision 69778)
+++ trunk/src/VBox/ValidationKit/testmanager/db/gen-sql-comments.py	(revision 69781)
@@ -71,5 +71,5 @@
     def commitComment2(self, sSqlObj):
         if self.sComment is not None and sSqlObj is not None:
-            print("COMMENT ON %s IS\n  '%s';\n\n" % (sSqlObj, self.quoteSqlString(self.sComment.strip())));
+            print("COMMENT ON %s IS\n  '%s';\n" % (sSqlObj, self.quoteSqlString(self.sComment.strip())));
         self.resetComment();
         return True;
