mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Merged 4.1 -> 5.0
BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union myisam/mi_check.c: Auto merged myisam/myisamchk.c: Auto merged myisam/sort.c: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/t/variables.test: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_show.cc: Auto merged sql/sql_table.cc: Auto merged
This commit is contained in:
commit
4cc0419030
56 changed files with 311 additions and 408 deletions
|
@ -74,6 +74,7 @@ Docs/safe-mysql.xml
|
|||
Docs/tex.fmt
|
||||
Docs/texi2dvi.out
|
||||
INSTALL-SOURCE
|
||||
INSTALL-WIN-SOURCE
|
||||
Logs/*
|
||||
MIRRORS
|
||||
Makefile
|
||||
|
|
|
@ -9,6 +9,7 @@ acurtis@pcgem.rdg.cyberkinetica.com
|
|||
administrador@light.hegel.local
|
||||
ahlentz@co3064164-a.rochd1.qld.optusnet.com.au
|
||||
akishkin@work.mysql.com
|
||||
antony@ltantony.rdg.cyberkinetica.homeunix.net
|
||||
arjen@co3064164-a.bitbike.com
|
||||
arjen@fred.bitbike.com
|
||||
arjen@george.bitbike.com
|
||||
|
|
|
@ -26,7 +26,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) $(BUILT_SOURCES) mysqld_error.txt \
|
|||
|
||||
all: $(targets) txt_files
|
||||
|
||||
txt_files: ../INSTALL-SOURCE ../COPYING \
|
||||
txt_files: ../INSTALL-SOURCE ../COPYING ../INSTALL-WIN-SOURCE \
|
||||
INSTALL-BINARY ../support-files/MacOSX/ReadMe.txt
|
||||
|
||||
CLEAN_FILES: $(BUILD_SOURCES)
|
||||
|
@ -194,6 +194,9 @@ GT = $(srcdir)/Support/generate-text-files.pl
|
|||
../INSTALL-SOURCE: mysql.info $(GT)
|
||||
perl -w $(GT) mysql.info "Installing" "Tutorial" > $@
|
||||
|
||||
../INSTALL-WIN-SOURCE: mysql.info $(GT)
|
||||
perl -w $(GT) mysql.info "Windows source build" "Post-installation" > $@
|
||||
|
||||
# We put the description for the binary installation here so that
|
||||
# people who download source wont have to see it. It is moved up to
|
||||
# the toplevel by the script that makes the binary tar files.
|
||||
|
|
|
@ -1,221 +0,0 @@
|
|||
#########################################################
|
||||
# #
|
||||
# HOWTO : INSTALL MySQL FROM SOURCE #
|
||||
# WINDOWS PORT #
|
||||
# #
|
||||
# Copyright (C) MySQL AB 1995-2003 #
|
||||
#########################################################
|
||||
|
||||
This is a simple 'HOWTO' document describing how to
|
||||
build MySQL binaries for versions 4.1 and above on
|
||||
Windows. Instructions are provided for building binaries
|
||||
from a standard source distribution or from the BitKeeper
|
||||
tree that contains the latest development source.
|
||||
|
||||
---------------------------------------------------------
|
||||
NOTE
|
||||
---------------------------------------------------------
|
||||
|
||||
Normally, it is best to use precompiled binary distributions
|
||||
of MySQL that are built specifically for optimal performance
|
||||
on Windows by MySQL AB. Binary distributions are available
|
||||
from:
|
||||
|
||||
http://www.mysql.com/downloads/
|
||||
|
||||
The instructions in this document are strictly for users
|
||||
who want to test MySQL on Windows from the latest source or
|
||||
from the BitKeeper tree, and for internal MySQL developers.
|
||||
|
||||
--------------------------------------------------------
|
||||
TABLE OF CONTENTS
|
||||
--------------------------------------------------------
|
||||
1. REQUIREMENTS
|
||||
2. OBTAINING A WINDOWS SOURCE DISTRIBUTION
|
||||
3. CREATING A SOURCE PACKAGE FROM THE 'BitKeeper' TREE
|
||||
4. BUILDING 'mysql server and clients' FROM VC++ WORKSPACE
|
||||
5. BUILDING FROM 'nmake' MAKEFILES
|
||||
6. STARTING THE MYSQL SERVER FOR THE FIRST TIME
|
||||
7. TESTING THE CONNECTION
|
||||
8. SPECIAL NOTES AND CONSIDERATIONS
|
||||
|
||||
-------------------------------------------------------
|
||||
1. REQUIREMENTS
|
||||
-------------------------------------------------------
|
||||
|
||||
To build MySQL on Windows from source, you need the
|
||||
following compiler and resources available on your Windows
|
||||
system:
|
||||
|
||||
- Microsoft Visual C++ 6.0 and above
|
||||
- ~45 MB disk space
|
||||
- 64 MB RAM
|
||||
|
||||
You'll also need a MySQL source distribution, which you
|
||||
can obtain as described in section 2.
|
||||
|
||||
-------------------------------------------------------
|
||||
2. OBTAINING A WINDOWS SOURCE DISTRIBUTION
|
||||
-------------------------------------------------------
|
||||
|
||||
There are two ways you can get a Windows source distribution
|
||||
for MySQL version 4.1 and above:
|
||||
|
||||
I. Obtain a MySQL AB-distributed source distribution for the
|
||||
particular version of MySQL in which you are interested.
|
||||
Prepackaged source distributions are available for released
|
||||
versions of MySQL and can be obtained from:
|
||||
|
||||
http://www.mysql.com/downloads/
|
||||
|
||||
II. Alternatively, you can package a source distribution
|
||||
yourself from the latest BitKeeper developer source
|
||||
tree. If you plan to do this, you must create the
|
||||
package on a Unix system and then transfer it to your
|
||||
Windows system. (The reason for this is that some of the
|
||||
configuration and build steps require tools that work only
|
||||
on Unix.) The BitKeeper approach thus requires:
|
||||
|
||||
- A system running Unix, or a Unix-like system such as Linux
|
||||
- BitKeeper 3.0 installed on that system (you can obtain
|
||||
BitKeeper from http://www.bitkeeper.com)
|
||||
|
||||
If you are using the first option, you can skip the next
|
||||
section and go directly to "BUILDING 'mysql server & clients'
|
||||
FROM VC++ WORKSPACE"
|
||||
|
||||
-------------------------------------------------------
|
||||
3. CREATING A SOURCE PACKAGE FROM THE 'BitKeeper' TREE
|
||||
-------------------------------------------------------
|
||||
|
||||
To build the latest Windows source package from the current
|
||||
BitKeeper source tree, use the following instructions. Please
|
||||
note that this procedure must be performed on a system
|
||||
running a Unix or Unix-like operating system. (The procedure
|
||||
is known to work well on Linux, for example.)
|
||||
|
||||
- Clone the BitKeeper source tree for MySQL (version 4.1
|
||||
or above, as desired). For more information how to clone
|
||||
the source tree, see the instructions at:
|
||||
|
||||
http://www.mysql.com/doc/en/Installing_source_tree.html
|
||||
|
||||
- Configure and build the distribution so that you have a
|
||||
server binary to work with. One way to do this is to run
|
||||
the following command in the top-level directory of your
|
||||
source tree:
|
||||
|
||||
./BUILD/compile-pentium-max
|
||||
|
||||
- After making sure that the build process completed successfully,
|
||||
run the following utility script from top-level directory
|
||||
of your source tree:
|
||||
|
||||
./scripts/make_win_src_distribution
|
||||
|
||||
This script creates a Windows source package, to be used on
|
||||
your Windows system. You can supply different options to the
|
||||
script based on your needs. It accepts the following options:
|
||||
|
||||
--debug Debug, without creating the package
|
||||
--tmp Specify the temporary location
|
||||
--suffix Suffix name for the package
|
||||
--dirname Directory name to copy files (intermediate)
|
||||
--silent Do not list verbosely files processed
|
||||
--tar Create tar.gz package instead of .zip
|
||||
--help Show this help message
|
||||
|
||||
By default, make_win_src_distribution creates a zipped
|
||||
archive with the name mysql-$version-win-src.zip, where
|
||||
$version represents the version of your MySQL source tree.
|
||||
|
||||
- Copy or upload to your Windows machine the Windows source
|
||||
package that you have just created. To compile it, use
|
||||
the instructions in the next section.
|
||||
|
||||
---------------------------------------------------------
|
||||
4. BUILDING 'mysql server & clients' FROM VC++ WORKSPACE
|
||||
---------------------------------------------------------
|
||||
|
||||
NOTE: MySQL 4.1 and above VC++ workspace files are compatible
|
||||
with Microsoft Visual Studio 6.0 and above(7.0/.NET)
|
||||
editions and tested by MySQL folks before each
|
||||
release.
|
||||
|
||||
Unpack the Windows source zipped archive to a folder and open
|
||||
mysql.dsw from your top-level directory.
|
||||
|
||||
If you want to build both release and debug versions, then
|
||||
select 'build' -> 'buildall' option. To build only release
|
||||
or debug versions, select all appropriate workspaces from
|
||||
the 'build' -> 'batch build' option.
|
||||
|
||||
The simplest solution to building the basic clients and core
|
||||
server is to set your current active workspace as 'mysqld'
|
||||
release or debug version, and just hit 'build' or 'F7', which
|
||||
creates the necessary client binaries in the 'client_release'
|
||||
or 'client_debug' directories. The libraries are placed in the
|
||||
'lib_release' and 'lib_debug' directories for release and
|
||||
debug versions, respectively.
|
||||
|
||||
Now you have built the distribution. If you get any compiler
|
||||
errors, please cross check and email the compiler output to
|
||||
win32@lists.mysql.com for further assistance.
|
||||
|
||||
---------------------------------------------------------
|
||||
5. BUILDING FROM 'nmake' MAKEFILES
|
||||
---------------------------------------------------------
|
||||
TODO from MySQL PIEFU team.
|
||||
|
||||
---------------------------------------------------------
|
||||
6. STARTING THE MYSQL SERVER FOR THE FIRST TIME
|
||||
---------------------------------------------------------
|
||||
|
||||
The server built using the preceding instructions will
|
||||
expect that the MySQL base directory and data directory
|
||||
are C:\mysql and C:\mysql\data by default. If you want to
|
||||
test your server using the source root directory and its
|
||||
data directory as the base directory and data directory,
|
||||
you will need to tell the server their pathnames. You can
|
||||
either do this on the command line with the --basedir
|
||||
and --data-dir options, or place appropriate options in
|
||||
an option file (C:\my.cnf or the my.ini file in your
|
||||
Windows directory). If you have an existing data directory
|
||||
elsewhere that you want to use, you can specify its pathname
|
||||
instead.
|
||||
|
||||
Start your server from the 'client_release' or 'client_debug'
|
||||
directory (depending on which server you want to use). The
|
||||
general instructions are given here:
|
||||
|
||||
http://www.mysql.com/doc/en/Windows_installation.html
|
||||
|
||||
You'll have to adapt the instructions appropriately if you
|
||||
want to use a different base directory and/or data directory.
|
||||
|
||||
That's all!!! See, it's as simple to build MySQL on Windows
|
||||
as on any other platform!!!
|
||||
|
||||
---------------------------------------------------------
|
||||
7. TESTING THE CONNECTION
|
||||
---------------------------------------------------------
|
||||
|
||||
Once the server is running in standalone fashion or as a
|
||||
service based on your configuration, try to connect to it
|
||||
from the 'mysql' command line SQL interactive utility that
|
||||
exists in your 'client_release' or 'client_debug' directory.
|
||||
|
||||
---------------------------------------------------------
|
||||
8. SPECIAL NOTES AND CONSIDERATIONS
|
||||
---------------------------------------------------------
|
||||
|
||||
- For production use, MySQL AB does not advise using a MySQL
|
||||
server built by yourself from source. It is preferable to
|
||||
stick to using binaries shipped by MySQL AB.
|
||||
|
||||
- If you find something not working as expected, or you have
|
||||
suggestions about ways to improve the current build process
|
||||
on Windows, please email to win32@lists.mysql.com.
|
||||
|
||||
Thanks
|
||||
MySQL Team
|
|
@ -340,3 +340,38 @@ inline double ulonglong2double(ulonglong value)
|
|||
#define default_shared_memory_base_name "MYSQL"
|
||||
#define MYSQL_DEFAULT_CHARSET_NAME "latin1"
|
||||
#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci"
|
||||
|
||||
/* Define charsets you want */
|
||||
/* #undef HAVE_CHARSET_armscii8 */
|
||||
/* #undef HAVE_CHARSET_ascii */
|
||||
#define HAVE_CHARSET_big5 1
|
||||
#define HAVE_CHARSET_cp1250 1
|
||||
/* #undef HAVE_CHARSET_cp1251 */
|
||||
/* #undef HAVE_CHARSET_cp1256 */
|
||||
/* #undef HAVE_CHARSET_cp1257 */
|
||||
/* #undef HAVE_CHARSET_cp850 */
|
||||
/* #undef HAVE_CHARSET_cp852 */
|
||||
/* #undef HAVE_CHARSET_cp866 */
|
||||
/* #undef HAVE_CHARSET_dec8 */
|
||||
#define HAVE_CHARSET_euckr 1
|
||||
#define HAVE_CHARSET_gb2312 1
|
||||
#define HAVE_CHARSET_gbk 1
|
||||
/* #undef HAVE_CHARSET_greek */
|
||||
/* #undef HAVE_CHARSET_hebrew */
|
||||
/* #undef HAVE_CHARSET_hp8 */
|
||||
/* #undef HAVE_CHARSET_keybcs2 */
|
||||
/* #undef HAVE_CHARSET_koi8r */
|
||||
/* #undef HAVE_CHARSET_koi8u */
|
||||
#define HAVE_CHARSET_latin1 1
|
||||
#define HAVE_CHARSET_latin2 1
|
||||
/* #undef HAVE_CHARSET_latin5 */
|
||||
/* #undef HAVE_CHARSET_latin7 */
|
||||
/* #undef HAVE_CHARSET_macce */
|
||||
/* #undef HAVE_CHARSET_macroman */
|
||||
#define HAVE_CHARSET_sjis 1
|
||||
/* #undef HAVE_CHARSET_swe7 */
|
||||
#define HAVE_CHARSET_tis620 1
|
||||
#define HAVE_CHARSET_ucs2 1
|
||||
#define HAVE_CHARSET_ujis 1
|
||||
#define HAVE_CHARSET_utf8 1
|
||||
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define FT_QUERY_MAXLEN 1024
|
||||
#define HA_FT_MAXLEN 254
|
||||
#define HA_FT_MAXBYTELEN 254
|
||||
#define HA_FT_MAXCHARLEN (HA_FT_MAXBYTELEN/3)
|
||||
|
||||
typedef struct st_ft_info FT_INFO;
|
||||
struct _ft_vft
|
||||
|
|
|
@ -301,37 +301,38 @@
|
|||
#define ER_BAD_FT_COLUMN 1282
|
||||
#define ER_UNKNOWN_KEY_CACHE 1283
|
||||
#define ER_WARN_HOSTNAME_WONT_WORK 1284
|
||||
#define ER_SP_NO_RECURSIVE_CREATE 1285
|
||||
#define ER_SP_ALREADY_EXISTS 1286
|
||||
#define ER_SP_DOES_NOT_EXIST 1287
|
||||
#define ER_SP_DROP_FAILED 1288
|
||||
#define ER_SP_STORE_FAILED 1289
|
||||
#define ER_SP_LILABEL_MISMATCH 1290
|
||||
#define ER_SP_LABEL_REDEFINE 1291
|
||||
#define ER_SP_LABEL_MISMATCH 1292
|
||||
#define ER_SP_UNINIT_VAR 1293
|
||||
#define ER_SP_BADSELECT 1294
|
||||
#define ER_SP_BADRETURN 1295
|
||||
#define ER_SP_BADSTATEMENT 1296
|
||||
#define ER_UPDATE_LOG_DEPRECATED_IGNORED 1297
|
||||
#define ER_UPDATE_LOG_DEPRECATED_TRANSLATED 1298
|
||||
#define ER_QUERY_INTERRUPTED 1299
|
||||
#define ER_SP_WRONG_NO_OF_ARGS 1300
|
||||
#define ER_SP_COND_MISMATCH 1301
|
||||
#define ER_SP_NORETURN 1302
|
||||
#define ER_SP_NORETURNEND 1303
|
||||
#define ER_SP_BAD_CURSOR_QUERY 1304
|
||||
#define ER_SP_BAD_CURSOR_SELECT 1305
|
||||
#define ER_SP_CURSOR_MISMATCH 1306
|
||||
#define ER_SP_CURSOR_ALREADY_OPEN 1307
|
||||
#define ER_SP_CURSOR_NOT_OPEN 1308
|
||||
#define ER_SP_UNDECLARED_VAR 1309
|
||||
#define ER_SP_WRONG_NO_OF_FETCH_ARGS 1310
|
||||
#define ER_SP_FETCH_NO_DATA 1311
|
||||
#define ER_SP_DUP_PARAM 1312
|
||||
#define ER_SP_DUP_VAR 1313
|
||||
#define ER_SP_DUP_COND 1314
|
||||
#define ER_SP_DUP_CURS 1315
|
||||
#define ER_SP_CANT_ALTER 1316
|
||||
#define ER_SP_SUBSELECT_NYI 1317
|
||||
#define ER_ERROR_MESSAGES 318
|
||||
#define ER_UNKNOWN_TABLE_ENGINE 1285
|
||||
#define ER_SP_NO_RECURSIVE_CREATE 1286
|
||||
#define ER_SP_ALREADY_EXISTS 1287
|
||||
#define ER_SP_DOES_NOT_EXIST 1288
|
||||
#define ER_SP_DROP_FAILED 1289
|
||||
#define ER_SP_STORE_FAILED 1290
|
||||
#define ER_SP_LILABEL_MISMATCH 1291
|
||||
#define ER_SP_LABEL_REDEFINE 1292
|
||||
#define ER_SP_LABEL_MISMATCH 1293
|
||||
#define ER_SP_UNINIT_VAR 1294
|
||||
#define ER_SP_BADSELECT 1295
|
||||
#define ER_SP_BADRETURN 1296
|
||||
#define ER_SP_BADSTATEMENT 1297
|
||||
#define ER_UPDATE_LOG_DEPRECATED_IGNORED 1298
|
||||
#define ER_UPDATE_LOG_DEPRECATED_TRANSLATED 1299
|
||||
#define ER_QUERY_INTERRUPTED 1300
|
||||
#define ER_SP_WRONG_NO_OF_ARGS 1301
|
||||
#define ER_SP_COND_MISMATCH 1302
|
||||
#define ER_SP_NORETURN 1303
|
||||
#define ER_SP_NORETURNEND 1304
|
||||
#define ER_SP_BAD_CURSOR_QUERY 1305
|
||||
#define ER_SP_BAD_CURSOR_SELECT 1306
|
||||
#define ER_SP_CURSOR_MISMATCH 1307
|
||||
#define ER_SP_CURSOR_ALREADY_OPEN 1308
|
||||
#define ER_SP_CURSOR_NOT_OPEN 1309
|
||||
#define ER_SP_UNDECLARED_VAR 1310
|
||||
#define ER_SP_WRONG_NO_OF_FETCH_ARGS 1311
|
||||
#define ER_SP_FETCH_NO_DATA 1312
|
||||
#define ER_SP_DUP_PARAM 1313
|
||||
#define ER_SP_DUP_VAR 1314
|
||||
#define ER_SP_DUP_COND 1315
|
||||
#define ER_SP_DUP_CURS 1316
|
||||
#define ER_SP_CANT_ALTER 1317
|
||||
#define ER_SP_SUBSELECT_NYI 1318
|
||||
#define ER_ERROR_MESSAGES 319
|
||||
|
|
|
@ -161,6 +161,7 @@ ER_WARN_DATA_OUT_OF_RANGE, "01000", "",
|
|||
ER_WARN_DATA_TRUNCATED, "01000", "",
|
||||
ER_WRONG_NAME_FOR_INDEX, "42000", "",
|
||||
ER_WRONG_NAME_FOR_CATALOG, "42000", "",
|
||||
ER_UNKNOWN_TABLE_ENGINE, "42000", "",
|
||||
/* 5.0 */
|
||||
ER_SP_NO_RECURSIVE_CREATE, "2F003", "",
|
||||
ER_SP_ALREADY_EXISTS, "42000", "",
|
||||
|
|
|
@ -29,7 +29,7 @@ static my_bool verbose;
|
|||
static char *query=NULL;
|
||||
static uint lengths[256];
|
||||
|
||||
#define MAX_LEN (HA_FT_MAXLEN+10)
|
||||
#define MAX_LEN (HA_FT_MAXBYTELEN+10)
|
||||
#define HOW_OFTEN_TO_WRITE 10000
|
||||
|
||||
static struct my_option my_long_options[] =
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "ftdefs.h"
|
||||
|
||||
ulong ft_min_word_len=4;
|
||||
ulong ft_max_word_len=HA_FT_MAXLEN;
|
||||
ulong ft_max_word_len=HA_FT_MAXCHARLEN;
|
||||
ulong ft_query_expansion_limit=5;
|
||||
const char *ft_boolean_syntax="+ -><()~*:\"\"&|";
|
||||
|
||||
|
@ -29,7 +29,7 @@ const HA_KEYSEG ft_keysegs[FT_SEGS]={
|
|||
63, /* language (will be overwritten) */
|
||||
0, 0, 0, /* null_bit, bit_start, bit_end */
|
||||
HA_VAR_LENGTH | HA_PACK_KEY, /* flag */
|
||||
HA_FT_MAXLEN, /* length */
|
||||
HA_FT_MAXBYTELEN, /* length */
|
||||
HA_FT_WLEN, /* start */
|
||||
0, /* null_pos */
|
||||
NULL /* charset */
|
||||
|
|
|
@ -279,7 +279,7 @@ int _mi_ft_del(MI_INFO *info, uint keynr, byte *keybuf, const byte *record,
|
|||
uint _ft_make_key(MI_INFO *info, uint keynr, byte *keybuf, FT_WORD *wptr,
|
||||
my_off_t filepos)
|
||||
{
|
||||
byte buf[HA_FT_MAXLEN+16];
|
||||
byte buf[HA_FT_MAXBYTELEN+16];
|
||||
DBUG_ENTER("_ft_make_key");
|
||||
|
||||
#if HA_FT_WTYPE == HA_KEYTYPE_FLOAT
|
||||
|
|
|
@ -1979,7 +1979,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
|
|||
|
||||
sort_param.key_read=sort_ft_key_read;
|
||||
sort_param.key_write=sort_ft_key_write;
|
||||
sort_param.key_length+=FT_MAX_WORD_LEN_FOR_SORT-HA_FT_MAXLEN;
|
||||
sort_param.key_length+=FT_MAX_WORD_LEN_FOR_SORT-HA_FT_MAXBYTELEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2375,7 +2375,7 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info,
|
|||
total_key_length+=sort_param[i].key_length;
|
||||
|
||||
if (sort_param[i].keyinfo->flag & HA_FULLTEXT)
|
||||
sort_param[i].key_length+=FT_MAX_WORD_LEN_FOR_SORT-ft_max_word_len;
|
||||
sort_param[i].key_length+=FT_MAX_WORD_LEN_FOR_SORT-HA_FT_MAXBYTELEN;
|
||||
}
|
||||
sort_info.total_keys=i;
|
||||
sort_param[0].master= 1;
|
||||
|
@ -3913,7 +3913,7 @@ static my_bool mi_too_big_key_for_sort(MI_KEYDEF *key, ha_rows rows)
|
|||
{
|
||||
uint key_maxlength=key->maxlength;
|
||||
if (key->flag & HA_FULLTEXT)
|
||||
key_maxlength+=FT_MAX_WORD_LEN_FOR_SORT-HA_FT_MAXLEN;
|
||||
key_maxlength+=FT_MAX_WORD_LEN_FOR_SORT-HA_FT_MAXBYTELEN;
|
||||
return (key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY | HA_FULLTEXT) &&
|
||||
((ulonglong) rows * key_maxlength >
|
||||
(ulonglong) myisam_max_temp_length));
|
||||
|
|
|
@ -289,9 +289,9 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
|
|||
}
|
||||
|
||||
fulltext_keys++;
|
||||
key_length+= HA_FT_MAXLEN+HA_FT_WLEN;
|
||||
key_length+= HA_FT_MAXBYTELEN+HA_FT_WLEN;
|
||||
length++; /* At least one length byte */
|
||||
min_key_length_skipp+=HA_FT_MAXLEN;
|
||||
min_key_length_skipp+=HA_FT_MAXBYTELEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -322,11 +322,11 @@ static struct my_option my_long_options[] =
|
|||
{ "decode_bits", OPT_DECODE_BITS, "", (gptr*) &decode_bits,
|
||||
(gptr*) &decode_bits, 0, GET_UINT, REQUIRED_ARG, 9L, 4L, 17L, 0L, 1L, 0},
|
||||
{ "ft_min_word_len", OPT_FT_MIN_WORD_LEN, "", (gptr*) &ft_min_word_len,
|
||||
(gptr*) &ft_min_word_len, 0, GET_ULONG, REQUIRED_ARG, 4, 1, HA_FT_MAXLEN,
|
||||
(gptr*) &ft_min_word_len, 0, GET_ULONG, REQUIRED_ARG, 4, 1, HA_FT_MAXCHARLEN,
|
||||
0, 1, 0},
|
||||
{ "ft_max_word_len", OPT_FT_MAX_WORD_LEN, "", (gptr*) &ft_max_word_len,
|
||||
(gptr*) &ft_max_word_len, 0, GET_ULONG, REQUIRED_ARG, HA_FT_MAXLEN, 10,
|
||||
HA_FT_MAXLEN, 0, 1, 0},
|
||||
(gptr*) &ft_max_word_len, 0, GET_ULONG, REQUIRED_ARG, HA_FT_MAXCHARLEN, 10,
|
||||
HA_FT_MAXCHARLEN, 0, 1, 0},
|
||||
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
|
|
@ -156,7 +156,7 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
|
|||
while ((maxbuffer= (int) (records/(keys-1)+1)) != skr);
|
||||
|
||||
if ((sort_keys=(uchar **)my_malloc(keys*(sort_length+sizeof(char*))+
|
||||
HA_FT_MAXLEN, MYF(0))))
|
||||
HA_FT_MAXBYTELEN, MYF(0))))
|
||||
{
|
||||
if (my_init_dynamic_array(&buffpek, sizeof(BUFFPEK), maxbuffer,
|
||||
maxbuffer/2))
|
||||
|
@ -365,7 +365,7 @@ pthread_handler_decl(thr_find_all_keys,arg)
|
|||
}
|
||||
if ((sort_keys=(uchar **)my_malloc(keys*(sort_length+sizeof(char*))+
|
||||
((info->keyinfo->flag & HA_FULLTEXT) ?
|
||||
HA_FT_MAXLEN : 0), MYF(0))))
|
||||
HA_FT_MAXBYTELEN : 0), MYF(0))))
|
||||
{
|
||||
if (my_init_dynamic_array(&info->buffpek, sizeof(BUFFPEK),
|
||||
maxbuffer, maxbuffer/2))
|
||||
|
|
|
@ -201,17 +201,16 @@ t1 CREATE TABLE `t1` (
|
|||
) TYPE=HEAP DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
SET SESSION table_type="gemini";
|
||||
ERROR 42000: Unknown table engine 'gemini'
|
||||
SELECT @@table_type;
|
||||
@@table_type
|
||||
GEMINI
|
||||
HEAP
|
||||
CREATE TABLE t1 (a int not null);
|
||||
Warnings:
|
||||
Warning 1265 Using storage engine MYISAM for table 't1'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL default '0'
|
||||
) TYPE=MyISAM DEFAULT CHARSET=latin1
|
||||
) TYPE=HEAP DEFAULT CHARSET=latin1
|
||||
SET SESSION table_type=default;
|
||||
drop table t1;
|
||||
create table t1 ( k1 varchar(2), k2 int, primary key(k1,k2));
|
||||
|
@ -347,17 +346,16 @@ t1 CREATE TABLE `t1` (
|
|||
) TYPE=HEAP DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
SET SESSION table_type="gemini";
|
||||
ERROR 42000: Unknown table engine 'gemini'
|
||||
SELECT @@table_type;
|
||||
@@table_type
|
||||
GEMINI
|
||||
HEAP
|
||||
CREATE TABLE t1 (a int not null);
|
||||
Warnings:
|
||||
Warning 1265 Using storage engine MYISAM for table 't1'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL default '0'
|
||||
) TYPE=MyISAM DEFAULT CHARSET=latin1
|
||||
) TYPE=HEAP DEFAULT CHARSET=latin1
|
||||
SET SESSION table_type=default;
|
||||
drop table t1;
|
||||
create table t1(a int,b int,c int unsigned,d date,e char,f datetime,g time,h blob);
|
||||
|
|
|
@ -2,6 +2,6 @@ show variables like "ft\_%";
|
|||
Variable_name Value
|
||||
ft_boolean_syntax + -><()~*:""&|
|
||||
ft_min_word_len 4
|
||||
ft_max_word_len 254
|
||||
ft_max_word_len 84
|
||||
ft_query_expansion_limit 20
|
||||
ft_stopword_file (built-in)
|
||||
|
|
|
@ -143,7 +143,7 @@ Variable_name Value
|
|||
table_type HEAP
|
||||
show global variables like 'table_type';
|
||||
Variable_name Value
|
||||
table_type INNODB
|
||||
table_type InnoDB
|
||||
set GLOBAL query_cache_size=100000;
|
||||
set GLOBAL myisam_max_sort_file_size=2000000;
|
||||
show global variables like 'myisam_max_sort_file_size';
|
||||
|
@ -241,7 +241,7 @@ ERROR HY000: Unknown system variable 'unknown_variable'
|
|||
set max_join_size="hello";
|
||||
ERROR 42000: Wrong argument type to variable 'max_join_size'
|
||||
set table_type=UNKNOWN_TABLE_TYPE;
|
||||
ERROR 42000: Variable 'table_type' can't be set to the value of 'UNKNOWN_TABLE_TYPE'
|
||||
ERROR 42000: Unknown table engine 'UNKNOWN_TABLE_TYPE'
|
||||
set table_type=INNODB, big_tables=2;
|
||||
ERROR 42000: Variable 'big_tables' can't be set to the value of '2'
|
||||
show local variables like 'table_type';
|
||||
|
|
|
@ -121,8 +121,8 @@ select @@warning_count;
|
|||
drop table t1;
|
||||
create table t1 (id int) type=isam;
|
||||
Warnings:
|
||||
Warning 1265 Using storage engine MYISAM for table 't1'
|
||||
Warning 1265 Using storage engine MyISAM for table 't1'
|
||||
alter table t1 type=isam;
|
||||
Warnings:
|
||||
Warning 1265 Using storage engine MYISAM for table 't1'
|
||||
Warning 1265 Using storage engine MyISAM for table 't1'
|
||||
drop table t1;
|
||||
|
|
|
@ -157,7 +157,7 @@ SELECT @@table_type;
|
|||
CREATE TABLE t1 (a int not null);
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
# Test what happens when using a non existing table type
|
||||
--error 1285
|
||||
SET SESSION table_type="gemini";
|
||||
SELECT @@table_type;
|
||||
CREATE TABLE t1 (a int not null);
|
||||
|
@ -277,7 +277,7 @@ SELECT @@table_type;
|
|||
CREATE TABLE t1 (a int not null);
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
# Test what happens when using a non existing table type
|
||||
--error 1285
|
||||
SET SESSION table_type="gemini";
|
||||
SELECT @@table_type;
|
||||
CREATE TABLE t1 (a int not null);
|
||||
|
|
|
@ -136,7 +136,7 @@ set big_tables="OFFF";
|
|||
set unknown_variable=1;
|
||||
--error 1232
|
||||
set max_join_size="hello";
|
||||
--error 1231
|
||||
--error 1285
|
||||
set table_type=UNKNOWN_TABLE_TYPE;
|
||||
--error 1231
|
||||
set table_type=INNODB, big_tables=2;
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
The MySQL Benchmarks
|
||||
|
||||
These tests needs a MySQL version of at least 3.20.28 or 3.21.10.
|
||||
NOTE: With MySQL 3.20.# you have to use '--skip-in', because MySQL 3.20
|
||||
doesn't support the IN operator.
|
||||
These tests require a MySQL version of at least 3.20.28 or 3.21.10.
|
||||
|
||||
Currently the following servers are supported:
|
||||
MySQL 3.20 and 3.21, PostgreSQL 6.#, mSQL 2.# and Solid Server 2.2
|
||||
|
||||
In this directory are the queries and raw data files used to populate
|
||||
the MySQL benchmarks. In order to run the benchmarks you should normally
|
||||
execute a command like the following:
|
||||
The benchmark directory contains the query files and raw data files used to
|
||||
populate the MySQL benchmark tables. In order to run the benchmarks, you
|
||||
should normally execute a command such as the following:
|
||||
|
||||
run-all-tests --server=mysql --cmp=mysql,pg,solid --user=test --password=test --log
|
||||
|
||||
The above means that one wants to run the benchmark with MySQL. The limits
|
||||
should be taken from all of mysql,PostgreSQL and Solid. Login name and
|
||||
password is 'test'. The result should be saved as a RUN file in the output
|
||||
This means that you want to run the benchmarks with MySQL. The
|
||||
limits should be taken from all of MySQL, PostgreSQL, and Solid.
|
||||
The login name and password for connecting to the server both are
|
||||
``test''. The result should be saved as a RUN file in the output
|
||||
directory.
|
||||
|
||||
When the above script has run you will have the individual results and the
|
||||
When run-all-tests has finished, will have the individual results and the
|
||||
the total RUN- file in the output directory.
|
||||
|
||||
If you want to look at some old results, try:
|
||||
If you want to look at some old results, use the compare-results script.
|
||||
For example:
|
||||
|
||||
compare-results --dir=Results --cmp=mysql,pg,solid
|
||||
compare-results --dir=Results --cmp=mysql,pg,solid --relative
|
||||
|
@ -29,8 +29,9 @@ compare-results --dir=Results --cmp=mysql,pg,solid --relative
|
|||
compare-results --dir=Results --cmp=msql,mysql,pg,solid
|
||||
compare-results --dir=Results --cmp=msql,mysql,pg,solid --relative
|
||||
|
||||
compare-results --dir=results --server=mysql --same-server --cmp=mysql,pg,solid
|
||||
compare-results --dir=Results --server=mysql --same-server --cmp=mysql,pg,solid
|
||||
|
||||
Some of the files in the benchmark directory are:
|
||||
|
||||
File Description
|
||||
|
||||
|
@ -38,24 +39,21 @@ Data/ATIS Contains data for 29 related tables used in the ATIS tests.
|
|||
Data/Wisconsin Contains data for the Wisconsin benchmark.
|
||||
Results Contains old benchmark results.
|
||||
Makefile.am Automake Makefile
|
||||
Overview-paper A paper nicked from the net about database bench-
|
||||
marking.
|
||||
README This file.
|
||||
test-ATIS.sh Cretation of 29 tables and a lot of selects on them.
|
||||
test-ATIS.sh Creation of 29 tables and a lot of selects on them.
|
||||
test-connect.sh Test how fast a connection to the server is.
|
||||
test-create.sh Test how fast a table is created.
|
||||
test-insert.sh Test create and fill of a table.
|
||||
test-wisconsin.sh This is a port of the PostgreSQL version of this
|
||||
benchmark.
|
||||
run-all-test Use this to run all tests. When all test are run,
|
||||
use the --log --use-old option to get a RUN-file.
|
||||
compare-results Makes a compare table from different RUN files.
|
||||
server-cfg Contains the limit and functions for all supported
|
||||
test-wisconsin.sh A port of the PostgreSQL version of this benchmark.
|
||||
run-all-tests Use this to run all tests. When all tests are run,
|
||||
use the --log and --use-old options to get a RUN-file.
|
||||
compare-results Generates a comparison table from different RUN files.
|
||||
server-cfg Contains the limits and functions for all supported
|
||||
SQL servers. If you want to add a new server, this
|
||||
should be the only file that neads to be changed.
|
||||
|
||||
|
||||
Most of the test should use portable SQL to make it possible to
|
||||
Most of the tests should use portable SQL to make it possible to
|
||||
compare different databases. Sometimes SQL extensions can make things
|
||||
a lot faster. In this case the test may use the extensions if the --fast
|
||||
option is used.
|
||||
|
@ -65,12 +63,10 @@ Useful options to all test-scripts (and run-all-tests):
|
|||
--host=# Hostname for MySQL server (default: localhost)
|
||||
--db=# Database to use (default: test)
|
||||
--fast Allow use of any non-standard SQL extension to
|
||||
do the get things done faster.
|
||||
--skip-in Don't do test with the IN operation (if the SQL server
|
||||
hasn't implemented this, for example mSQL and MySQL 3.20).
|
||||
get things done faster.
|
||||
--lock-tables Use table locking to get more speed.
|
||||
|
||||
From a text at http://www.mgt.ncu.edu.tw/CSIM/Paper/sixth/11.html
|
||||
From a text at http://www.mgt.ncu.edu.tw/CSIM/Paper/sixth/11.html:
|
||||
|
||||
The Wisconsin Benchmark
|
||||
|
||||
|
@ -81,13 +77,13 @@ systematically measure and compare the performance of relational
|
|||
database systems with database machines. The benchmark is a
|
||||
single-user and single-factor experiment using a synthetic database
|
||||
and a controlled workload. It measures the query optimization
|
||||
performance of database systems with 32 query types to exe cise the
|
||||
performance of database systems with 32 query types to exercise the
|
||||
components of the proposed systems. The query suites include
|
||||
selection, join, projection, aggregate, and simple update queries.
|
||||
|
||||
The test database consists of four generic relations. The tenk
|
||||
relation is the key table and most used. Two data types of small
|
||||
integer number and character string are utilized. Data values are
|
||||
integer numbers and character strings are utilized. Data values are
|
||||
uniformly distributed. The primary metric is the query elapsed
|
||||
time. The main criticisms of the benchmark include the nature of
|
||||
single-user workload, the simplistic database structure, and the
|
||||
|
|
|
@ -50,14 +50,33 @@ ulong ha_read_count, ha_write_count, ha_delete_count, ha_update_count,
|
|||
ha_commit_count, ha_rollback_count,
|
||||
ha_read_rnd_count, ha_read_rnd_next_count;
|
||||
|
||||
const char *ha_table_type[] = {
|
||||
"", "DIAB_ISAM","HASH","MISAM","PISAM","RMS_ISAM","HEAP", "ISAM",
|
||||
"MRG_ISAM","MYISAM", "MRG_MYISAM", "BDB", "INNODB", "GEMINI", "?", "?",NullS
|
||||
};
|
||||
static SHOW_COMP_OPTION have_yes= SHOW_OPTION_YES;
|
||||
|
||||
TYPELIB ha_table_typelib=
|
||||
struct show_table_type_st sys_table_types[]=
|
||||
{
|
||||
array_elements(ha_table_type)-3, "", ha_table_type
|
||||
{"MyISAM", &have_yes,
|
||||
"Default type from 3.23 with great performance", DB_TYPE_MYISAM},
|
||||
{"HEAP", &have_yes,
|
||||
"Hash based, stored in memory, useful for temporary tables", DB_TYPE_HEAP},
|
||||
{"MEMORY", &have_yes,
|
||||
"Alias for HEAP", DB_TYPE_HEAP},
|
||||
{"MERGE", &have_yes,
|
||||
"Collection of identical MyISAM tables", DB_TYPE_MRG_MYISAM},
|
||||
{"MRG_MYISAM",&have_yes,
|
||||
"Alias for MERGE", DB_TYPE_MRG_MYISAM},
|
||||
{"ISAM", &have_isam,
|
||||
"Obsolete table type; Is replaced by MyISAM", DB_TYPE_ISAM},
|
||||
{"MRG_ISAM", &have_isam,
|
||||
"Obsolete table type; Is replaced by MRG_MYISAM", DB_TYPE_MRG_ISAM},
|
||||
{"InnoDB", &have_innodb,
|
||||
"Supports transactions, row-level locking and foreign keys", DB_TYPE_INNODB},
|
||||
{"INNOBASE", &have_innodb,
|
||||
"Alias for INNODB", DB_TYPE_INNODB},
|
||||
{"BDB", &have_berkeley_db,
|
||||
"Supports transactions and page-level locking", DB_TYPE_BERKELEY_DB},
|
||||
{"BERKELEYDB",&have_berkeley_db,
|
||||
"Alias for BDB", DB_TYPE_BERKELEY_DB},
|
||||
{NullS, NULL, NullS, DB_TYPE_UNKNOWN}
|
||||
};
|
||||
|
||||
const char *ha_row_type[] = {
|
||||
|
@ -70,35 +89,31 @@ const char *tx_isolation_names[] =
|
|||
TYPELIB tx_isolation_typelib= {array_elements(tx_isolation_names)-1,"",
|
||||
tx_isolation_names};
|
||||
|
||||
enum db_type ha_resolve_by_name(char *name, uint namelen)
|
||||
enum db_type ha_resolve_by_name(const char *name, uint namelen)
|
||||
{
|
||||
enum db_type result = DB_TYPE_UNKNOWN;
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "HEAP") ||
|
||||
!my_strcasecmp(&my_charset_latin1, name, "MEMORY")) {
|
||||
result = DB_TYPE_HEAP;
|
||||
} else
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "MRG_MYISAM") ||
|
||||
!my_strcasecmp(&my_charset_latin1, name, "MERGE")) {
|
||||
result = DB_TYPE_MRG_MYISAM;
|
||||
} else
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "MYISAM")) {
|
||||
result = DB_TYPE_MYISAM;
|
||||
} else
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "BDB") ||
|
||||
!my_strcasecmp(&my_charset_latin1, name, "BERKELEYDB")) {
|
||||
result = DB_TYPE_BERKELEY_DB;
|
||||
} else
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "INNODB") ||
|
||||
!my_strcasecmp(&my_charset_latin1, name, "INNOBASE")) {
|
||||
result = DB_TYPE_INNODB;
|
||||
} else
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "ISAM")) {
|
||||
result = DB_TYPE_ISAM;
|
||||
} else
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, "DEFAULT")) {
|
||||
result = (enum db_type) current_thd->variables.table_type;
|
||||
return(enum db_type) current_thd->variables.table_type;
|
||||
}
|
||||
return result;
|
||||
|
||||
show_table_type_st *types;
|
||||
for (types= sys_table_types; types->type; types++)
|
||||
{
|
||||
if (!my_strcasecmp(&my_charset_latin1, name, types->type))
|
||||
return(enum db_type)types->db_type;
|
||||
}
|
||||
return DB_TYPE_UNKNOWN;
|
||||
}
|
||||
|
||||
const char *ha_get_table_type(enum db_type db_type)
|
||||
{
|
||||
show_table_type_st *types;
|
||||
for (types= sys_table_types; types->type; types++)
|
||||
{
|
||||
if (db_type == types->db_type)
|
||||
return types->type;
|
||||
}
|
||||
|
||||
return "none";
|
||||
}
|
||||
|
||||
/* Use other database handler if databasehandler is not incompiled */
|
||||
|
@ -136,12 +151,13 @@ enum db_type ha_checktype(enum db_type database_type)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
/* Use this as default */
|
||||
#if 0
|
||||
return((enum db_type) current_thd->variables.table_type);
|
||||
#else
|
||||
return(DB_TYPE_MYISAM);
|
||||
#endif
|
||||
|
||||
return
|
||||
DB_TYPE_UNKNOWN != (enum db_type) current_thd->variables.table_type ?
|
||||
(enum db_type) current_thd->variables.table_type :
|
||||
DB_TYPE_UNKNOWN != (enum db_type) global_system_variables.table_type ?
|
||||
(enum db_type) global_system_variables.table_type :
|
||||
DB_TYPE_MYISAM;
|
||||
} /* ha_checktype */
|
||||
|
||||
|
||||
|
|
|
@ -131,6 +131,13 @@ enum db_type { DB_TYPE_UNKNOWN=0,DB_TYPE_DIAB_ISAM=1,
|
|||
DB_TYPE_BERKELEY_DB, DB_TYPE_INNODB, DB_TYPE_GEMINI,
|
||||
DB_TYPE_DEFAULT };
|
||||
|
||||
struct show_table_type_st {
|
||||
const char *type;
|
||||
SHOW_COMP_OPTION *value;
|
||||
const char *comment;
|
||||
enum db_type db_type;
|
||||
};
|
||||
|
||||
enum row_type { ROW_TYPE_NOT_USED=-1, ROW_TYPE_DEFAULT, ROW_TYPE_FIXED,
|
||||
ROW_TYPE_DYNAMIC, ROW_TYPE_COMPRESSED};
|
||||
|
||||
|
@ -372,8 +379,9 @@ public:
|
|||
|
||||
/* Some extern variables used with handlers */
|
||||
|
||||
extern struct show_table_type_st sys_table_types[];
|
||||
extern const char *ha_row_type[];
|
||||
extern TYPELIB ha_table_typelib, tx_isolation_typelib;
|
||||
extern TYPELIB tx_isolation_typelib;
|
||||
|
||||
/* Wrapper functions */
|
||||
#define ha_commit_stmt(thd) (ha_commit_trans((thd), &((thd)->transaction.stmt)))
|
||||
|
@ -383,7 +391,8 @@ extern TYPELIB ha_table_typelib, tx_isolation_typelib;
|
|||
|
||||
#define ha_supports_generate(T) (T != DB_TYPE_INNODB)
|
||||
|
||||
enum db_type ha_resolve_by_name(char *name, uint namelen);
|
||||
enum db_type ha_resolve_by_name(const char *name, uint namelen);
|
||||
const char *ha_get_table_type(enum db_type db_type);
|
||||
handler *get_new_handler(TABLE *table, enum db_type db_type);
|
||||
my_off_t ha_get_ptr(byte *ptr, uint pack_length);
|
||||
void ha_store_ptr(byte *buff, uint pack_length, my_off_t pos);
|
||||
|
|
|
@ -860,7 +860,6 @@ extern MY_BITMAP temp_pool;
|
|||
extern String my_empty_string;
|
||||
extern String my_null_string;
|
||||
extern SHOW_VAR init_vars[],status_vars[], internal_vars[];
|
||||
extern struct show_table_type_st table_type_vars[];
|
||||
extern SHOW_COMP_OPTION have_isam;
|
||||
extern SHOW_COMP_OPTION have_innodb;
|
||||
extern SHOW_COMP_OPTION have_berkeley_db;
|
||||
|
|
|
@ -3650,7 +3650,7 @@ enum options_mysqld
|
|||
OPT_MAX_SEEKS_FOR_KEY, OPT_MAX_TMP_TABLES, OPT_MAX_USER_CONNECTIONS,
|
||||
OPT_MAX_LENGTH_FOR_SORT_DATA,
|
||||
OPT_MAX_WRITE_LOCK_COUNT, OPT_BULK_INSERT_BUFFER_SIZE,
|
||||
OPT_MAX_ERROR_COUNT, OPT_MAX_PREP_STMT,
|
||||
OPT_MAX_ERROR_COUNT,
|
||||
OPT_MYISAM_BLOCK_SIZE, OPT_MYISAM_MAX_EXTRA_SORT_FILE_SIZE,
|
||||
OPT_MYISAM_MAX_SORT_FILE_SIZE, OPT_MYISAM_SORT_BUFFER_SIZE,
|
||||
OPT_NET_BUFFER_LENGTH, OPT_NET_RETRY_COUNT,
|
||||
|
@ -4277,11 +4277,11 @@ log and this option does nothing anymore.",
|
|||
{ "ft_min_word_len", OPT_FT_MIN_WORD_LEN,
|
||||
"The minimum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable.",
|
||||
(gptr*) &ft_min_word_len, (gptr*) &ft_min_word_len, 0, GET_ULONG,
|
||||
REQUIRED_ARG, 4, 1, HA_FT_MAXLEN, 0, 1, 0},
|
||||
REQUIRED_ARG, 4, 1, HA_FT_MAXCHARLEN, 0, 1, 0},
|
||||
{ "ft_max_word_len", OPT_FT_MAX_WORD_LEN,
|
||||
"The maximum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable.",
|
||||
(gptr*) &ft_max_word_len, (gptr*) &ft_max_word_len, 0, GET_ULONG,
|
||||
REQUIRED_ARG, HA_FT_MAXLEN, 10, HA_FT_MAXLEN, 0, 1, 0},
|
||||
REQUIRED_ARG, HA_FT_MAXCHARLEN, 10, HA_FT_MAXCHARLEN, 0, 1, 0},
|
||||
{ "ft_query_expansion_limit", OPT_FT_QUERY_EXPANSION_LIMIT,
|
||||
"Number of best matches to use for query expansion",
|
||||
(gptr*) &ft_query_expansion_limit, (gptr*) &ft_query_expansion_limit, 0, GET_ULONG,
|
||||
|
@ -4440,11 +4440,6 @@ The minimum value for this variable is 4096.",
|
|||
(gptr*) &global_system_variables.max_length_for_sort_data,
|
||||
(gptr*) &max_system_variables.max_length_for_sort_data, 0, GET_ULONG,
|
||||
REQUIRED_ARG, 1024, 4, 8192*1024L, 0, 1, 0},
|
||||
{"max_prepared_statements", OPT_MAX_PREP_STMT,
|
||||
"Max number of prepared_statements for a thread.",
|
||||
(gptr*) &global_system_variables.max_prep_stmt_count,
|
||||
(gptr*) &max_system_variables.max_prep_stmt_count, 0, GET_ULONG,
|
||||
REQUIRED_ARG, DEFAULT_PREP_STMT_COUNT, 0, ~0L, 0, 1, 0},
|
||||
{"max_relay_log_size", OPT_MAX_RELAY_LOG_SIZE,
|
||||
"If non-zero: relay log will be rotated automatically when the size exceeds this value; if zero (the default): when the size exceeds max_binlog_size. 0 expected, the minimum value for this variable is 4096.",
|
||||
(gptr*) &max_relay_log_size, (gptr*) &max_relay_log_size, 0, GET_ULONG,
|
||||
|
@ -5457,13 +5452,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
break;
|
||||
case OPT_TABLE_TYPE:
|
||||
{
|
||||
int type;
|
||||
if ((type=find_type(argument, &ha_table_typelib, 2)) <= 0)
|
||||
if ((enum db_type)((global_system_variables.table_type=
|
||||
ha_resolve_by_name(argument, strlen(argument)))) == DB_TYPE_UNKNOWN)
|
||||
{
|
||||
fprintf(stderr,"Unknown table type: %s\n",argument);
|
||||
exit(1);
|
||||
}
|
||||
global_system_variables.table_type= type-1;
|
||||
break;
|
||||
}
|
||||
case OPT_SERVER_ID:
|
||||
|
|
|
@ -203,8 +203,6 @@ sys_var_thd_ha_rows sys_sql_max_join_size("sql_max_join_size",
|
|||
&SV::max_join_size,
|
||||
fix_max_join_size);
|
||||
#endif
|
||||
sys_var_thd_ulong sys_max_prep_stmt_count("max_prepared_statements",
|
||||
&SV::max_prep_stmt_count);
|
||||
sys_var_long_ptr sys_max_relay_log_size("max_relay_log_size",
|
||||
&max_relay_log_size,
|
||||
fix_max_relay_log_size);
|
||||
|
@ -285,8 +283,8 @@ sys_var_thd_ulong sys_sort_buffer("sort_buffer_size",
|
|||
&SV::sortbuff_size);
|
||||
sys_var_thd_sql_mode sys_sql_mode("sql_mode",
|
||||
&SV::sql_mode);
|
||||
sys_var_thd_enum sys_table_type("table_type", &SV::table_type,
|
||||
&ha_table_typelib);
|
||||
sys_var_thd_table_type sys_table_type("table_type",
|
||||
&SV::table_type);
|
||||
sys_var_long_ptr sys_table_cache_size("table_cache",
|
||||
&table_cache_size);
|
||||
sys_var_long_ptr sys_thread_cache_size("thread_cache_size",
|
||||
|
@ -463,7 +461,6 @@ sys_var *sys_variables[]=
|
|||
&sys_max_heap_table_size,
|
||||
&sys_max_join_size,
|
||||
&sys_max_length_for_sort_data,
|
||||
&sys_max_prep_stmt_count,
|
||||
&sys_max_relay_log_size,
|
||||
&sys_max_seeks_for_key,
|
||||
&sys_max_sort_length,
|
||||
|
@ -654,7 +651,6 @@ struct show_var_st init_vars[]= {
|
|||
{sys_max_seeks_for_key.name, (char*) &sys_max_seeks_for_key, SHOW_SYS},
|
||||
{sys_max_length_for_sort_data.name, (char*) &sys_max_length_for_sort_data,
|
||||
SHOW_SYS},
|
||||
{sys_max_prep_stmt_count.name,(char*) &sys_max_prep_stmt_count, SHOW_SYS},
|
||||
{sys_max_sort_length.name, (char*) &sys_max_sort_length, SHOW_SYS},
|
||||
{sys_max_user_connections.name,(char*) &sys_max_user_connections, SHOW_SYS},
|
||||
{sys_max_tmp_tables.name, (char*) &sys_max_tmp_tables, SHOW_SYS},
|
||||
|
@ -2434,6 +2430,61 @@ int set_var_password::update(THD *thd)
|
|||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Functions to handle table_type
|
||||
****************************************************************************/
|
||||
|
||||
bool sys_var_thd_table_type::check(THD *thd, set_var *var)
|
||||
/* Based upon sys_var::check_enum() */
|
||||
{
|
||||
char buff[80];
|
||||
const char *value;
|
||||
String str(buff, sizeof(buff), &my_charset_latin1), *res;
|
||||
|
||||
if (var->value->result_type() == STRING_RESULT)
|
||||
{
|
||||
if (!(res=var->value->val_str(&str)) ||
|
||||
!(var->save_result.ulong_value=
|
||||
(ulong) ha_resolve_by_name(res->ptr(), res->length())))
|
||||
{
|
||||
value= res ? res->c_ptr() : "NULL";
|
||||
goto err;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
err:
|
||||
my_error(ER_UNKNOWN_TABLE_ENGINE, MYF(0), value);
|
||||
return 1;
|
||||
}
|
||||
|
||||
byte *sys_var_thd_table_type::value_ptr(THD *thd, enum_var_type type,
|
||||
LEX_STRING *base)
|
||||
{
|
||||
ulong val;
|
||||
val= ((type == OPT_GLOBAL) ? global_system_variables.*offset :
|
||||
thd->variables.*offset);
|
||||
const char *table_type= ha_get_table_type((enum db_type)val);
|
||||
return (byte *)table_type;
|
||||
}
|
||||
|
||||
void sys_var_thd_table_type::set_default(THD *thd, enum_var_type type)
|
||||
{
|
||||
if (type == OPT_GLOBAL)
|
||||
global_system_variables.*offset= (ulong) DB_TYPE_MYISAM;
|
||||
else
|
||||
thd->variables.*offset= (ulong) (global_system_variables.*offset);
|
||||
}
|
||||
|
||||
bool sys_var_thd_table_type::update(THD *thd, set_var *var)
|
||||
{
|
||||
if (var->type == OPT_GLOBAL)
|
||||
global_system_variables.*offset= var->save_result.ulong_value;
|
||||
else
|
||||
thd->variables.*offset= var->save_result.ulong_value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Functions to handle sql_mode
|
||||
****************************************************************************/
|
||||
|
|
|
@ -343,6 +343,26 @@ public:
|
|||
};
|
||||
|
||||
|
||||
class sys_var_thd_table_type :public sys_var_thd
|
||||
{
|
||||
protected:
|
||||
ulong SV::*offset;
|
||||
public:
|
||||
sys_var_thd_table_type(const char *name_arg, ulong SV::*offset_arg)
|
||||
:sys_var_thd(name_arg), offset(offset_arg)
|
||||
{}
|
||||
bool check(THD *thd, set_var *var);
|
||||
SHOW_TYPE type() { return SHOW_CHAR; }
|
||||
bool check_update_type(Item_result type)
|
||||
{
|
||||
return type != STRING_RESULT; /* Only accept strings */
|
||||
}
|
||||
void set_default(THD *thd, enum_var_type type);
|
||||
bool update(THD *thd, set_var *var);
|
||||
byte *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base);
|
||||
};
|
||||
|
||||
|
||||
class sys_var_thd_bit :public sys_var_thd
|
||||
{
|
||||
sys_update_func update_func;
|
||||
|
|
|
@ -297,6 +297,7 @@ character-set=latin2
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -291,6 +291,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -299,6 +299,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -288,6 +288,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -293,6 +293,7 @@ character-set=latin7
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -288,6 +288,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -300,6 +300,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -288,6 +288,7 @@ character-set=greek
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -290,6 +290,7 @@ character-set=latin2
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -288,6 +288,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -290,6 +290,7 @@ character-set=ujis
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -288,6 +288,7 @@ character-set=euckr
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -290,6 +290,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -290,6 +290,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -292,6 +292,7 @@ character-set=latin2
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -289,6 +289,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -292,6 +292,7 @@ character-set=latin2
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -290,6 +290,7 @@ character-set=koi8r
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -283,6 +283,7 @@ character-set=cp1250
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -296,6 +296,7 @@ character-set=latin2
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -290,6 +290,7 @@ character-set=latin1
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -288,6 +288,7 @@ character-set=latin1
|
|||
"Kolumn '%-.64s' kan inte vara del av ett FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -293,6 +293,7 @@ character-set=koi8u
|
|||
"Column '%-.64s' cannot be part of FULLTEXT index",
|
||||
"Unknown key cache '%-.100s'",
|
||||
"MySQL is started in --skip-name-resolve mode. You need to restart it without this switch for this grant to work",
|
||||
"Unknown table engine '%s'",
|
||||
"Can't create a %s from within another stored routine"
|
||||
"%s %s already exists"
|
||||
"%s %s does not exist"
|
||||
|
|
|
@ -375,7 +375,6 @@ struct system_variables
|
|||
ulong max_error_count;
|
||||
ulong max_heap_table_size;
|
||||
ulong max_length_for_sort_data;
|
||||
ulong max_prep_stmt_count;
|
||||
ulong max_sort_length;
|
||||
ulong max_tmp_tables;
|
||||
ulong myisam_repair_threads;
|
||||
|
@ -621,6 +620,11 @@ public:
|
|||
// TODO: document the variables below
|
||||
MYSQL_LOCK *lock; /* Current locks */
|
||||
MYSQL_LOCK *locked_tables; /* Tables locked with LOCK */
|
||||
/*
|
||||
One thread can hold up to one named user-level lock. This variable
|
||||
points to a lock object if the lock is present. See item_func.cc and
|
||||
chapter 'Miscellaneous functions', for functions GET_LOCK, RELEASE_LOCK.
|
||||
*/
|
||||
ULL *ull;
|
||||
PREP_STMT *last_prepared_stmt;
|
||||
#ifndef DBUG_OFF
|
||||
|
|
|
@ -173,33 +173,6 @@ int mysqld_show_tables(THD *thd,const char *db,const char *wild)
|
|||
** List all table types supported
|
||||
***************************************************************************/
|
||||
|
||||
struct show_table_type_st {
|
||||
const char *type;
|
||||
SHOW_COMP_OPTION *value;
|
||||
const char *comment;
|
||||
};
|
||||
|
||||
|
||||
SHOW_COMP_OPTION have_yes= SHOW_OPTION_YES;
|
||||
|
||||
static struct show_table_type_st sys_table_types[]=
|
||||
{
|
||||
{"MyISAM", &have_yes,
|
||||
"Default type from 3.23 with great performance"},
|
||||
{"HEAP" , &have_yes,
|
||||
"Hash based, stored in memory, useful for temporary tables"},
|
||||
{"MERGE", &have_yes,
|
||||
"Collection of identical MyISAM tables"},
|
||||
{"ISAM", &have_isam,
|
||||
"Obsolete table type; Is replaced by MyISAM"},
|
||||
{"InnoDB", &have_innodb,
|
||||
"Supports transactions, row-level locking and foreign keys"},
|
||||
{"BDB", &have_berkeley_db,
|
||||
"Supports transactions and page-level locking"},
|
||||
{NullS, NULL, NullS}
|
||||
};
|
||||
|
||||
|
||||
int mysqld_show_table_types(THD *thd)
|
||||
{
|
||||
List<Item> field_list;
|
||||
|
@ -213,8 +186,8 @@ int mysqld_show_table_types(THD *thd)
|
|||
if (protocol->send_fields(&field_list,1))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
const char *default_type_name=
|
||||
ha_table_typelib.type_names[thd->variables.table_type];
|
||||
const char *default_type_name=
|
||||
ha_get_table_type((enum db_type)thd->variables.table_type);
|
||||
|
||||
show_table_type_st *types;
|
||||
for (types= sys_table_types; types->type; types++)
|
||||
|
|
|
@ -400,7 +400,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
ER_WARN_USING_OTHER_HANDLER,
|
||||
ER(ER_WARN_USING_OTHER_HANDLER),
|
||||
ha_table_typelib.type_names[new_db_type],
|
||||
ha_get_table_type(new_db_type),
|
||||
table_name);
|
||||
}
|
||||
db_options=create_info->table_options;
|
||||
|
@ -2007,7 +2007,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
ER_WARN_USING_OTHER_HANDLER,
|
||||
ER(ER_WARN_USING_OTHER_HANDLER),
|
||||
ha_table_typelib.type_names[new_db_type],
|
||||
ha_get_table_type(new_db_type),
|
||||
new_name);
|
||||
}
|
||||
if (create_info->row_type == ROW_TYPE_NOT_USED)
|
||||
|
|
|
@ -2089,7 +2089,7 @@ table_types:
|
|||
{
|
||||
$$ = ha_resolve_by_name($1.str,$1.length);
|
||||
if ($$ == DB_TYPE_UNKNOWN) {
|
||||
net_printf(YYTHD, ER_UNKNOWN_TABLE, $1.str);
|
||||
net_printf(YYTHD, ER_UNKNOWN_TABLE_ENGINE, $1.str);
|
||||
YYABORT;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -84,7 +84,6 @@
|
|||
#define TRANS_MEM_ROOT_PREALLOC 4096
|
||||
|
||||
#define DEFAULT_ERROR_COUNT 64
|
||||
#define DEFAULT_PREP_STMT_COUNT 64
|
||||
#define EXTRA_RECORDS 10 /* Extra records in sort */
|
||||
#define SCROLL_EXTRA 5 /* Extra scroll-rows. */
|
||||
#define FIELD_NAME_USED ((uint) 32768) /* Bit set if fieldname used */
|
||||
|
|
Loading…
Add table
Reference in a new issue