TRUE, 'query' => 'Some of the following queries may appear to fail. This is not a problem.')); $ret[] = update_sql("ALTER TABLE {nodequeue_queue} ADD COLUMN link VARCHAR(40) DEFAULT '' NOT NULL"); $ret[] = update_sql("ALTER TABLE {nodequeue_queue} ADD COLUMN link_remove VARCHAR(40) DEFAULT '' NOT NULL"); $ret[] = update_sql("CREATE INDEX {nodequeue_roles}_qid_idx ON {nodequeue_roles} (qid)"); $ret[] = update_sql("CREATE INDEX {nodequeue_roles}_rid_idx ON {nodequeue_roles} (rid)"); $ret[] = update_sql("CREATE INDEX {nodequeue_types}_qid_idx ON {nodequeue_types} (qid)"); $ret[] = update_sql("CREATE INDEX {nodequeue_nodes}_qid_idx ON {nodequeue_nodes} (qid, position)"); $ret[] = update_sql("CREATE INDEX {nodequeue_nodes}_nid_idx ON {nodequeue_nodes} (nid)"); $ret[] = _system_update_utf8(array('nodequeue_queue', 'nodequeue_roles', 'nodequeue_types', 'nodequeue_nodes')); return $ret; } function nodequeue_update_5001() { $ret = array(); switch ($GLOBALS['db_type']) { case 'mysql': case 'mysqli': $ret[] = update_sql("ALTER TABLE {nodequeue_nodes} ADD COLUMN timestamp int DEFAULT '0' NOT NULL"); break; case 'pgsql': db_add_column($ret, 'nodequeue_nodes', 'timestamp', 'integer', array('default' => 0, 'not null' => TRUE)); break; } return $ret; } function nodequeue_update_5201() { $ret = array(); // Add new columns to the nodequeue_queue table. db_add_column($ret, 'nodequeue_queue', 'owner', 'varchar(255)', array('default' => "'nodequeue'")); db_add_column($ret, 'nodequeue_queue', 'show_in_ui', 'integer', array('default' => 1)); db_add_column($ret, 'nodequeue_queue', 'show_in_tab', 'integer', array('default' => 1)); db_add_column($ret, 'nodequeue_queue', 'show_in_links', 'integer', array('default' => 1)); db_add_column($ret, 'nodequeue_queue', 'reference', 'varchar(255)', array('default' => 0)); // Create the nodequeue_subqueue table. $ret[] = update_sql("UPDATE {nodequeue_queue} SET owner = 'nodequeue', show_in_ui = 1, show_in_tab = 1, show_in_links = 1, reference = 0"); switch ($GLOBALS['db_type']) { case 'mysql': case 'mysqli': $ret[] = update_sql("CREATE TABLE if not exists {nodequeue_subqueue} ( sqid int(10) unsigned PRIMARY KEY, qid int(10) unsigned NOT NULL, reference varchar(255) default 0, title varchar(255) default '', KEY {nodequeue_subqueue}_qid_idx (qid), KEY {nodequeue_subqueue}_reference_idx (reference), KEY {nodequeue_subqueue}_title_idx (title) )/*!40100 DEFAULT CHARACTER SET utf8 */"); break; case 'pgsql': break; } // Populate the nodequeue_subqueue table. $result = db_query("SELECT * FROM {nodequeue_queue}"); while ($queue = db_fetch_object($result)) { // Keep the qid so that we can update our sequence table later on. $last_qid = $queue->qid; $ret[] = update_sql("INSERT INTO {nodequeue_subqueue} (sqid, qid, reference, title) VALUES ($queue->qid, $queue->qid, $queue->qid, '$queue->title')"); } if (isset($last_qid)) { // Fix the sequences switch ($GLOBALS['db_type']) { case 'mysql': case 'mysqli': $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{nodequeue_subqueue}_sqid', $last_qid)"); break; case 'pgsql': // I don't believe we need to do anything here. break; } } // Transform the nodequeue_nodes table. db_add_column($ret, 'nodequeue_nodes', 'sqid', 'integer'); $ret[] = update_sql("UPDATE {nodequeue_nodes} SET sqid = qid"); $ret[] = update_sql("CREATE INDEX {nodequeue_nodes}_sqid_idx ON {nodequeue_nodes} (sqid, position)"); return $ret; } function nodequeue_update_5202() { $ret = array(); db_add_column($ret, 'nodequeue_queue', 'subqueue_title', 'varchar(255)'); return $ret; } function nodequeue_update_5203() { $ret = array(); switch ($GLOBALS['db_type']) { case 'mysql': case 'mysqli': db_add_column($ret, 'nodequeue_queue', 'reverse', 'int(1)'); break; // This update was broken on PgSQL, but is fixed in 5204 below. } return $ret; } function nodequeue_update_5204() { $ret = array(); switch ($GLOBALS['db_type']) { case 'mysql': case 'mysqli': $ret[] = update_sql("ALTER TABLE {nodequeue_queue} MODIFY COLUMN reverse tinyint"); break; case 'pgsql': db_add_column($ret, 'nodequeue_queue', 'reverse', 'smallint'); break; } return $ret; }