From 7abd533fec00cf505f3beacf8fd1fd9ba9660727 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Tue, 19 Aug 2014 18:38:23 +0000
Subject: [PATCH] Drop status column in favour of status_id

---
 include/upgrader/streams/core.sig             |  2 +-
 .../core/8f99b8bf-03ff59bf.cleanup.sql        |  7 +++++
 ....patch.sql => 8f99b8bf-03ff59bf.patch.sql} | 29 ++++++++++---------
 ...87.task.php => 8f99b8bf-03ff59bf.task.php} |  0
 setup/inc/streams/core/install-mysql.sql      |  6 ++--
 5 files changed, 26 insertions(+), 18 deletions(-)
 create mode 100644 include/upgrader/streams/core/8f99b8bf-03ff59bf.cleanup.sql
 rename include/upgrader/streams/core/{8f99b8bf-b3806687.patch.sql => 8f99b8bf-03ff59bf.patch.sql} (75%)
 rename include/upgrader/streams/core/{8f99b8bf-b3806687.task.php => 8f99b8bf-03ff59bf.task.php} (100%)

diff --git a/include/upgrader/streams/core.sig b/include/upgrader/streams/core.sig
index 4d847feb4..30a5aca33 100644
--- a/include/upgrader/streams/core.sig
+++ b/include/upgrader/streams/core.sig
@@ -1 +1 @@
-b38066879371ed792958b4ba9bc8de4a
+03ff59bf35a58a102e9b32ad33c2839f
diff --git a/include/upgrader/streams/core/8f99b8bf-03ff59bf.cleanup.sql b/include/upgrader/streams/core/8f99b8bf-03ff59bf.cleanup.sql
new file mode 100644
index 000000000..bccb432fb
--- /dev/null
+++ b/include/upgrader/streams/core/8f99b8bf-03ff59bf.cleanup.sql
@@ -0,0 +1,7 @@
+DELETE FROM `%TABLE_PREFIX%config`
+    WHERE `namespace`='core' AND `key` = 'random_ticket_ids';
+
+ALTER TABLE `%TABLE_PREFIX%ticket`
+    DROP COLUMN `status`;
+
+OPTIMIZE TABLE `%TABLE_PREFIX%ticket`;
diff --git a/include/upgrader/streams/core/8f99b8bf-b3806687.patch.sql b/include/upgrader/streams/core/8f99b8bf-03ff59bf.patch.sql
similarity index 75%
rename from include/upgrader/streams/core/8f99b8bf-b3806687.patch.sql
rename to include/upgrader/streams/core/8f99b8bf-03ff59bf.patch.sql
index a4cc062be..65a50036f 100644
--- a/include/upgrader/streams/core/8f99b8bf-b3806687.patch.sql
+++ b/include/upgrader/streams/core/8f99b8bf-03ff59bf.patch.sql
@@ -1,6 +1,6 @@
 /**
  * @version v1.9.4
- * @signature b38066879371ed792958b4ba9bc8de4a
+ * @signature 03ff59bf35a58a102e9b32ad33c2839f
  * @title Custom Ticket Numbers and Statuses
  *
  * This patch adds support for ticket number sequences to the database
@@ -26,21 +26,18 @@ CREATE TABLE `%TABLE_PREFIX%sequence` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 SET @random = (SELECT `value` FROM `%TABLE_PREFIX%config`
-    WHERE `namespace` = 'core' AND `key` = 'use_random_ids');
+    WHERE `namespace` = 'core' AND `key` = 'random_ticket_ids');
 
 -- Sequence (id=1) will be loaded in the task file
 INSERT INTO `%TABLE_PREFIX%config` (`namespace`, `key`, `value`)
     VALUES
-    ('core', 'number_format', CASE WHEN @random THEN '######' ELSE '#' END),
-    ('core', 'sequence_id', CASE WHEN @random THEN 0 ELSE 1 END);
-
-DELETE FROM `%TABLE_PREFIX%config`
-WHERE `namespace`='core' AND `key` = 'use_random_ids';
+    ('core', 'number_format', IF(@random, '######', '#')),
+    ('core', 'sequence_id', IF(@random, 0, 1));
 
 ALTER TABLE `%TABLE_PREFIX%help_topic`
-  ADD `flags` int(10) unsigned DEFAULT '0' AFTER `noautoresp`,
-  ADD `sequence_id` int(10) unsigned NOT NULL DEFAULT '0' AFTER `form_id`,
-  ADD `number_format` varchar(32) DEFAULT NULL AFTER `topic`;
+    ADD `flags` int(10) unsigned DEFAULT '0' AFTER `noautoresp`,
+    ADD `sequence_id` int(10) unsigned NOT NULL DEFAULT '0' AFTER `form_id`,
+    ADD `number_format` varchar(32) DEFAULT NULL AFTER `topic`;
 
 ALTER TABLE  `%TABLE_PREFIX%list`
     ADD  `masks` INT UNSIGNED NOT NULL DEFAULT  '0' AFTER  `sort_mode`,
@@ -50,9 +47,9 @@ ALTER TABLE  `%TABLE_PREFIX%list`
 CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%ticket_status` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(60) NOT NULL DEFAULT '',
-  `state` varchar(16) NOT NULL DEFAULT 'open',
+  `state` varchar(16) DEFAULT NULL,
   `mode` int(11) unsigned NOT NULL DEFAULT '0',
-  `flags` int(10) unsigned NOT NULL DEFAULT '0',
+  `flags` int(11) unsigned NOT NULL DEFAULT '0',
   `sort` int(11) unsigned NOT NULL DEFAULT '0',
   `notes` text NOT NULL,
   `created` datetime NOT NULL,
@@ -72,7 +69,13 @@ ALTER TABLE  `%TABLE_PREFIX%ticket`
     ADD  `status_id` INT UNSIGNED NOT NULL DEFAULT  '0' AFTER  `user_email_id`,
     ADD INDEX (`status_id`);
 
+UPDATE `%TABLE_PREFIX%ticket` SET  `status_id` = 3
+    WHERE  `status` = 'closed';
+
+UPDATE `%TABLE_PREFIX%ticket` SET  `status_id` = 1
+        WHERE  `status` = 'open';
+
 -- Finished with patch
 UPDATE `%TABLE_PREFIX%config`
-    SET `value` = 'b38066879371ed792958b4ba9bc8de4a'
+    SET `value` = '03ff59bf35a58a102e9b32ad33c2839f'
     WHERE `key` = 'schema_signature' AND `namespace` = 'core';
diff --git a/include/upgrader/streams/core/8f99b8bf-b3806687.task.php b/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php
similarity index 100%
rename from include/upgrader/streams/core/8f99b8bf-b3806687.task.php
rename to include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php
diff --git a/setup/inc/streams/core/install-mysql.sql b/setup/inc/streams/core/install-mysql.sql
index ac5c3783f..4879e53ce 100644
--- a/setup/inc/streams/core/install-mysql.sql
+++ b/setup/inc/streams/core/install-mysql.sql
@@ -599,7 +599,6 @@ CREATE TABLE `%TABLE_PREFIX%ticket` (
   `email_id` int(11) unsigned NOT NULL default '0',
   `flags` int(10) unsigned NOT NULL default '0',
   `ip_address` varchar(64) NOT NULL default '',
-  `status` enum('open','closed') NOT NULL default 'open',
   `source` enum('Web','Email','Phone','API','Other') NOT NULL default 'Other',
   `isoverdue` tinyint(1) unsigned NOT NULL default '0',
   `isanswered` tinyint(1) unsigned NOT NULL default '0',
@@ -614,7 +613,6 @@ CREATE TABLE `%TABLE_PREFIX%ticket` (
   KEY `user_id` (`user_id`),
   KEY `dept_id` (`dept_id`),
   KEY `staff_id` (`staff_id`),
-  KEY `status` (`status`),
   KEY `team_id` (`team_id`),
   KEY `status_id` (`status_id`),
   KEY `created` (`created`),
@@ -679,9 +677,9 @@ DROP TABLE IF EXISTS `%TABLE_PREFIX%ticket_status`;
 CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%ticket_status` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(60) NOT NULL DEFAULT '',
-  `state` varchar(16) NOT NULL DEFAULT 'open',
+  `state` varchar(16) DEFAULT NULL,
   `mode` int(11) unsigned NOT NULL DEFAULT '0',
-  `flags` int(10) unsigned NOT NULL DEFAULT '0',
+  `flags` int(11) unsigned NOT NULL DEFAULT '0',
   `sort` int(11) unsigned NOT NULL DEFAULT '0',
   `notes` text NOT NULL,
   `created` datetime NOT NULL,
-- 
GitLab