Support "ALTER SEQUENCE START ..." for 8.4+ and sequence cleanups
authorioguix <ioguix@free.fr>
Fri, 10 Sep 2010 15:35:15 +0000 (17:35 +0200)
committerioguix <ioguix@free.fr>
Fri, 10 Sep 2010 15:38:49 +0000 (17:38 +0200)
  * add support for altering sequence start for 8.4+
  * add a link to restart the sequence on its property page for 8.4+
  * remove useless hasAlterSequenceProps() method
  * fix sequences selenium tests for 8.4+
  * add test for altering the start property in selenium test

classes/database/Postgres.php
classes/database/Postgres80.php
classes/database/Postgres83.php
lang/english.php
lang/recoded/english.php
sequences.php
tests/selenium/src/15-sequence.php

index d6ebff13fa74a8e98b1d85aa6f9de65190f94999..a0c566f13737899d53c638b33a343880827fc6d1 100755 (executable)
@@ -2737,6 +2737,23 @@ class Postgres extends ADODB_base {
                return $this->execute($sql);
        }
 
+       /**
+        * Restart a given sequence to its start value
+        * @param $sequence Sequence name
+        * @return 0 success
+        * @return -1 sequence not found
+        */
+       function restartSequence($sequence) {
+
+               $f_schema = $this->_schema;
+               $this->fieldClean($f_schema);
+               $this->fieldClean($sequence);
+
+               $sql = "ALTER SEQUENCE \"{$f_schema}\".\"{$sequence}\" RESTART;";
+
+               return $this->execute($sql);
+       }
+
        /**
         * Resets a given sequence to min value of sequence
         * @param $sequence Sequence name
@@ -2857,21 +2874,23 @@ class Postgres extends ADODB_base {
         * @param $increment The sequence incremental value
         * @param $minvalue The sequence minimum value
         * @param $maxvalue The sequence maximum value
-        * @param $startvalue The sequence current value
+        * @param $restartvalue The sequence current value
         * @param $cachevalue The sequence cache value
         * @param $cycledvalue Sequence can cycle ?
+        * @param $startvalue The sequence start value when issueing a restart
         * @return 0 success
         */
        function alterSequenceProps($seqrs, $increment, $minvalue, $maxvalue,
-                                                               $startvalue, $cachevalue, $cycledvalue) {
+                                                               $restartvalue, $cachevalue, $cycledvalue, $startvalue) {
 
                $sql = '';
                /* vars are cleaned in _alterSequence */
                if (!empty($increment) && ($increment != $seqrs->fields['increment_by'])) $sql .= " INCREMENT {$increment}";
                if (!empty($minvalue) && ($minvalue != $seqrs->fields['min_value'])) $sql .= " MINVALUE {$minvalue}";
                if (!empty($maxvalue) && ($maxvalue != $seqrs->fields['max_value'])) $sql .= " MAXVALUE {$maxvalue}";
-               if (!empty($startvalue) && ($startvalue != $seqrs->fields['last_value'])) $sql .= " RESTART {$startvalue}";
+               if (!empty($restartvalue) && ($restartvalue != $seqrs->fields['last_value'])) $sql .= " RESTART {$restartvalue}";
                if (!empty($cachevalue) && ($cachevalue != $seqrs->fields['cache_value'])) $sql .= " CACHE {$cachevalue}";
+               if (!empty($startvalue) && ($startvalue != $seqrs->fields['start_value'])) $sql .= " START {$startvalue}";
                // toggle cycle yes/no
                if (!is_null($cycledvalue))     $sql .= (!$cycledvalue ? ' NO ' : '') . " CYCLE";
                if ($sql != '') {
@@ -2894,9 +2913,10 @@ class Postgres extends ADODB_base {
         * @param $increment The increment
         * @param $minvalue The min value
         * @param $maxvalue The max value
-        * @param $startvalue The starting value
+        * @param $restartvalue The starting value
         * @param $cachevalue The cache value
         * @param $cycledvalue True if cycled, false otherwise
+        * @param $startvalue The sequence start value when issueing a restart
         * @return 0 success
         * @return -3 rename error
         * @return -4 comment error
@@ -2906,7 +2926,7 @@ class Postgres extends ADODB_base {
         */
        protected
        function _alterSequence($seqrs, $name, $comment, $owner, $schema, $increment,
-       $minvalue, $maxvalue, $startvalue, $cachevalue, $cycledvalue) {
+       $minvalue, $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue) {
 
                $this->fieldArrayClean($seqrs->fields);
 
@@ -2925,11 +2945,12 @@ class Postgres extends ADODB_base {
                $this->clean($increment);
                $this->clean($minvalue);
                $this->clean($maxvalue);
-               $this->clean($startvalue);
+               $this->clean($restartvalue);
                $this->clean($cachevalue);
                $this->clean($cycledvalue);
+               $this->clean($startvalue);
                $status = $this->alterSequenceProps($seqrs, $increment, $minvalue,
-                       $maxvalue, $startvalue, $cachevalue, $cycledvalue);
+                       $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue);
                if ($status != 0)
                        return -6;
 
@@ -2958,16 +2979,17 @@ class Postgres extends ADODB_base {
         * @param $increment The increment
         * @param $minvalue The min value
         * @param $maxvalue The max value
-        * @param $startvalue The starting value
+        * @param $restartvalue The starting value
         * @param $cachevalue The cache value
         * @param $cycledvalue True if cycled, false otherwise
+        * @param $startvalue The sequence start value when issueing a restart
         * @return 0 success
         * @return -1 transaction error
         * @return -2 get existing sequence error
         * @return $this->_alterSequence error code
         */
     function alterSequence($sequence, $name, $comment, $owner=null, $schema=null, $increment=null,
-       $minvalue=null, $maxvalue=null, $startvalue=null, $cachevalue=null, $cycledvalue=null) {
+       $minvalue=null, $maxvalue=null, $restartvalue=null, $cachevalue=null, $cycledvalue=null, $startvalue=null) {
 
                $this->fieldClean($sequence);
 
@@ -2983,7 +3005,7 @@ class Postgres extends ADODB_base {
                }
 
                $status = $this->_alterSequence($data, $name, $comment, $owner, $schema, $increment,
-                               $minvalue, $maxvalue, $startvalue, $cachevalue, $cycledvalue);
+                               $minvalue, $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue);
 
                if ($status != 0) {
                        $this->rollbackTransaction();
@@ -7966,8 +7988,8 @@ class Postgres extends ADODB_base {
        function hasAlterDatabaseRename() { return true; }
        function hasAlterSchema() { return true; }
        function hasAlterSchemaOwner() { return true; }
-       function hasAlterSequenceProps() { return true; }
        function hasAlterSequenceSchema() { return true; }
+       function hasAlterSequenceStart() { return true; }
        function hasAlterTableSchema() { return true; }
        function hasAutovacuum() { return true; }
        function hasCreateTableLike() { return true; }
index 3abe31f680a53e5fbf768af3513d27243e9a1be3..860f56b62b3c731c827f2f75b6e89a1bfe3e816e 100644 (file)
@@ -215,18 +215,20 @@ class Postgres80 extends Postgres81 {
         * @param $increment The increment
         * @param $minvalue The min value
         * @param $maxvalue The max value
-        * @param $startvalue The starting value
+        * @param $restartvalue The starting value
         * @param $cachevalue The cache value
         * @param $cycledvalue True if cycled, false otherwise
+        * @param $startvalue The sequence start value when issueing a restart
         * @return 0 success
         * @return -3 rename error
         * @return -4 comment error
         * @return -5 owner error
         * @return -6 get sequence props error
+        * @return -7 schema error
         */
        protected
        function _alterSequence($seqrs, $name, $comment, $owner, $schema, $increment,
-       $minvalue, $maxvalue, $startvalue, $cachevalue, $cycledvalue) {
+       $minvalue, $maxvalue, $restartvalue, $cachevalue, $cycledvalue, $startvalue) {
 
                /* $schema not supported in pg80- */
                $this->fieldArrayClean($seqrs->fields);
@@ -246,11 +248,12 @@ class Postgres80 extends Postgres81 {
                $this->clean($increment);
                $this->clean($minvalue);
                $this->clean($maxvalue);
-               $this->clean($startvalue);
+               $this->clean($restartvalue);
                $this->clean($cachevalue);
                $this->clean($cycledvalue);
+               $this->clean($startvalue);
                $status = $this->alterSequenceProps($seqrs, $increment, $minvalue,
-                       $maxvalue, $startvalue, $cachevalue, $cycledvalue);
+                       $maxvalue, $restartvalue, $cachevalue, $cycledvalue, null);
                if ($status != 0)
                        return -6;
 
index cc4df42cae33a3b13fc99a47c6bbac8fa515a396..35cf67526a448bc154b486326c2466f72f221b3d 100644 (file)
@@ -271,6 +271,39 @@ class Postgres83 extends Postgres {
        
        // Sequence functions
        
+       /**
+        * Alter a sequence's properties
+        * @param $seqrs The sequence RecordSet returned by getSequence()
+        * @param $increment The sequence incremental value
+        * @param $minvalue The sequence minimum value
+        * @param $maxvalue The sequence maximum value
+        * @param $restartvalue The sequence current value
+        * @param $cachevalue The sequence cache value
+        * @param $cycledvalue Sequence can cycle ?
+        * @param $startvalue The sequence start value when issueing a restart (ignored)
+        * @return 0 success
+        */
+       function alterSequenceProps($seqrs, $increment, $minvalue, $maxvalue,
+                                                               $restartvalue, $cachevalue, $cycledvalue, $startvalue) {
+
+               $sql = '';
+               /* vars are cleaned in _alterSequence */
+               if (!empty($increment) && ($increment != $seqrs->fields['increment_by'])) $sql .= " INCREMENT {$increment}";
+               if (!empty($minvalue) && ($minvalue != $seqrs->fields['min_value'])) $sql .= " MINVALUE {$minvalue}";
+               if (!empty($maxvalue) && ($maxvalue != $seqrs->fields['max_value'])) $sql .= " MAXVALUE {$maxvalue}";
+               if (!empty($restartvalue) && ($restartvalue != $seqrs->fields['last_value'])) $sql .= " RESTART {$restartvalue}";
+               if (!empty($cachevalue) && ($cachevalue != $seqrs->fields['cache_value'])) $sql .= " CACHE {$cachevalue}";
+               // toggle cycle yes/no
+               if (!is_null($cycledvalue))     $sql .= (!$cycledvalue ? ' NO ' : '') . " CYCLE";
+               if ($sql != '') {
+                       $f_schema = $this->_schema;
+                       $this->fieldClean($f_schema);
+                       $sql = "ALTER SEQUENCE \"{$f_schema}\".\"{$seqrs->fields['seqname']}\" {$sql}";
+                       return $this->execute($sql);
+               }
+               return 0;
+       }
+
        /**
         * Alter a sequence's owner
         * @param $seqrs The sequence RecordSet returned by getSequence()
@@ -293,7 +326,7 @@ class Postgres83 extends Postgres {
 
        function hasQueryKill() { return false; }
        function hasDatabaseCollation() { return false; }
-
+       function hasAlterSequenceStart() { return false; }
 }
 
 ?>
index e7c7ac5a72a7625154c78f17e7ecbb66373953d2..a843ad493314c356d6c50ad7503ea0b37e4dab1d 100644 (file)
@@ -66,6 +66,7 @@
        $lang['strac'] = 'Enable AutoComplete';
        $lang['strsave'] = 'Save';
        $lang['strreset'] = 'Reset';
+       $lang['strrestart'] = 'Restart';
        $lang['strinsert'] = 'Insert';
        $lang['strselect'] = 'Select';
        $lang['strdelete'] = 'Delete';
        $lang['strlastvalue'] = 'Last value';
        $lang['strincrementby'] = 'Increment by';       
        $lang['strstartvalue'] = 'Start value';
+       $lang['strrestartvalue'] = 'Restart value';
        $lang['strmaxvalue'] = 'Max value';
        $lang['strminvalue'] = 'Min value';
        $lang['strcachevalue'] = 'Cache value';
        $lang['strconfdropsequence'] = 'Are you sure you want to drop sequence "%s"?';
        $lang['strsequencedropped'] = 'Sequence dropped.';
        $lang['strsequencedroppedbad'] = 'Sequence drop failed.';
+       $lang['strsequencerestart'] = 'Sequence restarted.';
+       $lang['strsequencerestartbad'] = 'Sequence restart failed.';
        $lang['strsequencereset'] = 'Sequence reset.';
        $lang['strsequenceresetbad'] = 'Sequence reset failed.';
        $lang['strsequencealtered'] = 'Sequence altered.';
index f22cd9f11af5885901ba16f65832de3d7f958a15..ad60bdb96cce1c12bdd75d3feb8aa1cd2c6dc928 100644 (file)
@@ -66,6 +66,7 @@
        $lang['strac'] = 'Enable AutoComplete';
        $lang['strsave'] = 'Save';
        $lang['strreset'] = 'Reset';
+       $lang['strrestart'] = 'Restart';
        $lang['strinsert'] = 'Insert';
        $lang['strselect'] = 'Select';
        $lang['strdelete'] = 'Delete';
        $lang['strlastvalue'] = 'Last value';
        $lang['strincrementby'] = 'Increment by';       
        $lang['strstartvalue'] = 'Start value';
+       $lang['strrestartvalue'] = 'Restart value';
        $lang['strmaxvalue'] = 'Max value';
        $lang['strminvalue'] = 'Min value';
        $lang['strcachevalue'] = 'Cache value';
        $lang['strconfdropsequence'] = 'Are you sure you want to drop sequence &quot;%s&quot;?';
        $lang['strsequencedropped'] = 'Sequence dropped.';
        $lang['strsequencedroppedbad'] = 'Sequence drop failed.';
+       $lang['strsequencerestart'] = 'Sequence restarted.';
+       $lang['strsequencerestartbad'] = 'Sequence restart failed.';
        $lang['strsequencereset'] = 'Sequence reset.';
        $lang['strsequenceresetbad'] = 'Sequence reset failed.';
        $lang['strsequencealtered'] = 'Sequence altered.';
index 75ee4c48ba4cd05a1710add779b230082b8f07a0..d01127b12e57eb02e414479efba4ef94f00de779 100644 (file)
                                echo "<p class=\"comment\">", $misc->printVal($sequence->fields['seqcomment']), "</p>\n";
 
                        echo "<table border=\"0\">";
-                       echo "<tr><th class=\"data\">{$lang['strname']}</th><th class=\"data\">{$lang['strlastvalue']}</th>";
-                       echo "<th class=\"data\">{$lang['strincrementby']}</th><th class=\"data\">{$lang['strmaxvalue']}</th>";
-                       echo "<th class=\"data\">{$lang['strminvalue']}</th><th class=\"data\">{$lang['strcachevalue']}</th>";
-                       // PostgreSQL 7.0 and below don't have logcount
-                       if (isset($sequence->fields['log_cnt'])) {
-                               echo "<th class=\"data\">{$lang['strlogcount']}</th>";
+                       echo "<tr><th class=\"data\">{$lang['strname']}</th>";
+                       if ($data->hasAlterSequenceStart()) {
+                               echo "<th class=\"data\">{$lang['strstartvalue']}</th>";
                        }
-                       echo "<th class=\"data\">{$lang['strcancycle']}</th><th class=\"data\">{$lang['striscalled']}</th></tr>";
+                       echo "<th class=\"data\">{$lang['strlastvalue']}</th>";
+                       echo "<th class=\"data\">{$lang['strincrementby']}</th>";
+                       echo "<th class=\"data\">{$lang['strmaxvalue']}</th>";
+                       echo "<th class=\"data\">{$lang['strminvalue']}</th>";
+                       echo "<th class=\"data\">{$lang['strcachevalue']}</th>";
+                       echo "<th class=\"data\">{$lang['strlogcount']}</th>";
+                       echo "<th class=\"data\">{$lang['strcancycle']}</th>";
+                       echo "<th class=\"data\">{$lang['striscalled']}</th></tr>";
                        echo "<tr>";
                        echo "<td class=\"data1\">", $misc->printVal($sequence->fields['seqname']), "</td>";
+                       if ($data->hasAlterSequenceStart()) {
+                               echo "<td class=\"data1\">", $misc->printVal($sequence->fields['start_value']), "</td>";
+                       }
                        echo "<td class=\"data1\">", $misc->printVal($sequence->fields['last_value']), "</td>";
                        echo "<td class=\"data1\">", $misc->printVal($sequence->fields['increment_by']), "</td>";
                        echo "<td class=\"data1\">", $misc->printVal($sequence->fields['max_value']), "</td>";
                        echo "<td class=\"data1\">", $misc->printVal($sequence->fields['min_value']), "</td>";
                        echo "<td class=\"data1\">", $misc->printVal($sequence->fields['cache_value']), "</td>";
-                       // PostgreSQL 7.0 and below don't have logcount
-                       if (isset($sequence->fields['log_cnt'])) {
-                               echo "<td class=\"data1\">", $misc->printVal($sequence->fields['log_cnt']), "</td>";
-                       }
+                       echo "<td class=\"data1\">", $misc->printVal($sequence->fields['log_cnt']), "</td>";
                        echo "<td class=\"data1\">", ($sequence->fields['is_cycled'] ? $lang['stryes'] : $lang['strno']), "</td>";
                        echo "<td class=\"data1\">", ($sequence->fields['is_called'] ? $lang['stryes'] : $lang['strno']), "</td>";
                        echo "</tr>";
                        echo "\t<li><a href=\"sequences.php?action=confirm_alter&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['stralter']}</a></li>\n";
                        echo "\t<li><a href=\"sequences.php?action=confirm_setval&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strsetval']}</a></li>\n";
                        echo "\t<li><a href=\"sequences.php?action=nextval&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strnextval']}</a></li>\n";
+                       if ($data->hasAlterSequenceStart()) {
+                               echo "\t<li><a href=\"sequences.php?action=restart&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strrestart']}</a></li>\n";
+                       }
                        echo "\t<li><a href=\"sequences.php?action=reset&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strreset']}</a></li>\n";
                        echo "\t<li><a href=\"sequences.php?{$misc->href}\">{$lang['strshowallsequences']}</a></li>\n</ul>\n";
                }
                }
        }
 
+       /**
+        * Restarts a sequence
+        */
+       function doRestart() {
+               global $data;
+               global $lang;
+
+               $status = $data->restartSequence($_REQUEST['sequence']);
+               if ($status == 0)
+                       doProperties($lang['strsequencerestart']);
+               else
+                       doProperties($lang['strsequencerestartbad']);
+       }
+
        /**
         * Resets a sequence
         */
                if (!isset($_POST['formMinValue'])) $_POST['formMinValue'] = null;
                if (!isset($_POST['formMaxValue'])) $_POST['formMaxValue'] = null;
                if (!isset($_POST['formStartValue'])) $_POST['formStartValue'] = null;
+               if (!isset($_POST['formRestartValue'])) $_POST['formRestartValue'] = null;
                if (!isset($_POST['formCacheValue'])) $_POST['formCacheValue'] = null;
                if (!isset($_POST['formCycledValue'])) $_POST['formCycledValue'] = null;
 
                $status = $data->alterSequence($_POST['sequence'], $_POST['name'], $_POST['comment'], $_POST['owner'],
                        $_POST['newschema'], $_POST['formIncrement'], $_POST['formMinValue'], $_POST['formMaxValue'],
-                       $_POST['formStartValue'], $_POST['formCacheValue'], isset($_POST['formCycledValue']));
+                       $_POST['formRestartValue'], $_POST['formCacheValue'], isset($_POST['formCycledValue']), $_POST['formStartValue']);
 
                if ($status == 0) {
                        if ($_POST['sequence'] != $_POST['name']) {
                        echo "<textarea rows=\"3\" cols=\"32\" name=\"comment\">",
                                htmlspecialchars($_POST['comment']), "</textarea></td></tr>\n";
 
-                       if ($data->hasAlterSequenceProps()) {
+                       if ($data->hasAlterSequenceStart()) {
                                echo "<tr><th class=\"data left\">{$lang['strstartvalue']}</th>\n";
                                echo "<td class=\"data1\"><input name=\"formStartValue\" size=\"5\" value=\"",
-                                       htmlspecialchars($sequence->fields['last_value']), "\" /></td></tr>\n";
+                                       htmlspecialchars($sequence->fields['start_value']), "\" /></td></tr>\n";
+                       }
 
-                               echo "<tr><th class=\"data left\">{$lang['strincrementby']}</th>\n";
-                               echo "<td class=\"data1\"><input name=\"formIncrement\" size=\"5\" value=\"",
-                                       htmlspecialchars($sequence->fields['increment_by']), "\" /> </td></tr>\n";
+                       echo "<tr><th class=\"data left\">{$lang['strrestartvalue']}</th>\n";
+                       echo "<td class=\"data1\"><input name=\"formRestartValue\" size=\"5\" value=\"",
+                               htmlspecialchars($sequence->fields['last_value']), "\" /></td></tr>\n";
 
-                               echo "<tr><th class=\"data left\">{$lang['strmaxvalue']}</th>\n";
-                               echo "<td class=\"data1\"><input name=\"formMaxValue\" size=\"5\" value=\"",
-                                       htmlspecialchars($sequence->fields['max_value']), "\" /></td></tr>\n";
+                       echo "<tr><th class=\"data left\">{$lang['strincrementby']}</th>\n";
+                       echo "<td class=\"data1\"><input name=\"formIncrement\" size=\"5\" value=\"",
+                               htmlspecialchars($sequence->fields['increment_by']), "\" /> </td></tr>\n";
 
-                               echo "<tr><th class=\"data left\">{$lang['strminvalue']}</th>\n";
-                               echo "<td class=\"data1\"><input name=\"formMinValue\" size=\"5\" value=\"",
-                                       htmlspecialchars($sequence->fields['min_value']), "\" /></td></tr>\n";
+                       echo "<tr><th class=\"data left\">{$lang['strmaxvalue']}</th>\n";
+                       echo "<td class=\"data1\"><input name=\"formMaxValue\" size=\"5\" value=\"",
+                               htmlspecialchars($sequence->fields['max_value']), "\" /></td></tr>\n";
 
-                               echo "<tr><th class=\"data left\">{$lang['strcachevalue']}</th>\n";
-                               echo "<td class=\"data1\"><input name=\"formCacheValue\" size=\"5\" value=\"",
-                                       htmlspecialchars($sequence->fields['cache_value']), "\" /></td></tr>\n";
+                       echo "<tr><th class=\"data left\">{$lang['strminvalue']}</th>\n";
+                       echo "<td class=\"data1\"><input name=\"formMinValue\" size=\"5\" value=\"",
+                               htmlspecialchars($sequence->fields['min_value']), "\" /></td></tr>\n";
 
-                               echo "<tr><th class=\"data left\"><label for=\"formCycledValue\">{$lang['strcancycle']}</label></th>\n";
-                               echo "<td class=\"data1\"><input type=\"checkbox\" id=\"formCycledValue\" name=\"formCycledValue\" ",
-                                       ( isset($_POST['formCycledValue']) ? ' checked="checked"' : ''), " /></td></tr>\n";
-                       }
+                       echo "<tr><th class=\"data left\">{$lang['strcachevalue']}</th>\n";
+                       echo "<td class=\"data1\"><input name=\"formCacheValue\" size=\"5\" value=\"",
+                               htmlspecialchars($sequence->fields['cache_value']), "\" /></td></tr>\n";
+
+                       echo "<tr><th class=\"data left\"><label for=\"formCycledValue\">{$lang['strcancycle']}</label></th>\n";
+                       echo "<td class=\"data1\"><input type=\"checkbox\" id=\"formCycledValue\" name=\"formCycledValue\" ",
+                               ( isset($_POST['formCycledValue']) ? ' checked="checked"' : ''), " /></td></tr>\n";
 
                        echo "</table>\n";
                        echo "<p><input type=\"hidden\" name=\"action\" value=\"alter\" />\n";
                case 'confirm_drop':
                        doDrop(true);
                        break;
+               case 'restart':
+                       doRestart();
+                       break;
                case 'reset':
                        doReset();
                        break;
index 918bcc30e99a34bc78178c702f0357d5aa89b55c..731bd21f7d2c58d664b349b273078fd5e9b99961 100644 (file)
        $t->assertText("//p[@class='message']", $lang['strsequencecreated']);
        $t->clickAndWait('link=testcase_seq');
        $t->assertText("//tr/th[text()='{$lang['strname']}' and @class='data']/../../tr/td[1]", 'testcase_seq');
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '1');
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[3]", '2');
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[4]", '100');
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[5]", '1');
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[6]", '1');
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[8]", $lang['stryes']);
+       $i=2;
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1');
+       if ($data->hasAlterSequenceStart())
+               $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1');
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '2');
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '100');
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1');
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i++ ."]", '1');
+       $i++; // we ignore log_count
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[". $i ."]", $lang['stryes']);
 
 /** 2 **/
        $t->addComment('2. increment, reset sequence and set value');
        $t->type('nextvalue', '2');
        $t->clickAndWait('setval');
        $t->assertText("//p[@class='message']", $lang['strsequencesetval']);
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '2');
+       if ($data->hasAlterSequenceStart()) $i = 3;
+       else $i = 2;
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[$i]", '2');
        $t->clickAndWait("link={$lang['strnextval']}");
        $t->assertText("//p[@class='message']", $lang['strsequencenextval']);
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '4');
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[$i]", '4');
        $t->clickAndWait("link={$lang['strreset']}");
        $t->assertText("//p[@class='message']", $lang['strsequencereset']);
-       $t->assertText("//tr/td[text()='testcase_seq']/../td[2]", '1');
+       $t->assertText("//tr/td[text()='testcase_seq']/../td[$i]", '1');
 
 /** 3 **/
        $t->addComment('3. alter sequence');
        if ($data->hasAlterSequenceSchema())
                $t->select('newschema', 'label=test_schema');
        $t->type('comment', 'test comment on testcase_renamed_seq');
-       if ($data->hasAlterSequenceProps()) {
-               $t->type('formStartValue', 20);
-               $t->type('formIncrement', 3);
-               $t->type('formMaxValue', 104);
-               $t->type('formMinValue', 5);
-               $t->type('formCacheValue', 6);
-               $t->uncheck('formCycledValue');
-       }
+       if ($data->hasAlterSequenceStart())
+               $t->type('formStartValue', 10);
+       $t->type('formRestartValue', 20);
+       $t->type('formIncrement', 3);
+       $t->type('formMaxValue', 104);
+       $t->type('formMinValue', 5);
+       $t->type('formCacheValue', 6);
+       $t->uncheck('formCycledValue');
        $t->clickAndWait('alter');
        $t->assertText("//p[@class='message']", $lang['strsequencealtered']);
        if ($data->hasAlterSequenceSchema())
                $t->assertText("//div[@class='trail']/descendant::a[@title='{$lang['strschema']}']/span[@class='label']", 'test_schema');
        $t->assertText("//p[@class='comment']", 'test comment on testcase_renamed_seq');
        $t->assertText("//tr/th[text()='{$lang['strname']}' and @class='data']/../../tr/td[1]", 'testcase_renamed_seq');
-       if ($data->hasAlterSequenceProps()) {
-               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[2]", '20');
-               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[3]", '3');
-               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[4]", '104');
-               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[5]", '5');
-               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[6]", '6');
-               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[8]", $lang['strno']);
-       }
+       $i = 2;
+       if ($data->hasAlterSequenceStart())
+               $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '10');
+       $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '20');
+       $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '3');
+       $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '104');
+       $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '5');
+       $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", '6');
+       $i++; // we ignore log_count
+       $t->assertText("//tr/td[text()='testcase_renamed_seq']/../td[". $i++ ."]", $lang['strno']);
+
        if ($data->hasAlterSequenceSchema())
                $t->clickAndWait("//div[@class='trail']/descendant::a[@title='{$lang['strschema']}']/span[@class='label' and text()='test_schema']");
        else