summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorioguix2010-09-10 15:35:15 +0000
committerioguix2010-09-10 15:38:49 +0000
commitedd23bc3bbb85c9138ef4cab0d870bae7df8cc08 (patch)
tree6970be73b333c43ece32745c05d55019404c4079
parent89c15df330e589658a0f6d48bc3b57610a880421 (diff)
Support "ALTER SEQUENCE START ..." for 8.4+ and sequence cleanups
* 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
-rwxr-xr-xclasses/database/Postgres.php44
-rw-r--r--classes/database/Postgres80.php11
-rw-r--r--classes/database/Postgres83.php35
-rw-r--r--lang/english.php4
-rw-r--r--lang/recoded/english.php4
-rw-r--r--sequences.php89
-rw-r--r--tests/selenium/src/15-sequence.php59
7 files changed, 175 insertions, 71 deletions
diff --git a/classes/database/Postgres.php b/classes/database/Postgres.php
index d6ebff13..a0c566f1 100755
--- a/classes/database/Postgres.php
+++ b/classes/database/Postgres.php
@@ -2738,6 +2738,23 @@ class Postgres extends ADODB_base {
}
/**
+ * 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
* @return 0 success
@@ -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; }
diff --git a/classes/database/Postgres80.php b/classes/database/Postgres80.php
index 3abe31f6..860f56b6 100644
--- a/classes/database/Postgres80.php
+++ b/classes/database/Postgres80.php
@@ -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;
diff --git a/classes/database/Postgres83.php b/classes/database/Postgres83.php
index cc4df42c..35cf6752 100644
--- a/classes/database/Postgres83.php
+++ b/classes/database/Postgres83.php
@@ -272,6 +272,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()
* @param $name The new owner for the sequence
@@ -293,7 +326,7 @@ class Postgres83 extends Postgres {
function hasQueryKill() { return false; }
function hasDatabaseCollation() { return false; }
-
+ function hasAlterSequenceStart() { return false; }
}
?>
diff --git a/lang/english.php b/lang/english.php
index e7c7ac5a..a843ad49 100644
--- a/lang/english.php
+++ b/lang/english.php
@@ -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';
@@ -435,6 +436,7 @@
$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';
@@ -447,6 +449,8 @@
$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.';
diff --git a/lang/recoded/english.php b/lang/recoded/english.php
index f22cd9f1..ad60bdb9 100644
--- a/lang/recoded/english.php
+++ b/lang/recoded/english.php
@@ -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';
@@ -435,6 +436,7 @@
$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';
@@ -447,6 +449,8 @@
$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.';
diff --git a/sequences.php b/sequences.php
index 75ee4c48..d01127b1 100644
--- a/sequences.php
+++ b/sequences.php
@@ -124,25 +124,29 @@
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>";
@@ -152,6 +156,9 @@
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";
}
@@ -311,6 +318,20 @@
}
/**
+ * 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
*/
function doReset() {
@@ -396,12 +417,13 @@
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']) {
@@ -487,31 +509,35 @@
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";
@@ -548,6 +574,9 @@
case 'confirm_drop':
doDrop(true);
break;
+ case 'restart':
+ doRestart();
+ break;
case 'reset':
doReset();
break;
diff --git a/tests/selenium/src/15-sequence.php b/tests/selenium/src/15-sequence.php
index 918bcc30..731bd21f 100644
--- a/tests/selenium/src/15-sequence.php
+++ b/tests/selenium/src/15-sequence.php
@@ -33,12 +33,16 @@
$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');
@@ -46,13 +50,15 @@
$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');
@@ -67,28 +73,31 @@
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