mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fixed bug in REPAIR table.
Portability fix in safemalloc.c
This commit is contained in:
@ -24,10 +24,8 @@
|
||||
#define main main1
|
||||
#define mysql_unix_port mysql_inix_port1
|
||||
#define mysql_port mysql_port1
|
||||
#if !defined(__WIN__)
|
||||
#define net_read_timeout net_read_timeout1
|
||||
#define net_write_timeout net_write_timeout1
|
||||
#endif
|
||||
#define changeable_vars changeable_vars1
|
||||
|
||||
extern "C"
|
||||
|
@ -701,7 +701,7 @@ merge_buffers(MI_SORT_PARAM *info, uint keys, IO_CACHE *from_file,
|
||||
|
||||
if (init_queue(&queue,(uint) (Tb-Fb)+1,offsetof(BUFFPEK,key),0,
|
||||
(int (*)(void*, byte *,byte*)) info->key_cmp,
|
||||
(void*) info->sort_info))
|
||||
(void*) info))
|
||||
DBUG_RETURN(1); /* purecov: inspected */
|
||||
|
||||
for (buffpek= Fb ; buffpek <= Tb ; buffpek++)
|
||||
|
@ -75,3 +75,25 @@ explain select a,b,c from t1;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL NULL NULL NULL NULL 4
|
||||
drop table t1;
|
||||
CREATE TABLE `t1` (
|
||||
`post_id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`topic_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`post_time` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`post_text` text NOT NULL,
|
||||
`icon_url` varchar(10) NOT NULL default '',
|
||||
`sign` tinyint(1) unsigned NOT NULL default '0',
|
||||
`post_edit` varchar(150) NOT NULL default '',
|
||||
`poster_login` varchar(35) NOT NULL default '',
|
||||
`ip` varchar(15) NOT NULL default '',
|
||||
PRIMARY KEY (`post_id`),
|
||||
KEY `post_time` (`post_time`),
|
||||
KEY `ip` (`ip`),
|
||||
KEY `poster_login` (`poster_login`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
FULLTEXT KEY `post_text` (`post_text`)
|
||||
) TYPE=MyISAM;
|
||||
INSERT INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test');
|
||||
REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
drop table t1;
|
||||
|
@ -66,3 +66,30 @@ explain select a,b from t1 order by b;
|
||||
explain select a,b from t1;
|
||||
explain select a,b,c from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test of REPAIR that once failed
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`post_id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`topic_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`post_time` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`post_text` text NOT NULL,
|
||||
`icon_url` varchar(10) NOT NULL default '',
|
||||
`sign` tinyint(1) unsigned NOT NULL default '0',
|
||||
`post_edit` varchar(150) NOT NULL default '',
|
||||
`poster_login` varchar(35) NOT NULL default '',
|
||||
`ip` varchar(15) NOT NULL default '',
|
||||
PRIMARY KEY (`post_id`),
|
||||
KEY `post_time` (`post_time`),
|
||||
KEY `ip` (`ip`),
|
||||
KEY `poster_login` (`poster_login`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
FULLTEXT KEY `post_text` (`post_text`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
INSERT INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test');
|
||||
|
||||
REPAIR TABLE t1;
|
||||
drop table t1;
|
||||
|
||||
|
@ -379,8 +379,10 @@ static int check_ptr(const char *where, byte *ptr, const char *sFile,
|
||||
static int legal_leak(struct remember* pPtr)
|
||||
{
|
||||
/* TODO: This code needs to be made more general */
|
||||
return (pthread_self() == pPtr->thread_id || main_th == pPtr->thread_id ||
|
||||
shutdown_th == pPtr->thread_id || signal_th == pPtr->thread_id);
|
||||
return (pthread_equal(pthread_self(), pPtr->thread_id) ||
|
||||
pthread_equal(main_th, pPtr->thread_id) ||
|
||||
pthread_equal(shutdown_th,pPtr->thread_id) ||
|
||||
pthread_equal(signal_th,pPtr->thread_id));
|
||||
}
|
||||
#endif /* THREAD */
|
||||
|
||||
|
Reference in New Issue
Block a user