Commit 36421c83 authored by unknown's avatar unknown

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


sql/item_strfunc.cc:
  Auto merged
parents abe951ab 98a3bae3
...@@ -84,7 +84,7 @@ BSC32=bscmake.exe ...@@ -84,7 +84,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=xilink6.exe 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 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" !ELSEIF "$(CFG)" == "mysqld - Win32 nt"
......
...@@ -51,8 +51,8 @@ BSC32=bscmake.exe ...@@ -51,8 +51,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe 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 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\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\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" !ELSEIF "$(CFG)" == "mysql_client_test - Win32 Release"
...@@ -76,8 +76,8 @@ BSC32=bscmake.exe ...@@ -76,8 +76,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe 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 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:"..\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 !ENDIF
......
...@@ -83,18 +83,19 @@ sub mtr_script_exists (@) { ...@@ -83,18 +83,19 @@ sub mtr_script_exists (@) {
} }
sub mtr_exe_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; return $path if -x $path;
} }
if ( @_ == 1 ) if ( @path == 1 )
{ {
mtr_error("Could not find $_[0]"); mtr_error("Could not find $path[0]");
} }
else 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 () { ...@@ -419,7 +419,8 @@ sub initial_setup () {
{ {
# Windows programs like 'mysqld' needs Windows paths # Windows programs like 'mysqld' needs Windows paths
$glob_mysql_test_dir= `cygpath -m $glob_mysql_test_dir`; $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_mysql_test_dir);
chomp($glob_cygwin_shell); chomp($glob_cygwin_shell);
} }
...@@ -791,13 +792,15 @@ sub executable_setup () { ...@@ -791,13 +792,15 @@ sub executable_setup () {
my $path_examples= "$glob_basedir/libmysqld/examples"; my $path_examples= "$glob_basedir/libmysqld/examples";
$exe_mysqltest= mtr_exe_exists("$path_examples/mysqltest"); $exe_mysqltest= mtr_exe_exists("$path_examples/mysqltest");
$exe_mysql_client_test= $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 else
{ {
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest"); $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
$exe_mysql_client_test= $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_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
$exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow"); $exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
...@@ -819,7 +822,8 @@ sub executable_setup () { ...@@ -819,7 +822,8 @@ sub executable_setup () {
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin"); $exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
$exe_mysql= mtr_exe_exists("$path_client_bindir/mysql"); $exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
$exe_mysql_fix_system_tables= $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/", $path_language= mtr_path_exists("$glob_basedir/share/mysql/english/",
"$glob_basedir/share/english/"); "$glob_basedir/share/english/");
...@@ -833,13 +837,15 @@ sub executable_setup () { ...@@ -833,13 +837,15 @@ sub executable_setup () {
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest_embedded"); $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest_embedded");
$exe_mysql_client_test= $exe_mysql_client_test=
mtr_exe_exists("$glob_basedir/tests/mysql_client_test_embedded", 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 else
{ {
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest"); $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
$exe_mysql_client_test= $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"; $path_ndb_tools_dir= "$glob_basedir/bin";
...@@ -1548,7 +1554,7 @@ sub do_before_start_master ($$) { ...@@ -1548,7 +1554,7 @@ sub do_before_start_master ($$) {
$tname ne "rpl_crash_binlog_ib_3b") $tname ne "rpl_crash_binlog_ib_3b")
{ {
# FIXME we really want separate dir for binlogs # 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); unlink($bin);
} }
...@@ -1586,13 +1592,13 @@ sub do_before_start_slave ($$) { ...@@ -1586,13 +1592,13 @@ sub do_before_start_slave ($$) {
$tname ne "rpl_crash_binlog_ib_3b" ) $tname ne "rpl_crash_binlog_ib_3b" )
{ {
# FIXME we really want separate dir for binlogs # 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); unlink($bin);
} }
# FIXME really master?! # FIXME really master?!
unlink("$opt_vardir/slave-data/master.info"); unlink("$slave->[0]->{'path_myddir'}/master.info");
unlink("$opt_vardir/slave-data/relay-log.info"); unlink("$slave->[0]->{'path_myddir'}/relay-log.info");
} }
# Run slave initialization shell script if one exists # Run slave initialization shell script if one exists
...@@ -1606,8 +1612,10 @@ sub do_before_start_slave ($$) { ...@@ -1606,8 +1612,10 @@ sub do_before_start_slave ($$) {
} }
} }
`rm -f $opt_vardir/slave-data/log.*`; foreach my $bin ( glob("$slave->[0]->{'path_myddir'}/log.*") )
# unlink("$opt_vardir/slave-data/log.*"); {
unlink($bin);
}
} }
sub mysqld_arguments ($$$$$) { sub mysqld_arguments ($$$$$) {
......
...@@ -259,7 +259,7 @@ int ha_archive::write_data_header(gzFile file_to_write) ...@@ -259,7 +259,7 @@ int ha_archive::write_data_header(gzFile file_to_write)
This method reads the header of a meta file and returns whether or not it was successful. 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. *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]; uchar meta_buffer[META_BUFFER_SIZE];
ulonglong check_point; ulonglong check_point;
...@@ -273,7 +273,7 @@ int ha_archive::read_meta_file(File meta_file, ulonglong *rows) ...@@ -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 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); check_point= uint8korr(meta_buffer + 10);
DBUG_PRINT("ha_archive::read_meta_file", ("Check %d", (uint)meta_buffer[0])); 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) ...@@ -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. 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. 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]; uchar meta_buffer[META_BUFFER_SIZE];
ulonglong check_point= 0; //Reserved for the future ulonglong check_point= 0; //Reserved for the future
...@@ -787,7 +787,7 @@ int ha_archive::rnd_pos(byte * buf, byte *pos) ...@@ -787,7 +787,7 @@ int ha_archive::rnd_pos(byte * buf, byte *pos)
DBUG_ENTER("ha_archive::rnd_pos"); DBUG_ENTER("ha_archive::rnd_pos");
statistic_increment(table->in_use->status_var.ha_read_rnd_next_count, statistic_increment(table->in_use->status_var.ha_read_rnd_next_count,
&LOCK_status); &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); (void)gzseek(archive, current_position, SEEK_SET);
DBUG_RETURN(get_row(archive, buf)); DBUG_RETURN(get_row(archive, buf));
...@@ -801,7 +801,7 @@ int ha_archive::repair(THD* thd, HA_CHECK_OPT* check_opt) ...@@ -801,7 +801,7 @@ int ha_archive::repair(THD* thd, HA_CHECK_OPT* check_opt)
{ {
int rc; int rc;
byte *buf; byte *buf;
ulonglong rows_recorded= 0; ha_rows rows_recorded= 0;
gzFile rebuild_file; // Archive file we are working with gzFile rebuild_file; // Archive file we are working with
File meta_file; // Meta file we use File meta_file; // Meta file we use
char data_file_name[FN_REFLEN]; char data_file_name[FN_REFLEN];
......
...@@ -36,7 +36,7 @@ typedef struct st_archive_share { ...@@ -36,7 +36,7 @@ typedef struct st_archive_share {
gzFile archive_write; /* Archive file we are working with */ gzFile archive_write; /* Archive file we are working with */
bool dirty; /* Flag for if a flush should occur */ bool dirty; /* Flag for if a flush should occur */
bool crashed; /* Meta file is crashed */ 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; } ARCHIVE_SHARE;
/* /*
...@@ -88,8 +88,8 @@ class ha_archive: public handler ...@@ -88,8 +88,8 @@ class ha_archive: public handler
int rnd_next(byte *buf); int rnd_next(byte *buf);
int rnd_pos(byte * buf, byte *pos); int rnd_pos(byte * buf, byte *pos);
int get_row(gzFile file_to_read, byte *buf); int get_row(gzFile file_to_read, byte *buf);
int read_meta_file(File meta_file, ulonglong *rows); int read_meta_file(File meta_file, ha_rows *rows);
int write_meta_file(File meta_file, ulonglong rows, bool dirty); int write_meta_file(File meta_file, ha_rows rows, bool dirty);
ARCHIVE_SHARE *get_share(const char *table_name, TABLE *table); ARCHIVE_SHARE *get_share(const char *table_name, TABLE *table);
int free_share(ARCHIVE_SHARE *share); int free_share(ARCHIVE_SHARE *share);
bool auto_repair() const { return 1; } // For the moment we just do this 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) ...@@ -848,7 +848,7 @@ static FEDERATED_SHARE *get_share(const char *table_name, TABLE *table)
query.length(0); query.length(0);
uint table_name_length, table_base_name_length; 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! */ /* share->table_name has the file location - we want the table's name! */
table_base_name= (char*) table->s->table_name; table_base_name= (char*) table->s->table_name;
...@@ -969,7 +969,6 @@ const char **ha_federated::bas_ext() const ...@@ -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 ha_federated::open(const char *name, int mode, uint test_if_locked)
{ {
int rc;
DBUG_ENTER("ha_federated::open"); DBUG_ENTER("ha_federated::open");
if (!(share= get_share(name, table))) if (!(share= get_share(name, table)))
...@@ -1088,7 +1087,7 @@ int ha_federated::write_row(byte *buf) ...@@ -1088,7 +1087,7 @@ int ha_federated::write_row(byte *buf)
{ {
uint x= 0, num_fields= 0; uint x= 0, num_fields= 0;
Field **field; Field **field;
ulong current_query_id= 1; query_id_t current_query_id= 1;
ulong tmp_query_id= 1; ulong tmp_query_id= 1;
uint all_fields_have_same_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, ...@@ -1479,8 +1478,6 @@ int ha_federated::index_read_idx(byte *buf, uint index, const byte *key,
__attribute__ ((unused))) __attribute__ ((unused)))
{ {
char index_value[IO_SIZE]; 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); String index_string(index_value, sizeof(index_value), &my_charset_bin);
index_string.length(0); index_string.length(0);
uint keylen; uint keylen;
...@@ -1546,7 +1543,6 @@ int ha_federated::index_read_idx(byte *buf, uint index, const byte *key, ...@@ -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()) */ /* Initialized at each key walk (called multiple times unlike rnd_init()) */
int ha_federated::index_init(uint keynr) int ha_federated::index_init(uint keynr)
{ {
int error;
DBUG_ENTER("ha_federated::index_init"); DBUG_ENTER("ha_federated::index_init");
DBUG_PRINT("info", DBUG_PRINT("info",
("table: '%s' key: %d", table->s->table_name, keynr)); ("table: '%s' key: %d", table->s->table_name, keynr));
...@@ -1578,7 +1574,6 @@ int ha_federated::index_next(byte *buf) ...@@ -1578,7 +1574,6 @@ int ha_federated::index_next(byte *buf)
int ha_federated::rnd_init(bool scan) int ha_federated::rnd_init(bool scan)
{ {
DBUG_ENTER("ha_federated::rnd_init"); DBUG_ENTER("ha_federated::rnd_init");
int num_fields, rows;
/* /*
This 'scan' flag is incredibly important for this handler to work This 'scan' flag is incredibly important for this handler to work
......
...@@ -456,7 +456,6 @@ String *Item_func_des_decrypt::val_str(String *str) ...@@ -456,7 +456,6 @@ String *Item_func_des_decrypt::val_str(String *str)
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
uint code= ER_WRONG_PARAMETERS_TO_PROCEDURE; uint code= ER_WRONG_PARAMETERS_TO_PROCEDURE;
DES_key_schedule ks1, ks2, ks3;
DES_cblock ivec; DES_cblock ivec;
struct st_des_keyblock keyblock; struct st_des_keyblock keyblock;
struct st_des_keyschedule keyschedule; struct st_des_keyschedule keyschedule;
......
...@@ -2477,7 +2477,6 @@ static int replace_routine_table(THD *thd, GRANT_NAME *grant_name, ...@@ -2477,7 +2477,6 @@ static int replace_routine_table(THD *thd, GRANT_NAME *grant_name,
int old_row_exists= 1; int old_row_exists= 1;
int error=0; int error=0;
ulong store_proc_rights; ulong store_proc_rights;
byte *key;
DBUG_ENTER("replace_routine_table"); DBUG_ENTER("replace_routine_table");
if (!initialized) if (!initialized)
...@@ -3217,7 +3216,6 @@ my_bool grant_init(THD *org_thd) ...@@ -3217,7 +3216,6 @@ my_bool grant_init(THD *org_thd)
do do
{ {
GRANT_NAME *mem_check; GRANT_NAME *mem_check;
longlong proc_type;
HASH *hash; HASH *hash;
if (!(mem_check=new GRANT_NAME(p_table))) if (!(mem_check=new GRANT_NAME(p_table)))
{ {
......
...@@ -199,7 +199,7 @@ static int check_update_fields(THD *thd, TABLE_LIST *insert_table_list, ...@@ -199,7 +199,7 @@ static int check_update_fields(THD *thd, TABLE_LIST *insert_table_list,
List<Item> &update_fields) List<Item> &update_fields)
{ {
TABLE *table= insert_table_list->table; TABLE *table= insert_table_list->table;
ulong timestamp_query_id; query_id_t timestamp_query_id;
LINT_INIT(timestamp_query_id); LINT_INIT(timestamp_query_id);
/* /*
......
...@@ -1780,12 +1780,13 @@ uint8 st_lex::get_effective_with_check(st_table_list *view) ...@@ -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) 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()); DBUG_ASSERT(! thd->current_arena->is_stmt_prepare());
select_limit_val= sl->select_limit ? sl->select_limit->val_uint() : select_limit_val= (ha_rows)(sl->select_limit ? sl->select_limit->val_uint() :
HA_POS_ERROR; HA_POS_ERROR);
offset_limit_cnt= sl->offset_limit ? sl->offset_limit->val_uint() : ULL(0); offset_limit_cnt= (ha_rows)(sl->offset_limit ? sl->offset_limit->val_uint() :
ULL(0));
select_limit_cnt= select_limit_val + offset_limit_cnt; select_limit_cnt= select_limit_val + offset_limit_cnt;
if (select_limit_cnt < select_limit_val) if (select_limit_cnt < select_limit_val)
select_limit_cnt= HA_POS_ERROR; // no limit select_limit_cnt= HA_POS_ERROR; // no limit
......
...@@ -304,7 +304,7 @@ class st_select_lex_node { ...@@ -304,7 +304,7 @@ class st_select_lex_node {
*link_next, **link_prev; /* list of whole SELECT_LEX */ *link_next, **link_prev; /* list of whole SELECT_LEX */
public: public:
ulonglong options; ulong options;
/* /*
result of this query can't be cached, bit field, can be : result of this query can't be cached, bit field, can be :
UNCACHEABLE_DEPENDENT UNCACHEABLE_DEPENDENT
......
...@@ -457,7 +457,9 @@ bool st_select_lex_unit::exec() ...@@ -457,7 +457,9 @@ bool st_select_lex_unit::exec()
table->no_keyread=1; table->no_keyread=1;
} }
res= sl->join->error; 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) if (!res)
{ {
examined_rows+= thd->examined_row_count; examined_rows+= thd->examined_row_count;
......
...@@ -5674,7 +5674,7 @@ delete_limit_clause: ...@@ -5674,7 +5674,7 @@ delete_limit_clause:
ulong_num: ulong_num:
NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); } 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); } | LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
| ULONGLONG_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); } | 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, ...@@ -746,8 +746,9 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
error. error.
*/ */
keyinfo->key_length-= (key_part->length - field->key_length()); keyinfo->key_length-= (key_part->length - field->key_length());
key_part->store_length-= (key_part->length - field->key_length()); key_part->store_length-= (uint16)(key_part->length -
key_part->length= field->key_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); 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, push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_ERROR,
ER_CRASHED_ON_USAGE, ER_CRASHED_ON_USAGE,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment