mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug4-5.0
This commit is contained in:
commit
bb9a634e5c
15 changed files with 55 additions and 50 deletions
|
@ -84,7 +84,7 @@ BSC32=bscmake.exe
|
|||
# ADD BSC32 /nologo
|
||||
LINK32=xilink6.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib ..\extra\yassl\Release\yassl.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld-debug.exe" /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib ..\extra\yassl\Debug\yassl.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld-debug.exe" /pdbtype:sept
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 nt"
|
||||
|
||||
|
|
|
@ -51,8 +51,8 @@ BSC32=bscmake.exe
|
|||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Debug\yassl.lib /nologo /out:"..\client_debug\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Debug\yassl.lib /nologo /out:"..\client_debug\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysql_client_test - Win32 Release"
|
||||
|
||||
|
@ -76,8 +76,8 @@ BSC32=bscmake.exe
|
|||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\client_release\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\client_release\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
|
|
@ -83,18 +83,19 @@ sub mtr_script_exists (@) {
|
|||
}
|
||||
|
||||
sub mtr_exe_exists (@) {
|
||||
foreach my $path ( @_ )
|
||||
my @path= @_;
|
||||
map {$_.= ".exe"} @path if $::glob_win32;
|
||||
foreach my $path ( @path )
|
||||
{
|
||||
$path.= ".exe" if $::opt_win32;
|
||||
return $path if -x $path;
|
||||
}
|
||||
if ( @_ == 1 )
|
||||
if ( @path == 1 )
|
||||
{
|
||||
mtr_error("Could not find $_[0]");
|
||||
mtr_error("Could not find $path[0]");
|
||||
}
|
||||
else
|
||||
{
|
||||
mtr_error("Could not find any of " . join(" ", @_));
|
||||
mtr_error("Could not find any of " . join(" ", @path));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -419,7 +419,8 @@ sub initial_setup () {
|
|||
{
|
||||
# Windows programs like 'mysqld' needs Windows paths
|
||||
$glob_mysql_test_dir= `cygpath -m $glob_mysql_test_dir`;
|
||||
$glob_cygwin_shell= `cygpath -w $ENV{'SHELL'}`; # The Windows path c:\...
|
||||
my $shell= $ENV{'SHELL'} || "/bin/bash";
|
||||
$glob_cygwin_shell= `cygpath -w $shell`; # The Windows path c:\...
|
||||
chomp($glob_mysql_test_dir);
|
||||
chomp($glob_cygwin_shell);
|
||||
}
|
||||
|
@ -791,13 +792,15 @@ sub executable_setup () {
|
|||
my $path_examples= "$glob_basedir/libmysqld/examples";
|
||||
$exe_mysqltest= mtr_exe_exists("$path_examples/mysqltest");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$path_examples/mysql_client_test_embedded");
|
||||
mtr_exe_exists("$path_examples/mysql_client_test_embedded",
|
||||
"/usr/bin/false");
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test");
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test",
|
||||
"/usr/bin/false");
|
||||
}
|
||||
$exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
|
||||
$exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
|
||||
|
@ -819,7 +822,8 @@ sub executable_setup () {
|
|||
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
|
||||
$exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
|
||||
$exe_mysql_fix_system_tables=
|
||||
mtr_script_exists("$path_client_bindir/mysql_fix_privilege_tables");
|
||||
mtr_script_exists("$path_client_bindir/mysql_fix_privilege_tables",
|
||||
"$glob_basedir/scripts/mysql_fix_privilege_tables");
|
||||
|
||||
$path_language= mtr_path_exists("$glob_basedir/share/mysql/english/",
|
||||
"$glob_basedir/share/english/");
|
||||
|
@ -833,13 +837,15 @@ sub executable_setup () {
|
|||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest_embedded");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test_embedded",
|
||||
"$path_client_bindir/mysql_client_test_embedded");
|
||||
"$path_client_bindir/mysql_client_test_embedded",
|
||||
"/usr/bin/false");
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$path_client_bindir/mysql_client_test");
|
||||
mtr_exe_exists("$path_client_bindir/mysql_client_test",
|
||||
"/usr/bin/false"); # FIXME temporary
|
||||
}
|
||||
|
||||
$path_ndb_tools_dir= "$glob_basedir/bin";
|
||||
|
@ -1548,7 +1554,7 @@ sub do_before_start_master ($$) {
|
|||
$tname ne "rpl_crash_binlog_ib_3b")
|
||||
{
|
||||
# FIXME we really want separate dir for binlogs
|
||||
foreach my $bin ( glob("$opt_vardir/log/master*-bin.*") )
|
||||
foreach my $bin ( glob("$opt_vardir/log/master*-bin*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
|
@ -1586,13 +1592,13 @@ sub do_before_start_slave ($$) {
|
|||
$tname ne "rpl_crash_binlog_ib_3b" )
|
||||
{
|
||||
# FIXME we really want separate dir for binlogs
|
||||
foreach my $bin ( glob("$opt_vardir/log/slave*-bin.*") )
|
||||
foreach my $bin ( glob("$opt_vardir/log/slave*-bin*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
# FIXME really master?!
|
||||
unlink("$opt_vardir/slave-data/master.info");
|
||||
unlink("$opt_vardir/slave-data/relay-log.info");
|
||||
unlink("$slave->[0]->{'path_myddir'}/master.info");
|
||||
unlink("$slave->[0]->{'path_myddir'}/relay-log.info");
|
||||
}
|
||||
|
||||
# Run slave initialization shell script if one exists
|
||||
|
@ -1606,8 +1612,10 @@ sub do_before_start_slave ($$) {
|
|||
}
|
||||
}
|
||||
|
||||
`rm -f $opt_vardir/slave-data/log.*`;
|
||||
# unlink("$opt_vardir/slave-data/log.*");
|
||||
foreach my $bin ( glob("$slave->[0]->{'path_myddir'}/log.*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
}
|
||||
|
||||
sub mysqld_arguments ($$$$$) {
|
||||
|
|
|
@ -259,7 +259,7 @@ error:
|
|||
This method reads the header of a meta file and returns whether or not it was successful.
|
||||
*rows will contain the current number of rows in the data file upon success.
|
||||
*/
|
||||
int ha_archive::read_meta_file(File meta_file, ulonglong *rows)
|
||||
int ha_archive::read_meta_file(File meta_file, ha_rows *rows)
|
||||
{
|
||||
uchar meta_buffer[META_BUFFER_SIZE];
|
||||
ulonglong check_point;
|
||||
|
@ -273,7 +273,7 @@ int ha_archive::read_meta_file(File meta_file, ulonglong *rows)
|
|||
/*
|
||||
Parse out the meta data, we ignore version at the moment
|
||||
*/
|
||||
*rows= uint8korr(meta_buffer + 2);
|
||||
*rows= (ha_rows)uint8korr(meta_buffer + 2);
|
||||
check_point= uint8korr(meta_buffer + 10);
|
||||
|
||||
DBUG_PRINT("ha_archive::read_meta_file", ("Check %d", (uint)meta_buffer[0]));
|
||||
|
@ -296,7 +296,7 @@ int ha_archive::read_meta_file(File meta_file, ulonglong *rows)
|
|||
By setting dirty you say whether or not the file represents the actual state of the data file.
|
||||
Upon ::open() we set to dirty, and upon ::close() we set to clean.
|
||||
*/
|
||||
int ha_archive::write_meta_file(File meta_file, ulonglong rows, bool dirty)
|
||||
int ha_archive::write_meta_file(File meta_file, ha_rows rows, bool dirty)
|
||||
{
|
||||
uchar meta_buffer[META_BUFFER_SIZE];
|
||||
ulonglong check_point= 0; //Reserved for the future
|
||||
|
@ -787,7 +787,7 @@ int ha_archive::rnd_pos(byte * buf, byte *pos)
|
|||
DBUG_ENTER("ha_archive::rnd_pos");
|
||||
statistic_increment(table->in_use->status_var.ha_read_rnd_next_count,
|
||||
&LOCK_status);
|
||||
current_position= my_get_ptr(pos, ref_length);
|
||||
current_position= (z_off_t)my_get_ptr(pos, ref_length);
|
||||
(void)gzseek(archive, current_position, SEEK_SET);
|
||||
|
||||
DBUG_RETURN(get_row(archive, buf));
|
||||
|
@ -801,7 +801,7 @@ int ha_archive::repair(THD* thd, HA_CHECK_OPT* check_opt)
|
|||
{
|
||||
int rc;
|
||||
byte *buf;
|
||||
ulonglong rows_recorded= 0;
|
||||
ha_rows rows_recorded= 0;
|
||||
gzFile rebuild_file; // Archive file we are working with
|
||||
File meta_file; // Meta file we use
|
||||
char data_file_name[FN_REFLEN];
|
||||
|
|
|
@ -36,7 +36,7 @@ typedef struct st_archive_share {
|
|||
gzFile archive_write; /* Archive file we are working with */
|
||||
bool dirty; /* Flag for if a flush should occur */
|
||||
bool crashed; /* Meta file is crashed */
|
||||
ulonglong rows_recorded; /* Number of rows in tables */
|
||||
ha_rows rows_recorded; /* Number of rows in tables */
|
||||
} ARCHIVE_SHARE;
|
||||
|
||||
/*
|
||||
|
@ -88,8 +88,8 @@ public:
|
|||
int rnd_next(byte *buf);
|
||||
int rnd_pos(byte * buf, byte *pos);
|
||||
int get_row(gzFile file_to_read, byte *buf);
|
||||
int read_meta_file(File meta_file, ulonglong *rows);
|
||||
int write_meta_file(File meta_file, ulonglong rows, bool dirty);
|
||||
int read_meta_file(File meta_file, ha_rows *rows);
|
||||
int write_meta_file(File meta_file, ha_rows rows, bool dirty);
|
||||
ARCHIVE_SHARE *get_share(const char *table_name, TABLE *table);
|
||||
int free_share(ARCHIVE_SHARE *share);
|
||||
bool auto_repair() const { return 1; } // For the moment we just do this
|
||||
|
|
|
@ -848,7 +848,7 @@ static FEDERATED_SHARE *get_share(const char *table_name, TABLE *table)
|
|||
query.length(0);
|
||||
|
||||
uint table_name_length, table_base_name_length;
|
||||
char *tmp_table_name, *tmp_table_base_name, *table_base_name, *select_query;
|
||||
char *tmp_table_name, *table_base_name, *select_query;
|
||||
|
||||
/* share->table_name has the file location - we want the table's name! */
|
||||
table_base_name= (char*) table->s->table_name;
|
||||
|
@ -969,7 +969,6 @@ const char **ha_federated::bas_ext() const
|
|||
|
||||
int ha_federated::open(const char *name, int mode, uint test_if_locked)
|
||||
{
|
||||
int rc;
|
||||
DBUG_ENTER("ha_federated::open");
|
||||
|
||||
if (!(share= get_share(name, table)))
|
||||
|
@ -1088,7 +1087,7 @@ int ha_federated::write_row(byte *buf)
|
|||
{
|
||||
uint x= 0, num_fields= 0;
|
||||
Field **field;
|
||||
ulong current_query_id= 1;
|
||||
query_id_t current_query_id= 1;
|
||||
ulong tmp_query_id= 1;
|
||||
uint all_fields_have_same_query_id= 1;
|
||||
|
||||
|
@ -1479,8 +1478,6 @@ int ha_federated::index_read_idx(byte *buf, uint index, const byte *key,
|
|||
__attribute__ ((unused)))
|
||||
{
|
||||
char index_value[IO_SIZE];
|
||||
char key_value[IO_SIZE];
|
||||
char test_value[IO_SIZE];
|
||||
String index_string(index_value, sizeof(index_value), &my_charset_bin);
|
||||
index_string.length(0);
|
||||
uint keylen;
|
||||
|
@ -1546,7 +1543,6 @@ int ha_federated::index_read_idx(byte *buf, uint index, const byte *key,
|
|||
/* Initialized at each key walk (called multiple times unlike rnd_init()) */
|
||||
int ha_federated::index_init(uint keynr)
|
||||
{
|
||||
int error;
|
||||
DBUG_ENTER("ha_federated::index_init");
|
||||
DBUG_PRINT("info",
|
||||
("table: '%s' key: %d", table->s->table_name, keynr));
|
||||
|
@ -1578,7 +1574,6 @@ int ha_federated::index_next(byte *buf)
|
|||
int ha_federated::rnd_init(bool scan)
|
||||
{
|
||||
DBUG_ENTER("ha_federated::rnd_init");
|
||||
int num_fields, rows;
|
||||
|
||||
/*
|
||||
This 'scan' flag is incredibly important for this handler to work
|
||||
|
|
|
@ -456,7 +456,6 @@ String *Item_func_des_decrypt::val_str(String *str)
|
|||
DBUG_ASSERT(fixed == 1);
|
||||
#ifdef HAVE_OPENSSL
|
||||
uint code= ER_WRONG_PARAMETERS_TO_PROCEDURE;
|
||||
DES_key_schedule ks1, ks2, ks3;
|
||||
DES_cblock ivec;
|
||||
struct st_des_keyblock keyblock;
|
||||
struct st_des_keyschedule keyschedule;
|
||||
|
|
|
@ -2477,7 +2477,6 @@ static int replace_routine_table(THD *thd, GRANT_NAME *grant_name,
|
|||
int old_row_exists= 1;
|
||||
int error=0;
|
||||
ulong store_proc_rights;
|
||||
byte *key;
|
||||
DBUG_ENTER("replace_routine_table");
|
||||
|
||||
if (!initialized)
|
||||
|
@ -3217,7 +3216,6 @@ my_bool grant_init(THD *org_thd)
|
|||
do
|
||||
{
|
||||
GRANT_NAME *mem_check;
|
||||
longlong proc_type;
|
||||
HASH *hash;
|
||||
if (!(mem_check=new GRANT_NAME(p_table)))
|
||||
{
|
||||
|
|
|
@ -199,7 +199,7 @@ static int check_update_fields(THD *thd, TABLE_LIST *insert_table_list,
|
|||
List<Item> &update_fields)
|
||||
{
|
||||
TABLE *table= insert_table_list->table;
|
||||
ulong timestamp_query_id;
|
||||
query_id_t timestamp_query_id;
|
||||
LINT_INIT(timestamp_query_id);
|
||||
|
||||
/*
|
||||
|
|
|
@ -1780,12 +1780,13 @@ uint8 st_lex::get_effective_with_check(st_table_list *view)
|
|||
|
||||
void st_select_lex_unit::set_limit(SELECT_LEX *sl)
|
||||
{
|
||||
ulonglong select_limit_val;
|
||||
ha_rows select_limit_val;
|
||||
|
||||
DBUG_ASSERT(! thd->current_arena->is_stmt_prepare());
|
||||
select_limit_val= sl->select_limit ? sl->select_limit->val_uint() :
|
||||
HA_POS_ERROR;
|
||||
offset_limit_cnt= sl->offset_limit ? sl->offset_limit->val_uint() : ULL(0);
|
||||
select_limit_val= (ha_rows)(sl->select_limit ? sl->select_limit->val_uint() :
|
||||
HA_POS_ERROR);
|
||||
offset_limit_cnt= (ha_rows)(sl->offset_limit ? sl->offset_limit->val_uint() :
|
||||
ULL(0));
|
||||
select_limit_cnt= select_limit_val + offset_limit_cnt;
|
||||
if (select_limit_cnt < select_limit_val)
|
||||
select_limit_cnt= HA_POS_ERROR; // no limit
|
||||
|
|
|
@ -304,7 +304,7 @@ protected:
|
|||
*link_next, **link_prev; /* list of whole SELECT_LEX */
|
||||
public:
|
||||
|
||||
ulonglong options;
|
||||
ulong options;
|
||||
/*
|
||||
result of this query can't be cached, bit field, can be :
|
||||
UNCACHEABLE_DEPENDENT
|
||||
|
|
|
@ -457,7 +457,9 @@ bool st_select_lex_unit::exec()
|
|||
table->no_keyread=1;
|
||||
}
|
||||
res= sl->join->error;
|
||||
offset_limit_cnt= sl->offset_limit ? sl->offset_limit->val_uint() : 0;
|
||||
offset_limit_cnt= (ha_rows)(sl->offset_limit ?
|
||||
sl->offset_limit->val_uint() :
|
||||
0);
|
||||
if (!res)
|
||||
{
|
||||
examined_rows+= thd->examined_row_count;
|
||||
|
|
|
@ -5674,7 +5674,7 @@ delete_limit_clause:
|
|||
|
||||
ulong_num:
|
||||
NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| HEX_NUM { int error; $$= (ulong) strtol($1.str, (char**) 0, 16); }
|
||||
| HEX_NUM { $$= (ulong) strtol($1.str, (char**) 0, 16); }
|
||||
| LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| ULONGLONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| DECIMAL_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
|
|
|
@ -746,8 +746,9 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
|
|||
error.
|
||||
*/
|
||||
keyinfo->key_length-= (key_part->length - field->key_length());
|
||||
key_part->store_length-= (key_part->length - field->key_length());
|
||||
key_part->length= field->key_length();
|
||||
key_part->store_length-= (uint16)(key_part->length -
|
||||
field->key_length());
|
||||
key_part->length= (uint16)field->key_length();
|
||||
sql_print_error("Found wrong key definition in %s; Please do \"ALTER TABLE '%s' FORCE \" to fix it!", name, share->table_name);
|
||||
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_ERROR,
|
||||
ER_CRASHED_ON_USAGE,
|
||||
|
|
Loading…
Add table
Reference in a new issue