Skip to content
Browse files

MDL-26116, added default value to tag_instance.tiuserid field

  • Loading branch information...
1 parent 17e0390 commit b1db1b6e8a8d6c7c7ae9681c9813fbe0d5a82494 @dcai dcai committed Jan 25, 2011
Showing with 36 additions and 5 deletions.
  1. +2 −2 lib/db/install.xml
  2. +33 −2 lib/db/upgrade.php
  3. +1 −1 version.php
View
4 lib/db/install.xml
@@ -1935,7 +1935,7 @@
<FIELD NAME="tagid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" PREVIOUS="id" NEXT="itemtype"/>
<FIELD NAME="itemtype" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" PREVIOUS="tagid" NEXT="itemid"/>
<FIELD NAME="itemid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" PREVIOUS="itemtype" NEXT="tiuserid"/>
- <FIELD NAME="tiuserid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" PREVIOUS="itemid" NEXT="ordering"/>
+ <FIELD NAME="tiuserid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="itemid" NEXT="ordering"/>
<FIELD NAME="ordering" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="Maintains the order of the tag instances of an item" PREVIOUS="tiuserid" NEXT="timemodified"/>
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" COMMENT="timemodified" PREVIOUS="ordering"/>
</FIELDS>
@@ -2748,4 +2748,4 @@
</KEYS>
</TABLE>
</TABLES>
-</XMLDB>
+</XMLDB>
View
35 lib/db/upgrade.php
@@ -239,7 +239,7 @@ function xmldb_main_upgrade($oldversion) {
// add field
$field = new xmldb_field('tiuserid');
if (!$dbman->field_exists($table, $field)) {
- $field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, 'itemid');
+ $field->set_attributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'itemid');
$dbman->add_field($table, $field);
}
// modify index
@@ -5899,7 +5899,7 @@ function xmldb_main_upgrade($oldversion) {
if (array_key_exists('tiuserid', $columns) && !empty($columns['tiuserid']->has_default)) {
// tiuserid should have no default
// Fixed in earlier upgrade code
- $field = new xmldb_field('tiuserid', XMLDB_TYPE_INTEGER, 10, XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, 'itemid');
+ $field = new xmldb_field('tiuserid', XMLDB_TYPE_INTEGER, 10, XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'itemid');
$index = new xmldb_index('itemtype-itemid-tagid-tiuserid', XMLDB_INDEX_UNIQUE, array('itemtype', 'itemid', 'tagid', 'tiuserid'));
if ($dbman->index_exists($table, $index)) {
$dbman->drop_index($table, $index);
@@ -5956,6 +5956,37 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2011011415);
}
+ if ($oldversion < 2011012400) {
+ $columns = $DB->get_columns('tag_instance');
+ $table = new xmldb_table('tag_instance');
+
+ // Drop and recreate index if tiuserid doesn't have default value
+ if (array_key_exists('tiuserid', $columns) && empty($columns['tiuserid']->has_default)) {
+ // Define index itemtype-itemid-tagid-tiuserid (unique) to be dropped form tag_instance
+ $index = new xmldb_index('itemtype-itemid-tagid-tiuserid', XMLDB_INDEX_UNIQUE, array('itemtype', 'itemid', 'tagid', 'tiuserid'));
+ // Conditionally launch drop index itemtype-itemid-tagid-tiuserid
+ if ($dbman->index_exists($table, $index)) {
+ $dbman->drop_index($table, $index);
+ }
+
+ // Changing the default of field tiuserid on table tag_instance to 0
+ $field = new xmldb_field('tiuserid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0', 'itemid');
+
+ // Launch change of default for field tiuserid
+ $dbman->change_field_default($table, $field);
+
+ $index = new xmldb_index('itemtype-itemid-tagid-tiuserid', XMLDB_INDEX_UNIQUE, array('itemtype', 'itemid', 'tagid', 'tiuserid'));
+
+ // Conditionally launch add index itemtype-itemid-tagid-tiuserid
+ if (!$dbman->index_exists($table, $index)) {
+ $dbman->add_index($table, $index);
+ }
+ }
+
+ // Main savepoint reached
+ upgrade_main_savepoint(true, 2011012400);
+ }
+
return true;
}
View
2 version.php
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
-$version = 2011011900; // YYYYMMDD = date of the last version bump
+$version = 2011012400; // YYYYMMDD = date of the last version bump
// XX = daily increments
$release = '2.0.1+ (Build: 20110119)'; // Human-friendly version name

0 comments on commit b1db1b6

Please sign in to comment.
Something went wrong with that request. Please try again.