Index: trunk/tools/czartool/CzarDb.pm
===================================================================
--- trunk/tools/czartool/CzarDb.pm	(revision 28829)
+++ trunk/tools/czartool/CzarDb.pm	(revision 28830)
@@ -66,4 +66,39 @@
 
        $query->execute;
+}
+
+###########################################################################
+#
+# Gets revert status for this stage
+#
+###########################################################################
+sub getRevertStatus {
+    my ($self, $stage, $reverting) = @_;
+
+    my $query = $self->{_db}->prepare(<<SQL);
+    SELECT reverting 
+        FROM reverts
+         WHERE stage LIKE '$stage'; 
+SQL
+
+    $query->execute;
+    return scalar $query->fetchrow_array();
+}
+
+###########################################################################
+#
+# Updates revert status for this stage
+#
+###########################################################################
+sub updateRevertStatus {
+    my ($self, $stage, $reverting) = @_;
+
+    my $query = $self->{_db}->prepare(<<SQL);
+     UPDATE reverts 
+         SET reverting = $reverting 
+         WHERE stage LIKE '$stage';
+SQL
+
+    $query->execute;
 }
 
@@ -123,11 +158,11 @@
 ###########################################################################
 sub insertNewTimeData {
-    my ($self, $stage, $label, $pending, $processed, $faults, $reverting) = @_;
+    my ($self, $stage, $label, $pending, $processed, $faults) = @_;
 
     my $query = $self->{_db}->prepare(<<SQL);
     INSERT INTO $stage
-        (label, pending, processed, faults, reverting)
+        (label, pending, processed, faults)
         VALUES
-        ('$label', $pending, $processed, $faults, $reverting);
+        ('$label', $pending, $processed, $faults);
 SQL
 
@@ -301,5 +336,5 @@
 
     my $currentRevision = -1;
-    my $latestRevision = 7;
+    my $latestRevision = 8;
 
     while ($currentRevision != $latestRevision) {
@@ -315,4 +350,5 @@
         elsif ($currentRevision == 5) {$self->createRevision_6();}
         elsif ($currentRevision == 6) {$self->createRevision_7();}
+        elsif ($currentRevision == 7) {$self->createRevision_8();}
     }
 }
@@ -500,4 +536,49 @@
 #######################################################################################
 # 
+# Create revision 8 of the database 
+#
+#######################################################################################
+sub createRevision_8 {
+    my ($self) = @_;
+
+    print "* Creating revision 8 of '$self->{_dbName}'\n";
+
+    # drop reverting column from all stages tables
+    my $stage = undef;
+    foreach $stage (@stages) {
+
+        my $query = $self->{_db}->prepare(<<SQL);
+        ALTER TABLE $stage 
+            DROP COLUMN reverting;
+SQL
+
+    $query->execute;
+    }
+
+    # create new 'revert' table
+    my $query = $self->{_db}->prepare(<<SQL);
+    CREATE TABLE reverts (
+            stage VARCHAR(128), 
+            reverting TINYINT);
+SQL
+
+    $query->execute;
+
+    # insert stages into revert table
+    foreach $stage (@stages) {
+        my $query = $self->{_db}->prepare(<<SQL);
+        INSERT INTO reverts
+            (stage, reverting)
+            VALUES
+            ('$stage', 0);
+SQL
+       $query->execute;
+    }
+
+    $self->setRevision(8);
+}
+
+#######################################################################################
+# 
 # Sets current revision of ippToPsps database
 #
