summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql-files/main.sql4
-rw-r--r--sql-files/upgrades/2014-02-19--17-57.sql4
-rw-r--r--sql-files/upgrades/index.txt3
-rw-r--r--src/char/char.c4
4 files changed, 13 insertions, 2 deletions
diff --git a/sql-files/main.sql b/sql-files/main.sql
index 4a91aeef8..654eee9f0 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -468,7 +468,8 @@ CREATE TABLE IF NOT EXISTS `sc_data` (
`val3` int(11) NOT NULL default '0',
`val4` int(11) NOT NULL default '0',
KEY (`account_id`),
- KEY (`char_id`)
+ KEY (`char_id`),
+ PRIMARY KEY (`account_id`,`char_id`,`type`)
) ENGINE=MyISAM;
--
@@ -661,6 +662,7 @@ INSERT INTO `sql_updates` (`timestamp`) VALUES (1384763034); -- 2013-11-18--08-2
INSERT INTO `sql_updates` (`timestamp`) VALUES (1387844126); -- 2013-12-24--00-15.sql
INSERT INTO `sql_updates` (`timestamp`) VALUES (1388854043); -- 2014-01-04--16-47.sql
INSERT INTO `sql_updates` (`timestamp`) VALUES (1389028967); -- 2014-01-06--17-22.sql
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1392832626); -- 2014-02-19--17-57.sql
--
-- Table structure for table `sstatus`
diff --git a/sql-files/upgrades/2014-02-19--17-57.sql b/sql-files/upgrades/2014-02-19--17-57.sql
new file mode 100644
index 000000000..ebebe6665
--- /dev/null
+++ b/sql-files/upgrades/2014-02-19--17-57.sql
@@ -0,0 +1,4 @@
+#1392832626
+DELETE FROM `sc_data` WHERE `tick` = '-1';
+ALTER TABLE `sc_data` ADD PRIMARY KEY (`account_id`,`char_id`,`type`);
+INSERT INTO `sql_updates` (`timestamp`) VALUES (1392832626); \ No newline at end of file
diff --git a/sql-files/upgrades/index.txt b/sql-files/upgrades/index.txt
index bf404d919..39fbd0070 100644
--- a/sql-files/upgrades/index.txt
+++ b/sql-files/upgrades/index.txt
@@ -17,4 +17,5 @@
2013-11-18--08-23.sql
2013-12-24--00-15.sql
2014-01-04--16-47.sql
-2014-01-06--17-22.sql \ No newline at end of file
+2014-01-06--17-22.sql
+2014-02-19--17-57.sql \ No newline at end of file
diff --git a/src/char/char.c b/src/char/char.c
index 1ee3cfd1d..5b497bd0c 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -3574,6 +3574,10 @@ int parse_frommap(int fd)
cid = RFIFOL(fd, 8);
count = RFIFOW(fd, 12);
+ /* clear; ensure no left overs e.g. permanent */
+ if( SQL_ERROR == SQL->Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", scdata_db, aid, cid) )
+ Sql_ShowDebug(sql_handle);
+
if( count > 0 )
{
struct status_change_data data;