summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2003-05-29 17:47:31 -0400
committerunknown <vva@eagle.mysql.r18.ru>2003-05-29 17:47:31 -0400
commit69e084af1eedff2dda70fcf073dd4fa349718b69 (patch)
treea9f85257a75430a22735e52666cbf25e605ea2bb /mysql-test
parentf440077bd03869f48ff278bc2b73fab7a30e282b (diff)
downloadmariadb-git-69e084af1eedff2dda70fcf073dd4fa349718b69.tar.gz
new version of help
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/install_test_db.sh210
-rw-r--r--mysql-test/r/connect.result3
-rw-r--r--mysql-test/r/help.result254
-rw-r--r--mysql-test/t/help.test111
4 files changed, 281 insertions, 297 deletions
diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh
index fc3e00d8501..ca6d393e3b4 100644
--- a/mysql-test/install_test_db.sh
+++ b/mysql-test/install_test_db.sh
@@ -11,10 +11,12 @@ if [ x$1 = x"-bin" ]; then
bindir=../bin
BINARY_DIST=1
fix_bin=mysql-test
+ scriptdir=../bin
else
execdir=../sql
bindir=../client
fix_bin=.
+ scriptdir=../scripts
fi
vardir=var
@@ -60,217 +62,11 @@ basedir=.
EXTRA_ARG="--language=../sql/share/english/"
fi
-# Initialize variables
-c_d="" i_d=""
-c_h="" i_h=""
-c_u="" i_u=""
-c_f="" i_f=""
-c_t="" c_c=""
-c_hl="" c_hl=""
-c_hc="" c_hc=""
-c_clr="" c_clr=""
-
-# Check for old tables
-if test ! -f $mdata/db.frm
-then
- # mysqld --bootstrap wants one command/line
- c_d="$c_d CREATE TABLE db ("
- c_d="$c_d Host char(60) DEFAULT '' NOT NULL,"
- c_d="$c_d Db char(64) DEFAULT '' NOT NULL,"
- c_d="$c_d User char(16) DEFAULT '' NOT NULL,"
- c_d="$c_d Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_d="$c_d PRIMARY KEY Host (Host,Db,User),"
- c_d="$c_d KEY User (User)"
- c_d="$c_d )"
- c_d="$c_d comment='Database privileges';"
-
- i_d="INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');
- INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');"
-fi
-
-if test ! -f $mdata/host.frm
-then
- c_h="$c_h CREATE TABLE host ("
- c_h="$c_h Host char(60) DEFAULT '' NOT NULL,"
- c_h="$c_h Db char(64) DEFAULT '' NOT NULL,"
- c_h="$c_h Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_h="$c_h PRIMARY KEY Host (Host,Db)"
- c_h="$c_h )"
- c_h="$c_h comment='Host privileges; Merged with database privileges';"
-fi
-
-if test ! -f $mdata/user.frm
-then
- c_u="$c_u CREATE TABLE user ("
- c_u="$c_u Host char(60) binary DEFAULT '' NOT NULL,"
- c_u="$c_u User char(16) binary DEFAULT '' NOT NULL,"
- c_u="$c_u Password char(45) binary DEFAULT '' NOT NULL,"
- c_u="$c_u Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u File_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u References_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,"
- c_u="$c_u ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,"
- c_u="$c_u ssl_cipher BLOB NOT NULL,"
- c_u="$c_u x509_issuer BLOB NOT NULL,"
- c_u="$c_u x509_subject BLOB NOT NULL,"
- c_u="$c_u max_questions int(11) unsigned DEFAULT 0 NOT NULL,"
- c_u="$c_u max_updates int(11) unsigned DEFAULT 0 NOT NULL,"
- c_u="$c_u max_connections int(11) unsigned DEFAULT 0 NOT NULL,"
- c_u="$c_u PRIMARY KEY Host (Host,User)"
- c_u="$c_u )"
- c_u="$c_u comment='Users and global privileges';"
-
- i_u="INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- INSERT INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- REPLACE INTO user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);
- INSERT INTO user (host,user) values ('localhost','');
- INSERT INTO user (host,user) values ('$hostname','');"
-fi
-
-if test ! -f $mdata/func.frm
-then
- c_f="$c_f CREATE TABLE func ("
- c_f="$c_f name char(64) DEFAULT '' NOT NULL,"
- c_f="$c_f ret tinyint(1) DEFAULT '0' NOT NULL,"
- c_f="$c_f dl char(128) DEFAULT '' NOT NULL,"
- c_f="$c_f type enum ('function','aggregate') NOT NULL,"
- c_f="$c_f PRIMARY KEY (name)"
- c_f="$c_f )"
- c_f="$c_f comment='User defined functions';"
-fi
-
-if test ! -f $mdata/tables_priv.frm
-then
- c_t="$c_t CREATE TABLE tables_priv ("
- c_t="$c_t Host char(60) DEFAULT '' NOT NULL,"
- c_t="$c_t Db char(64) DEFAULT '' NOT NULL,"
- c_t="$c_t User char(16) DEFAULT '' NOT NULL,"
- c_t="$c_t Table_name char(60) DEFAULT '' NOT NULL,"
- c_t="$c_t Grantor char(77) DEFAULT '' NOT NULL,"
- c_t="$c_t Timestamp timestamp(14),"
- c_t="$c_t Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL,"
- c_t="$c_t Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,"
- c_t="$c_t PRIMARY KEY (Host,Db,User,Table_name),"
- c_t="$c_t KEY Grantor (Grantor)"
- c_t="$c_t )"
- c_t="$c_t comment='Table privileges';"
-fi
-
-if test ! -f $mdata/columns_priv.frm
-then
- c_c="$c_c CREATE TABLE columns_priv ("
- c_c="$c_c Host char(60) DEFAULT '' NOT NULL,"
- c_c="$c_c Db char(64) DEFAULT '' NOT NULL,"
- c_c="$c_c User char(16) DEFAULT '' NOT NULL,"
- c_c="$c_c Table_name char(64) DEFAULT '' NOT NULL,"
- c_c="$c_c Column_name char(64) DEFAULT '' NOT NULL,"
- c_c="$c_c Timestamp timestamp(14),"
- c_c="$c_c Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,"
- c_c="$c_c PRIMARY KEY (Host,Db,User,Table_name,Column_name)"
- c_c="$c_c )"
- c_c="$c_c comment='Column privileges';"
-fi
-
-if test ! -f $mdata/help_topic.frm
-then
- c_hl="$c_hl CREATE TABLE help_topic ("
- c_hl="$c_hl help_topic_id int unsigned not null auto_increment,"
- c_hl="$c_hl name varchar(64) not null,"
- c_hl="$c_hl description text not null,"
- c_hl="$c_hl example text not null,"
- c_hl="$c_hl url varchar(128) not null,"
- c_hl="$c_hl primary key (help_topic_id),"
- c_hl="$c_hl unique index (name)"
- c_hl="$c_hl )"
- c_hl="$c_hl comment='help topics';"
-fi
-
-if test ! -f $mdata/help_category.frm
-then
- c_clr="$c_clr CREATE TABLE help_category ("
- c_clr="$c_clr help_category_id smallint unsigned not null auto_increment,"
- c_clr="$c_clr name varchar(64) not null,"
- c_clr="$c_clr url varchar(128) not null,"
- c_clr="$c_clr primary key (help_category_id),"
- c_clr="$c_clr unique index (name)"
- c_clr="$c_clr )"
- c_clr="$c_clr comment='help topics-categories relation';"
-fi
-
-if test ! -f $mdata/help_relation.frm
-then
- c_hc="$c_hc CREATE TABLE help_relation ("
- c_hc="$c_hc help_topic_id int unsigned not null references help_topic,"
- c_hc="$c_hc help_category_id smallint unsigned not null references help_category,"
- c_hc="$c_hc primary key (help_category_id, help_topic_id),"
- c_hc="$c_hc )"
- c_hc="$c_hc comment='categories of help topics';"
-fi
-
mysqld_boot=" $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables \
--basedir=$basedir --datadir=$ldata --skip-innodb --skip-bdb $EXTRA_ARG"
echo "running $mysqld_boot"
-if $mysqld_boot << END_OF_DATA
-use mysql;
-$c_d
-$i_d
-
-$c_h
-$i_h
-
-$c_u
-$i_u
-
-$c_f
-$i_f
-
-$c_t
-$c_c
-
-$c_hl
-$c_hc
-$c_clr
-END_OF_DATA
+if $scriptdir/mysql_create_system_tables test $mdata $hostname | $mysqld_boot
then
exit 0
else
diff --git a/mysql-test/r/connect.result b/mysql-test/r/connect.result
index b7243ac5d0b..a80ddc24d05 100644
--- a/mysql-test/r/connect.result
+++ b/mysql-test/r/connect.result
@@ -4,6 +4,7 @@ columns_priv
db
func
help_category
+help_keyword
help_relation
help_topic
host
@@ -19,6 +20,7 @@ columns_priv
db
func
help_category
+help_keyword
help_relation
help_topic
host
@@ -34,6 +36,7 @@ columns_priv
db
func
help_category
+help_keyword
help_relation
help_topic
host
diff --git a/mysql-test/r/help.result b/mysql-test/r/help.result
index 4da4a84d4ad..d22539b2bcb 100644
--- a/mysql-test/r/help.result
+++ b/mysql-test/r/help.result
@@ -1,123 +1,243 @@
-truncate mysql.help_topic;
-truncate mysql.help_category;
-truncate mysql.help_relation;
-insert into mysql.help_topic(name,description,example)values('impossible_function_1','description of \n impossible_function1','example of \n impossible_function1');
-SELECT @topic1_id:=LAST_INSERT_ID();
-@topic1_id:=LAST_INSERT_ID()
+insert into mysql.help_category(help_category_id,name)values(1,'impossible_category_1');
+select @category1_id:= 1;
+@category1_id:= 1
1
-insert into mysql.help_topic(name,description,example)values('impossible_function_2','description of \n impossible_function2','example of \n impossible_function2');
-SELECT @topic2_id:=LAST_INSERT_ID();
-@topic2_id:=LAST_INSERT_ID()
+insert into mysql.help_category(help_category_id,name)values(2,'impossible_category_2');
+select @category2_id:= 2;
+@category2_id:= 2
2
-insert into mysql.help_topic(name,description,example)values('impossible_function_3','description of \n impossible_function3','example of \n impossible_function3');
-SELECT @topic3_id:=LAST_INSERT_ID();
-@topic3_id:=LAST_INSERT_ID()
+insert into mysql.help_category(help_category_id,name,parent_category_id)values(3,'impossible_category_3',@category2_id);
+select @category3_id:= 3;
+@category3_id:= 3
3
-insert into mysql.help_category(name)values('impossible_category_1');
-SELECT @category1_id:=LAST_INSERT_ID();
-@category1_id:=LAST_INSERT_ID()
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(1,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1');
+select @topic1_id:= 1;
+@topic1_id:= 1
1
-insert into mysql.help_category(name)values('impossible_category_2');
-SELECT @category2_id:=LAST_INSERT_ID();
-@category2_id:=LAST_INSERT_ID()
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(2,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2');
+select @topic2_id:= 2;
+@topic2_id:= 2
2
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category1_id,@topic1_id);
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category1_id,@topic2_id);
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category2_id,@topic2_id);
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category2_id,@topic3_id);
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(3,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3');
+select @topic3_id:= 3;
+@topic3_id:= 3
+3
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(4,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4');
+select @topic4_id:= 4;
+@topic4_id:= 4
+4
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(5,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7');
+select @topic5_id:= 5;
+@topic5_id:= 5
+5
+insert into mysql.help_keyword(help_keyword_id,name)values(1,'impossible_function_1');
+select @keyword1_id:= 1;
+@keyword1_id:= 1
+1
+insert into mysql.help_keyword(help_keyword_id,name)values(2,'impossible_function_5');
+select @keyword2_id:= 2;
+@keyword2_id:= 2
+2
+insert into mysql.help_keyword(help_keyword_id,name)values(3,'impossible_function_6');
+select @keyword3_id:= 3;
+@keyword3_id:= 3
+3
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword1_id,@topic2_id);
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword2_id,@topic1_id);
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword3_id,@topic3_id);
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword3_id,@topic4_id);
help 'function_of_my_dream';
-Name Category
-impossible_category_1 Y
-impossible_category_2 Y
+name is_it_category
help '%possible_f%';
-Name Category
+name is_it_category
impossible_function_1 N
impossible_function_2 N
impossible_function_3 N
+impossible_function_4 N
+impossible_function_7 N
help 'impossible_func%';
-Name Category
+name is_it_category
impossible_function_1 N
impossible_function_2 N
impossible_function_3 N
+impossible_function_4 N
+impossible_function_7 N
help 'impossible_category%';
-Name Category
+name is_it_category
impossible_category_1 Y
impossible_category_2 Y
+impossible_category_3 Y
help 'impossible_%';
-Name Category
+name is_it_category
impossible_function_1 N
impossible_function_2 N
impossible_function_3 N
+impossible_function_4 N
+impossible_function_7 N
impossible_category_1 Y
impossible_category_2 Y
+impossible_category_3 Y
+help '%function_1';
+name description example
+impossible_function_1 description of
+ impossible_function1
+ example of
+ impossible_function1
help '%function_2';
-Name Category Description Example
-impossible_function_2 N description of
- impossible_function2 example of
+name description example
+impossible_function_2 description of
+ impossible_function2
+ example of
impossible_function2
+help '%function_3';
+name description example
+impossible_function_3 description of
+ impossible_function3
+ example of
+ impossible_function3
+help '%function_4';
+name description example
+impossible_function_4 description of
+ impossible_function4
+ example of
+ impossible_function4
+help '%function_5';
+name description example
+impossible_function_1 description of
+ impossible_function1
+ example of
+ impossible_function1
+help '%function_6';
+name is_it_category
+impossible_function_3 N
+impossible_function_4 N
+help '%function_7';
+name description example
+impossible_function_7 description of
+ impossible_function5
+ example of
+ impossible_function7
help '%category_2';
-Name Category Description Example
-impossible_category_2 Y impossible_function_2
-impossible_function_3
-
+source_category_name name is_it_category
+impossible_category_2 impossible_function_3 N
+impossible_category_2 impossible_function_4 N
+impossible_category_2 impossible_category_3 Y
help 'impossible_function_1';
-Name Category Description Example
-impossible_function_1 N description of
- impossible_function1 example of
+name description example
+impossible_function_1 description of
+ impossible_function1
+ example of
impossible_function1
help 'impossible_category_1';
-Name Category Description Example
-impossible_category_1 Y impossible_function_1
-impossible_function_2
-
+source_category_name name is_it_category
+impossible_category_1 impossible_function_1 N
+impossible_category_1 impossible_function_2 N
+alter table mysql.help_relation type=innodb;
+alter table mysql.help_keyword type=innodb;
alter table mysql.help_topic type=innodb;
alter table mysql.help_category type=innodb;
-alter table mysql.help_relation type=innodb;
help 'function_of_my_dream';
-Name Category
-impossible_category_1 Y
-impossible_category_2 Y
-help '%ble_f%';
-Name Category
+name is_it_category
+help '%possible_f%';
+name is_it_category
impossible_function_1 N
impossible_function_2 N
impossible_function_3 N
+impossible_function_4 N
+impossible_function_7 N
help 'impossible_func%';
-Name Category
+name is_it_category
impossible_function_1 N
impossible_function_2 N
impossible_function_3 N
+impossible_function_4 N
+impossible_function_7 N
help 'impossible_category%';
-Name Category
+name is_it_category
impossible_category_1 Y
impossible_category_2 Y
+impossible_category_3 Y
help 'impossible_%';
-Name Category
+name is_it_category
impossible_function_1 N
impossible_function_2 N
impossible_function_3 N
+impossible_function_4 N
+impossible_function_7 N
impossible_category_1 Y
impossible_category_2 Y
+impossible_category_3 Y
+help '%function_1';
+name description example
+impossible_function_1 description of
+ impossible_function1
+ example of
+ impossible_function1
help '%function_2';
-Name Category Description Example
-impossible_function_2 N description of
- impossible_function2 example of
+name description example
+impossible_function_2 description of
+ impossible_function2
+ example of
impossible_function2
+help '%function_3';
+name description example
+impossible_function_3 description of
+ impossible_function3
+ example of
+ impossible_function3
+help '%function_4';
+name description example
+impossible_function_4 description of
+ impossible_function4
+ example of
+ impossible_function4
+help '%function_5';
+name description example
+impossible_function_1 description of
+ impossible_function1
+ example of
+ impossible_function1
+help '%function_6';
+name is_it_category
+impossible_function_3 N
+impossible_function_4 N
+help '%function_7';
+name description example
+impossible_function_7 description of
+ impossible_function5
+ example of
+ impossible_function7
help '%category_2';
-Name Category Description Example
-impossible_category_2 Y impossible_function_2
-impossible_function_3
-
+source_category_name name is_it_category
+impossible_category_2 impossible_function_3 N
+impossible_category_2 impossible_function_4 N
+impossible_category_2 impossible_category_3 Y
help 'impossible_function_1';
-Name Category Description Example
-impossible_function_1 N description of
- impossible_function1 example of
+name description example
+impossible_function_1 description of
+ impossible_function1
+ example of
impossible_function1
help 'impossible_category_1';
-Name Category Description Example
-impossible_category_1 Y impossible_function_1
-impossible_function_2
-
+source_category_name name is_it_category
+impossible_category_1 impossible_function_1 N
+impossible_category_1 impossible_function_2 N
+alter table mysql.help_relation type=myisam;
+alter table mysql.help_keyword type=myisam;
alter table mysql.help_topic type=myisam;
alter table mysql.help_category type=myisam;
-alter table mysql.help_relation type=myisam;
+delete from mysql.help_topic where help_topic_id=@topic1_id;
+delete from mysql.help_topic where help_topic_id=@topic2_id;
+delete from mysql.help_topic where help_topic_id=@topic3_id;
+delete from mysql.help_topic where help_topic_id=@topic4_id;
+delete from mysql.help_topic where help_topic_id=@topic5_id;
+delete from mysql.help_category where help_category_id=@category3_id;
+delete from mysql.help_category where help_category_id=@category2_id;
+delete from mysql.help_category where help_category_id=@category1_id;
+delete from mysql.help_keyword where help_keyword_id=@keyword1_id;
+delete from mysql.help_keyword where help_keyword_id=@keyword2_id;
+delete from mysql.help_keyword where help_keyword_id=@keyword3_id;
+delete from mysql.help_relation where help_keyword_id=@keyword1_id and help_topic_id=@topic2_id;
+delete from mysql.help_relation where help_keyword_id=@keyword2_id and help_topic_id=@topic1_id;
+delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic3_id;
+delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic4_id;
diff --git a/mysql-test/t/help.test b/mysql-test/t/help.test
index c36b670c6b3..82312340336 100644
--- a/mysql-test/t/help.test
+++ b/mysql-test/t/help.test
@@ -1,50 +1,115 @@
-- source include/have_innodb.inc
-truncate mysql.help_topic;
-truncate mysql.help_category;
-truncate mysql.help_relation;
-
-insert into mysql.help_topic(name,description,example)values('impossible_function_1','description of \n impossible_function1','example of \n impossible_function1');
-SELECT @topic1_id:=LAST_INSERT_ID();
-insert into mysql.help_topic(name,description,example)values('impossible_function_2','description of \n impossible_function2','example of \n impossible_function2');
-SELECT @topic2_id:=LAST_INSERT_ID();
-insert into mysql.help_topic(name,description,example)values('impossible_function_3','description of \n impossible_function3','example of \n impossible_function3');
-SELECT @topic3_id:=LAST_INSERT_ID();
-
-insert into mysql.help_category(name)values('impossible_category_1');
-SELECT @category1_id:=LAST_INSERT_ID();
-insert into mysql.help_category(name)values('impossible_category_2');
-SELECT @category2_id:=LAST_INSERT_ID();
-
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category1_id,@topic1_id);
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category1_id,@topic2_id);
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category2_id,@topic2_id);
-insert into mysql.help_relation(help_category_id,help_topic_id)values(@category2_id,@topic3_id);
+# category: topic: keyword:
+#
+# impossible_category_1
+# impossible_function_1
+# impossible_function_5
+# impossible_function_2
+# impossible_function_1
+# impossible_category_2
+# impossible_function_3
+# impossible_function_6
+# impossible_function_4
+# impossible_function_6
+# impossible_category_3
+# impossible_function_7
+insert into mysql.help_category(help_category_id,name)values(1,'impossible_category_1');
+select @category1_id:= 1;
+insert into mysql.help_category(help_category_id,name)values(2,'impossible_category_2');
+select @category2_id:= 2;
+insert into mysql.help_category(help_category_id,name,parent_category_id)values(3,'impossible_category_3',@category2_id);
+select @category3_id:= 3;
+
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(1,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1');
+select @topic1_id:= 1;
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(2,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2');
+select @topic2_id:= 2;
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(3,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3');
+select @topic3_id:= 3;
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(4,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4');
+select @topic4_id:= 4;
+insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(5,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7');
+select @topic5_id:= 5;
+
+insert into mysql.help_keyword(help_keyword_id,name)values(1,'impossible_function_1');
+select @keyword1_id:= 1;
+insert into mysql.help_keyword(help_keyword_id,name)values(2,'impossible_function_5');
+select @keyword2_id:= 2;
+insert into mysql.help_keyword(help_keyword_id,name)values(3,'impossible_function_6');
+select @keyword3_id:= 3;
+
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword1_id,@topic2_id);
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword2_id,@topic1_id);
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword3_id,@topic3_id);
+insert into mysql.help_relation(help_keyword_id,help_topic_id)values(@keyword3_id,@topic4_id);
+
+##############
help 'function_of_my_dream';
help '%possible_f%';
help 'impossible_func%';
help 'impossible_category%';
help 'impossible_%';
+
+help '%function_1';
help '%function_2';
+help '%function_3';
+help '%function_4';
+help '%function_5';
+help '%function_6';
+help '%function_7';
+
help '%category_2';
help 'impossible_function_1';
help 'impossible_category_1';
+##############
+alter table mysql.help_relation type=innodb;
+alter table mysql.help_keyword type=innodb;
alter table mysql.help_topic type=innodb;
alter table mysql.help_category type=innodb;
-alter table mysql.help_relation type=innodb;
+##############
help 'function_of_my_dream';
-help '%ble_f%';
+help '%possible_f%';
help 'impossible_func%';
help 'impossible_category%';
help 'impossible_%';
+
+help '%function_1';
help '%function_2';
+help '%function_3';
+help '%function_4';
+help '%function_5';
+help '%function_6';
+help '%function_7';
+
help '%category_2';
help 'impossible_function_1';
help 'impossible_category_1';
+##############
+alter table mysql.help_relation type=myisam;
+alter table mysql.help_keyword type=myisam;
alter table mysql.help_topic type=myisam;
alter table mysql.help_category type=myisam;
-alter table mysql.help_relation type=myisam;
+
+delete from mysql.help_topic where help_topic_id=@topic1_id;
+delete from mysql.help_topic where help_topic_id=@topic2_id;
+delete from mysql.help_topic where help_topic_id=@topic3_id;
+delete from mysql.help_topic where help_topic_id=@topic4_id;
+delete from mysql.help_topic where help_topic_id=@topic5_id;
+
+delete from mysql.help_category where help_category_id=@category3_id;
+delete from mysql.help_category where help_category_id=@category2_id;
+delete from mysql.help_category where help_category_id=@category1_id;
+
+delete from mysql.help_keyword where help_keyword_id=@keyword1_id;
+delete from mysql.help_keyword where help_keyword_id=@keyword2_id;
+delete from mysql.help_keyword where help_keyword_id=@keyword3_id;
+
+delete from mysql.help_relation where help_keyword_id=@keyword1_id and help_topic_id=@topic2_id;
+delete from mysql.help_relation where help_keyword_id=@keyword2_id and help_topic_id=@topic1_id;
+delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic3_id;
+delete from mysql.help_relation where help_keyword_id=@keyword3_id and help_topic_id=@topic4_id;