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 main main1
|
||||||
#define mysql_unix_port mysql_inix_port1
|
#define mysql_unix_port mysql_inix_port1
|
||||||
#define mysql_port mysql_port1
|
#define mysql_port mysql_port1
|
||||||
#if !defined(__WIN__)
|
|
||||||
#define net_read_timeout net_read_timeout1
|
#define net_read_timeout net_read_timeout1
|
||||||
#define net_write_timeout net_write_timeout1
|
#define net_write_timeout net_write_timeout1
|
||||||
#endif
|
|
||||||
#define changeable_vars changeable_vars1
|
#define changeable_vars changeable_vars1
|
||||||
|
|
||||||
extern "C"
|
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,
|
if (init_queue(&queue,(uint) (Tb-Fb)+1,offsetof(BUFFPEK,key),0,
|
||||||
(int (*)(void*, byte *,byte*)) info->key_cmp,
|
(int (*)(void*, byte *,byte*)) info->key_cmp,
|
||||||
(void*) info->sort_info))
|
(void*) info))
|
||||||
DBUG_RETURN(1); /* purecov: inspected */
|
DBUG_RETURN(1); /* purecov: inspected */
|
||||||
|
|
||||||
for (buffpek= Fb ; buffpek <= Tb ; buffpek++)
|
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
|
table type possible_keys key key_len ref rows Extra
|
||||||
t1 ALL NULL NULL NULL NULL 4
|
t1 ALL NULL NULL NULL NULL 4
|
||||||
drop table t1;
|
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 from t1;
|
||||||
explain select a,b,c from t1;
|
explain select a,b,c from t1;
|
||||||
drop table 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)
|
static int legal_leak(struct remember* pPtr)
|
||||||
{
|
{
|
||||||
/* TODO: This code needs to be made more general */
|
/* TODO: This code needs to be made more general */
|
||||||
return (pthread_self() == pPtr->thread_id || main_th == pPtr->thread_id ||
|
return (pthread_equal(pthread_self(), pPtr->thread_id) ||
|
||||||
shutdown_th == pPtr->thread_id || signal_th == 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 */
|
#endif /* THREAD */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user