mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
A lot of portability fixes.
Added rename table for BDB. This fixes a bug in ALTER TABLE with BDB tables.
This commit is contained in:
@ -48,7 +48,7 @@ fast_cflags="-O3 -fno-omit-frame-pointer"
|
|||||||
# this is one is for someone who thinks 1% speedup is worth not being
|
# this is one is for someone who thinks 1% speedup is worth not being
|
||||||
# able to backtrace
|
# able to backtrace
|
||||||
reckless_cflags="-O3 -fomit-frame-pointer "
|
reckless_cflags="-O3 -fomit-frame-pointer "
|
||||||
debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX -O1"
|
debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX -O1 -Wuninitialized"
|
||||||
|
|
||||||
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
|
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ use Getopt::Long;
|
|||||||
$opt_distribution=$opt_user=$opt_config_env="";
|
$opt_distribution=$opt_user=$opt_config_env="";
|
||||||
$opt_dbd_options=$opt_perl_options=$opt_config_options=$opt_make_options=$opt_suffix="";
|
$opt_dbd_options=$opt_perl_options=$opt_config_options=$opt_make_options=$opt_suffix="";
|
||||||
$opt_tmp=$opt_version_suffix="";
|
$opt_tmp=$opt_version_suffix="";
|
||||||
$opt_help=$opt_delete=$opt_debug=$opt_stage=$opt_no_test=$opt_no_perl=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=$opt_with_debug=0;
|
$opt_help=$opt_delete=$opt_debug=$opt_stage=$opt_no_test=$opt_no_perl=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=$opt_with_debug=$opt_no_benchmark=$opt_no_mysqltest=0;
|
||||||
$opt_innodb=$opt_bdb=$opt_raid=$opt_libwrap=0;
|
$opt_innodb=$opt_bdb=$opt_raid=$opt_libwrap=0;
|
||||||
|
|
||||||
GetOptions(
|
GetOptions(
|
||||||
@ -30,7 +30,9 @@ GetOptions(
|
|||||||
"no-crash-me",
|
"no-crash-me",
|
||||||
"no-perl",
|
"no-perl",
|
||||||
"no-strip",
|
"no-strip",
|
||||||
"no-test|no-mysqltest",
|
"no-test",
|
||||||
|
"no-mysqltest",
|
||||||
|
"no-benchmark",
|
||||||
"perl-files=s",
|
"perl-files=s",
|
||||||
"perl-options=s",
|
"perl-options=s",
|
||||||
"raid",
|
"raid",
|
||||||
@ -148,6 +150,7 @@ select STDOUT;
|
|||||||
$|=1;
|
$|=1;
|
||||||
|
|
||||||
info("Compiling MySQL$opt_version_suffix at $host$opt_suffix, stage: $opt_stage\n");
|
info("Compiling MySQL$opt_version_suffix at $host$opt_suffix, stage: $opt_stage\n");
|
||||||
|
log_timestamp();
|
||||||
|
|
||||||
if (-x "$host/bin/mysqladmin")
|
if (-x "$host/bin/mysqladmin")
|
||||||
{
|
{
|
||||||
@ -161,6 +164,7 @@ kill_all("mysqlmanager");
|
|||||||
|
|
||||||
if ($opt_stage == 0)
|
if ($opt_stage == 0)
|
||||||
{
|
{
|
||||||
|
log_timestamp();
|
||||||
print "$host: Removing old distribution\n" if ($opt_debug);
|
print "$host: Removing old distribution\n" if ($opt_debug);
|
||||||
if (!$opt_use_old_distribution)
|
if (!$opt_use_old_distribution)
|
||||||
{
|
{
|
||||||
@ -209,6 +213,7 @@ safe_cd("$pwd/$host/$ver");
|
|||||||
if ($opt_stage <= 1)
|
if ($opt_stage <= 1)
|
||||||
{
|
{
|
||||||
# Fix files if this is in another timezone than the build host
|
# Fix files if this is in another timezone than the build host
|
||||||
|
log_timestamp();
|
||||||
unlink("config.cache");
|
unlink("config.cache");
|
||||||
unlink("bdb/build_unix/config.cache");
|
unlink("bdb/build_unix/config.cache");
|
||||||
unlink("innobase/config.cache");
|
unlink("innobase/config.cache");
|
||||||
@ -252,6 +257,7 @@ if ($opt_stage <= 1)
|
|||||||
if ($opt_stage <= 2)
|
if ($opt_stage <= 2)
|
||||||
{
|
{
|
||||||
my ($command);
|
my ($command);
|
||||||
|
log_timestamp();
|
||||||
unlink($opt_distribution) if ($opt_delete && !$opt_use_old_distribution);
|
unlink($opt_distribution) if ($opt_delete && !$opt_use_old_distribution);
|
||||||
$command=$make;
|
$command=$make;
|
||||||
$command.= " $opt_make_options" if (defined($opt_make_options) && $opt_make_options ne "");
|
$command.= " $opt_make_options" if (defined($opt_make_options) && $opt_make_options ne "");
|
||||||
@ -264,6 +270,7 @@ if ($opt_stage <= 2)
|
|||||||
if ($opt_stage <= 3)
|
if ($opt_stage <= 3)
|
||||||
{
|
{
|
||||||
my $flags= "";
|
my $flags= "";
|
||||||
|
log_timestamp();
|
||||||
log_system("rm -fr mysql-3* mysql-4* $pwd/$host/*.tar.gz");
|
log_system("rm -fr mysql-3* mysql-4* $pwd/$host/*.tar.gz");
|
||||||
log_system("nm -n sql/mysqld | gzip -9 -v 2>&1 > sql/mysqld.sym.gz | cat");
|
log_system("nm -n sql/mysqld | gzip -9 -v 2>&1 > sql/mysqld.sym.gz | cat");
|
||||||
|
|
||||||
@ -292,6 +299,7 @@ if (!defined($tar_file))
|
|||||||
#
|
#
|
||||||
if ($opt_stage <= 4 && !$opt_no_test)
|
if ($opt_stage <= 4 && !$opt_no_test)
|
||||||
{
|
{
|
||||||
|
log_timestamp();
|
||||||
rm_all(<$pwd/$host/test/*>);
|
rm_all(<$pwd/$host/test/*>);
|
||||||
safe_cd("$pwd/$host/test");
|
safe_cd("$pwd/$host/test");
|
||||||
safe_system("gunzip < $tar_file | $tar xf -");
|
safe_system("gunzip < $tar_file | $tar xf -");
|
||||||
@ -305,8 +313,9 @@ $ENV{"LD_LIBRARY_PATH"}= "$test_dir/lib:" . $ENV{"LD_LIBRARY_PATH"};
|
|||||||
#
|
#
|
||||||
# Run the test suite
|
# Run the test suite
|
||||||
#
|
#
|
||||||
if ($opt_stage <= 5 && !$opt_no_test)
|
if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest)
|
||||||
{
|
{
|
||||||
|
log_timestamp();
|
||||||
system("mkdir $bench_tmpdir") if (! -d $bench_tmpdir);
|
system("mkdir $bench_tmpdir") if (! -d $bench_tmpdir);
|
||||||
safe_cd("${test_dir}/mysql-test");
|
safe_cd("${test_dir}/mysql-test");
|
||||||
check_system("./mysql-test-run --warnings --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful");
|
check_system("./mysql-test-run --warnings --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful");
|
||||||
@ -315,7 +324,7 @@ if ($opt_stage <= 5 && !$opt_no_test)
|
|||||||
#
|
#
|
||||||
# Start the server if we are going to run any of the benchmarks
|
# Start the server if we are going to run any of the benchmarks
|
||||||
#
|
#
|
||||||
if (!$opt_no_test)
|
if (!$opt_no_test && !$opt_no_benchmark)
|
||||||
{
|
{
|
||||||
my $extra;
|
my $extra;
|
||||||
safe_cd($test_dir);
|
safe_cd($test_dir);
|
||||||
@ -339,8 +348,10 @@ if (!$opt_no_test)
|
|||||||
#
|
#
|
||||||
# Compile and install the required Perl modules
|
# Compile and install the required Perl modules
|
||||||
#
|
#
|
||||||
if ($opt_stage <= 7 && $opt_perl_files && !$opt_no_perl && !$opt_no_test)
|
if ($opt_stage <= 7 && $opt_perl_files && !$opt_no_perl && !$opt_no_test &&
|
||||||
|
!$opt_no_benchmark)
|
||||||
{
|
{
|
||||||
|
log_timestamp();
|
||||||
safe_cd($test_dir);
|
safe_cd($test_dir);
|
||||||
rm_all("perl");
|
rm_all("perl");
|
||||||
safe_system("mkdir perl");
|
safe_system("mkdir perl");
|
||||||
@ -376,6 +387,7 @@ if ($opt_stage <= 7 && $opt_perl_files && !$opt_no_perl && !$opt_no_test)
|
|||||||
#
|
#
|
||||||
if ($opt_stage <= 8 && !$opt_no_test && !$opt_no_crash_me)
|
if ($opt_stage <= 8 && !$opt_no_test && !$opt_no_crash_me)
|
||||||
{
|
{
|
||||||
|
log_timestamp();
|
||||||
safe_cd("$test_dir/sql-bench");
|
safe_cd("$test_dir/sql-bench");
|
||||||
log_system("rm -f limits/mysql.cfg");
|
log_system("rm -f limits/mysql.cfg");
|
||||||
safe_system("perl ./crash-me --force --batch-mode $connect_option");
|
safe_system("perl ./crash-me --force --batch-mode $connect_option");
|
||||||
@ -384,8 +396,9 @@ if ($opt_stage <= 8 && !$opt_no_test && !$opt_no_crash_me)
|
|||||||
#
|
#
|
||||||
# Run sql-bench Benchmarks
|
# Run sql-bench Benchmarks
|
||||||
#
|
#
|
||||||
if ($opt_stage <= 9 && !$opt_no_test)
|
if ($opt_stage <= 9 && !$opt_no_test && !$opt_no_benchmark)
|
||||||
{
|
{
|
||||||
|
log_timestamp();
|
||||||
safe_cd("$test_dir/sql-bench");
|
safe_cd("$test_dir/sql-bench");
|
||||||
log_system("rm -f output/*");
|
log_system("rm -f output/*");
|
||||||
$tmp= $opt_fast_benchmark ? "--fast --user root --small-test" : "";
|
$tmp= $opt_fast_benchmark ? "--fast --user root --small-test" : "";
|
||||||
@ -469,7 +482,13 @@ Do not run the "crash-me" test
|
|||||||
Do not strip the binaries included in the binary distribution
|
Do not strip the binaries included in the binary distribution
|
||||||
|
|
||||||
--no-test
|
--no-test
|
||||||
Do not run any tests
|
Do not run any tests.
|
||||||
|
|
||||||
|
--no-benchmark
|
||||||
|
Do not run the benchmark test (written in perl)
|
||||||
|
|
||||||
|
--no-mysqltest
|
||||||
|
Do not run the the mysql-test-run test (Same as 'make test')
|
||||||
|
|
||||||
--perl-files=list of files
|
--perl-files=list of files
|
||||||
Compile and install the given perl modules.
|
Compile and install the given perl modules.
|
||||||
@ -532,6 +551,7 @@ sub abort
|
|||||||
my($mail_header_file);
|
my($mail_header_file);
|
||||||
print LOG "\n$message\n";
|
print LOG "\n$message\n";
|
||||||
print "$host: $message\n" if ($opt_debug);
|
print "$host: $message\n" if ($opt_debug);
|
||||||
|
print LOG "Aborting\n";
|
||||||
close LOG;
|
close LOG;
|
||||||
|
|
||||||
if ($opt_user)
|
if ($opt_user)
|
||||||
@ -547,7 +567,6 @@ sub abort
|
|||||||
unlink($mail_header_file);
|
unlink($mail_header_file);
|
||||||
unlink("$log.mail");
|
unlink("$log.mail");
|
||||||
}
|
}
|
||||||
print LOG "Aborting\n";
|
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -689,9 +708,10 @@ sub rm_all
|
|||||||
sub kill_all
|
sub kill_all
|
||||||
{
|
{
|
||||||
my ($pattern) = @_;
|
my ($pattern) = @_;
|
||||||
my ($USER,$BSD,$LINUX, $pscmd, $user, $pid);
|
my ($USER,$BSD,$LINUX, $pscmd, $user, $os, $pid);
|
||||||
$user=$ENV{'USER'};
|
$user=$ENV{'USER'};
|
||||||
$BSD = -f '/vmunix' || $ENV{"OS"} eq "SunOS4" || $^O eq 'darwin';
|
$os=defined($ENV{'OS'}) ? $ENV{'OS'} : "unknown";
|
||||||
|
$BSD = -f '/vmunix' || $os eq "SunOS4" || $^O eq 'darwin';
|
||||||
$LINUX = $^O eq 'linux';
|
$LINUX = $^O eq 'linux';
|
||||||
$pscmd = $BSD ? "/bin/ps -auxww" : $LINUX ? "/bin/ps axuw" : "/bin/ps -ef";
|
$pscmd = $BSD ? "/bin/ps -auxww" : $LINUX ? "/bin/ps axuw" : "/bin/ps -ef";
|
||||||
|
|
||||||
@ -707,7 +727,7 @@ sub kill_all
|
|||||||
{
|
{
|
||||||
chop($cand);
|
chop($cand);
|
||||||
($pid_user, $pid) = split(' ', $cand);
|
($pid_user, $pid) = split(' ', $cand);
|
||||||
next if $pid == $$;
|
next if $pid eq $$;
|
||||||
next process if (! ($cand =~ $pattern) || $pid_user ne $user);
|
next process if (! ($cand =~ $pattern) || $pid_user ne $user);
|
||||||
print LOG "Killing $_\n";
|
print LOG "Killing $_\n";
|
||||||
&killpid($pid);
|
&killpid($pid);
|
||||||
@ -730,3 +750,14 @@ sub killpid
|
|||||||
}
|
}
|
||||||
print LOG "$pid will not die!\n";
|
print LOG "$pid will not die!\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# return the current date as a string (YYYY-MM-DD HH:MM:SS)
|
||||||
|
#
|
||||||
|
sub log_timestamp
|
||||||
|
{
|
||||||
|
my @ta=localtime(time());
|
||||||
|
print LOG sprintf("%4d-%02d-%02d %02d:%02d:%02d\n",
|
||||||
|
$ta[5]+1900, $ta[4]+1, $ta[3], $ta[2], $ta[1], $ta[0]);
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -623,7 +623,7 @@ main()
|
|||||||
FILE *file=fopen("conftestval", "w");
|
FILE *file=fopen("conftestval", "w");
|
||||||
f = (float) ll;
|
f = (float) ll;
|
||||||
fprintf(file,"%g\n",f);
|
fprintf(file,"%g\n",f);
|
||||||
close(file);
|
fclose(file);
|
||||||
exit (0);
|
exit (0);
|
||||||
}], ac_cv_conv_longlong_to_float=`cat conftestval`, ac_cv_conv_longlong_to_float=0, ifelse([$2], , , ac_cv_conv_longlong_to_float=$2))])dnl
|
}], ac_cv_conv_longlong_to_float=`cat conftestval`, ac_cv_conv_longlong_to_float=0, ifelse([$2], , , ac_cv_conv_longlong_to_float=$2))])dnl
|
||||||
if test "$ac_cv_conv_longlong_to_float" = "1" -o "$ac_cv_conv_longlong_to_float" = "yes"
|
if test "$ac_cv_conv_longlong_to_float" = "1" -o "$ac_cv_conv_longlong_to_float" = "yes"
|
||||||
|
@ -879,6 +879,7 @@ int main()
|
|||||||
#
|
#
|
||||||
|
|
||||||
MAX_C_OPTIMIZE="-O3"
|
MAX_C_OPTIMIZE="-O3"
|
||||||
|
MAX_CXX_OPTIMIZE="-O3"
|
||||||
|
|
||||||
case $SYSTEM_TYPE in
|
case $SYSTEM_TYPE in
|
||||||
*solaris2.7*)
|
*solaris2.7*)
|
||||||
@ -946,6 +947,8 @@ case $SYSTEM_TYPE in
|
|||||||
then
|
then
|
||||||
CFLAGS="$CFLAGS +DD64 -DHAVE_BROKEN_INLINE"
|
CFLAGS="$CFLAGS +DD64 -DHAVE_BROKEN_INLINE"
|
||||||
CXXFLAGS="$CXXFLAGS +DD64 +O2"
|
CXXFLAGS="$CXXFLAGS +DD64 +O2"
|
||||||
|
MAX_C_OPTIMIZE=""
|
||||||
|
MAX_CXX_OPTIMIZE=""
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*rhapsody*)
|
*rhapsody*)
|
||||||
@ -1404,7 +1407,7 @@ if test "$ac_cv_prog_cxx_g" = "yes"
|
|||||||
then
|
then
|
||||||
DEBUG_CXXFLAGS="-g"
|
DEBUG_CXXFLAGS="-g"
|
||||||
DEBUG_OPTIMIZE_CXX="-O"
|
DEBUG_OPTIMIZE_CXX="-O"
|
||||||
OPTIMIZE_CXXFLAGS="-O3"
|
OPTIMIZE_CXXFLAGS="$MAX_CXX_OPTIMIZE"
|
||||||
else
|
else
|
||||||
DEBUG_CXXFLAGS="-g"
|
DEBUG_CXXFLAGS="-g"
|
||||||
DEBUG_OPTIMIZE_CXX=""
|
DEBUG_OPTIMIZE_CXX=""
|
||||||
|
@ -57,6 +57,7 @@ of the 32-bit x86 assembler in mutex operations. */
|
|||||||
Microsoft Visual C++ */
|
Microsoft Visual C++ */
|
||||||
|
|
||||||
#if !defined(__GNUC__) && !defined(__WIN__)
|
#if !defined(__GNUC__) && !defined(__WIN__)
|
||||||
|
#undef UNIV_MUST_NOT_INLINE /* Remove compiler warning */
|
||||||
#define UNIV_MUST_NOT_INLINE
|
#define UNIV_MUST_NOT_INLINE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2127,7 +2127,7 @@ os_aio_simulated_handle(
|
|||||||
ulint offs;
|
ulint offs;
|
||||||
ulint lowest_offset;
|
ulint lowest_offset;
|
||||||
byte* combined_buf;
|
byte* combined_buf;
|
||||||
byte* combined_buf2;
|
byte* combined_buf2= 0; /* Remove warning */
|
||||||
ibool ret;
|
ibool ret;
|
||||||
ulint n;
|
ulint n;
|
||||||
ulint i;
|
ulint i;
|
||||||
|
@ -472,9 +472,9 @@ trx_sys_update_mysql_binlog_offset(
|
|||||||
if (0 != ut_memcmp(sys_header + field + TRX_SYS_MYSQL_LOG_NAME,
|
if (0 != ut_memcmp(sys_header + field + TRX_SYS_MYSQL_LOG_NAME,
|
||||||
file_name, 1 + ut_strlen(file_name))) {
|
file_name, 1 + ut_strlen(file_name))) {
|
||||||
|
|
||||||
mlog_write_string(sys_header + field
|
mlog_write_string((byte*) (sys_header + field
|
||||||
+ TRX_SYS_MYSQL_LOG_NAME,
|
+ TRX_SYS_MYSQL_LOG_NAME),
|
||||||
file_name, 1 + ut_strlen(file_name), mtr);
|
(byte*) file_name, 1 + ut_strlen(file_name), mtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mach_read_from_4(sys_header + field
|
if (mach_read_from_4(sys_header + field
|
||||||
|
@ -99,7 +99,7 @@ trx_create(
|
|||||||
|
|
||||||
trx->mysql_log_file_name = NULL;
|
trx->mysql_log_file_name = NULL;
|
||||||
trx->mysql_log_offset = 0;
|
trx->mysql_log_offset = 0;
|
||||||
trx->mysql_master_log_file_name = "";
|
trx->mysql_master_log_file_name = (char*) "";
|
||||||
trx->mysql_master_log_pos = 0;
|
trx->mysql_master_log_pos = 0;
|
||||||
|
|
||||||
trx->ignore_duplicates_in_insert = FALSE;
|
trx->ignore_duplicates_in_insert = FALSE;
|
||||||
|
@ -197,7 +197,6 @@ ut_get_year_month_day(
|
|||||||
*month = (ulint)cal_tm.wMonth;
|
*month = (ulint)cal_tm.wMonth;
|
||||||
*day = (ulint)cal_tm.wDay;
|
*day = (ulint)cal_tm.wDay;
|
||||||
#else
|
#else
|
||||||
struct tm cal_tm;
|
|
||||||
struct tm* cal_tm_ptr;
|
struct tm* cal_tm_ptr;
|
||||||
time_t tm;
|
time_t tm;
|
||||||
|
|
||||||
|
@ -3650,7 +3650,7 @@ void update_key_parts(MI_KEYDEF *keyinfo, ulong *rec_per_key_part,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ha_checksum mi_byte_checksum(const byte *buf, uint length)
|
static ha_checksum mi_byte_checksum(const byte *buf, uint length)
|
||||||
{
|
{
|
||||||
ha_checksum crc;
|
ha_checksum crc;
|
||||||
const byte *end=buf+length;
|
const byte *end=buf+length;
|
||||||
|
@ -57,7 +57,7 @@ int main(int argc,char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int run_test(const char *filename)
|
static int run_test(const char *filename)
|
||||||
{
|
{
|
||||||
MI_INFO *file;
|
MI_INFO *file;
|
||||||
int i,j,error,deleted,rec_length,uniques=0;
|
int i,j,error,deleted,rec_length,uniques=0;
|
||||||
|
@ -572,7 +572,7 @@ static longlong eval_num_suffix (char *argument, int *error, char *option_name)
|
|||||||
In case of an error, set error value in *err.
|
In case of an error, set error value in *err.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
longlong getopt_ll (char *arg, const struct my_option *optp, int *err)
|
static longlong getopt_ll(char *arg, const struct my_option *optp, int *err)
|
||||||
{
|
{
|
||||||
longlong num;
|
longlong num;
|
||||||
|
|
||||||
@ -596,7 +596,7 @@ longlong getopt_ll (char *arg, const struct my_option *optp, int *err)
|
|||||||
values.
|
values.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static ulonglong getopt_ull (char *arg, const struct my_option *optp, int *err)
|
static ulonglong getopt_ull(char *arg, const struct my_option *optp, int *err)
|
||||||
{
|
{
|
||||||
ulonglong num;
|
ulonglong num;
|
||||||
|
|
||||||
|
@ -1921,6 +1921,26 @@ int ha_berkeley::delete_table(const char *name)
|
|||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ha_berkeley::rename_table(const char * from, const char * to)
|
||||||
|
{
|
||||||
|
int error;
|
||||||
|
char from_buff[FN_REFLEN];
|
||||||
|
char to_buff[FN_REFLEN];
|
||||||
|
|
||||||
|
if ((error= db_create(&file, db_env, 0)))
|
||||||
|
my_errno= error;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* On should not do a file->close() after rename returns */
|
||||||
|
error= file->rename(file,
|
||||||
|
fn_format(from_buff, from, "", ha_berkeley_ext, 2 | 4),
|
||||||
|
NULL, fn_format(to_buff, to, "", ha_berkeley_ext,
|
||||||
|
2 | 4), 0);
|
||||||
|
}
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
How many seeks it will take to read through the table
|
How many seeks it will take to read through the table
|
||||||
This is to be comparable to the number returned by records_in_range so
|
This is to be comparable to the number returned by records_in_range so
|
||||||
@ -2080,7 +2100,7 @@ int ha_berkeley::analyze(THD* thd, HA_CHECK_OPT* check_opt)
|
|||||||
free(stat);
|
free(stat);
|
||||||
stat=0;
|
stat=0;
|
||||||
}
|
}
|
||||||
if (key_file[i]->stat(key_file[i], (void*) &stat, 0, 0))
|
if ((key_file[i]->stat)(key_file[i], (void*) &stat, 0, 0))
|
||||||
goto err; /* purecov: inspected */
|
goto err; /* purecov: inspected */
|
||||||
share->rec_per_key[i]= (stat->bt_ndata /
|
share->rec_per_key[i]= (stat->bt_ndata /
|
||||||
(stat->bt_nkeys ? stat->bt_nkeys : 1));
|
(stat->bt_nkeys ? stat->bt_nkeys : 1));
|
||||||
@ -2093,7 +2113,7 @@ int ha_berkeley::analyze(THD* thd, HA_CHECK_OPT* check_opt)
|
|||||||
free(stat);
|
free(stat);
|
||||||
stat=0;
|
stat=0;
|
||||||
}
|
}
|
||||||
if (file->stat(file, (void*) &stat, 0, 0))
|
if ((file->stat)(file, (void*) &stat, 0, 0))
|
||||||
goto err; /* purecov: inspected */
|
goto err; /* purecov: inspected */
|
||||||
}
|
}
|
||||||
pthread_mutex_lock(&share->mutex);
|
pthread_mutex_lock(&share->mutex);
|
||||||
|
@ -152,6 +152,7 @@ class ha_berkeley: public handler
|
|||||||
int create(const char *name, register TABLE *form,
|
int create(const char *name, register TABLE *form,
|
||||||
HA_CREATE_INFO *create_info);
|
HA_CREATE_INFO *create_info);
|
||||||
int delete_table(const char *name);
|
int delete_table(const char *name);
|
||||||
|
int rename_table(const char* from, const char* to);
|
||||||
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
||||||
enum thr_lock_type lock_type);
|
enum thr_lock_type lock_type);
|
||||||
|
|
||||||
|
@ -542,10 +542,13 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
|
|||||||
bzero((char*) &UNIXaddr,sizeof(UNIXaddr));
|
bzero((char*) &UNIXaddr,sizeof(UNIXaddr));
|
||||||
UNIXaddr.sun_family = AF_UNIX;
|
UNIXaddr.sun_family = AF_UNIX;
|
||||||
strmov(UNIXaddr.sun_path, unix_socket);
|
strmov(UNIXaddr.sun_path, unix_socket);
|
||||||
if (mc_sock_connect(sock,(struct sockaddr *) &UNIXaddr, sizeof(UNIXaddr),
|
if (mc_sock_connect(sock,
|
||||||
|
my_reinterpret_cast(struct sockaddr *) (&UNIXaddr),
|
||||||
|
sizeof(UNIXaddr),
|
||||||
mysql->options.connect_timeout) <0)
|
mysql->options.connect_timeout) <0)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("error",("Got error %d on connect to local server",socket_errno));
|
DBUG_PRINT("error",("Got error %d on connect to local server",
|
||||||
|
socket_errno));
|
||||||
net->last_errno=CR_CONNECTION_ERROR;
|
net->last_errno=CR_CONNECTION_ERROR;
|
||||||
sprintf(net->last_error,ER(net->last_errno),unix_socket,socket_errno);
|
sprintf(net->last_error,ER(net->last_errno),unix_socket,socket_errno);
|
||||||
goto error;
|
goto error;
|
||||||
@ -632,7 +635,9 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
|
|||||||
my_gethostbyname_r_free();
|
my_gethostbyname_r_free();
|
||||||
}
|
}
|
||||||
sock_addr.sin_port = (ushort) htons((ushort) port);
|
sock_addr.sin_port = (ushort) htons((ushort) port);
|
||||||
if (mc_sock_connect(sock,(struct sockaddr *) &sock_addr, sizeof(sock_addr),
|
if (mc_sock_connect(sock,
|
||||||
|
my_reinterpret_cast(struct sockaddr *) (&sock_addr),
|
||||||
|
sizeof(sock_addr),
|
||||||
mysql->options.connect_timeout) <0)
|
mysql->options.connect_timeout) <0)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("error",("Got error %d on connect to '%s'",
|
DBUG_PRINT("error",("Got error %d on connect to '%s'",
|
||||||
|
@ -497,7 +497,8 @@ check_connections(THD *thd)
|
|||||||
{
|
{
|
||||||
vio_in_addr(net->vio,&thd->remote.sin_addr);
|
vio_in_addr(net->vio,&thd->remote.sin_addr);
|
||||||
thd->host=ip_to_hostname(&thd->remote.sin_addr,&connect_errors);
|
thd->host=ip_to_hostname(&thd->remote.sin_addr,&connect_errors);
|
||||||
thd->host[strnlen(thd->host, HOSTNAME_LENGTH)]= 0;
|
/* Cut very long hostnames to avoid possible overflows */
|
||||||
|
thd->host[min(strlen(thd->host), HOSTNAME_LENGTH)]= 0;
|
||||||
if (connect_errors > max_connect_errors)
|
if (connect_errors > max_connect_errors)
|
||||||
return(ER_HOST_IS_BLOCKED);
|
return(ER_HOST_IS_BLOCKED);
|
||||||
}
|
}
|
||||||
@ -2012,7 +2013,8 @@ mysql_execute_command(void)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
walk->lock_type= auxi->lock_type;
|
walk->lock_type= auxi->lock_type;
|
||||||
auxi->table= (TABLE *) walk; // Remember corresponding table
|
// Store address to table as we need it later
|
||||||
|
auxi->table= my_reinterpret_cast(TABLE *) (walk);
|
||||||
}
|
}
|
||||||
if (add_item_to_list(new Item_null()))
|
if (add_item_to_list(new Item_null()))
|
||||||
{
|
{
|
||||||
@ -2025,7 +2027,8 @@ mysql_execute_command(void)
|
|||||||
break;
|
break;
|
||||||
/* Fix tables-to-be-deleted-from list to point at opened tables */
|
/* Fix tables-to-be-deleted-from list to point at opened tables */
|
||||||
for (auxi=(TABLE_LIST*) aux_tables ; auxi ; auxi=auxi->next)
|
for (auxi=(TABLE_LIST*) aux_tables ; auxi ; auxi=auxi->next)
|
||||||
auxi->table= ((TABLE_LIST*) auxi->table)->table;
|
auxi->table= (my_reinterpret_cast(TABLE_LIST*) (auxi->table))->table;
|
||||||
|
|
||||||
if (!thd->fatal_error && (result= new multi_delete(thd,aux_tables,
|
if (!thd->fatal_error && (result= new multi_delete(thd,aux_tables,
|
||||||
table_count)))
|
table_count)))
|
||||||
{
|
{
|
||||||
@ -3321,7 +3324,7 @@ static bool create_total_list(THD *thd, LEX *lex, TABLE_LIST **result)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
aux->shared=1; // Mark that it's used twice
|
aux->shared=1; // Mark that it's used twice
|
||||||
aux->table=(TABLE *) cursor;
|
aux->table= my_reinterpret_cast(TABLE *) (cursor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
|
|||||||
{
|
{
|
||||||
if (cursor->do_redirect) // False if CUBE/ROLLUP
|
if (cursor->do_redirect) // False if CUBE/ROLLUP
|
||||||
{
|
{
|
||||||
cursor->table= ((TABLE_LIST*) cursor->table)->table;
|
cursor->table= (my_reinterpret_cast(TABLE_LIST*) (cursor->table))->table;
|
||||||
cursor->do_redirect= 0;
|
cursor->do_redirect= 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
|
|||||||
bzero((char*) keyinfo,n_length);
|
bzero((char*) keyinfo,n_length);
|
||||||
outparam->key_info=keyinfo;
|
outparam->key_info=keyinfo;
|
||||||
outparam->max_key_length= outparam->total_key_length= 0;
|
outparam->max_key_length= outparam->total_key_length= 0;
|
||||||
key_part= (KEY_PART_INFO*) (keyinfo+keys);
|
key_part= my_reinterpret_cast(KEY_PART_INFO*) (keyinfo+keys);
|
||||||
strpos=disk_buff+6;
|
strpos=disk_buff+6;
|
||||||
|
|
||||||
ulong *rec_per_key;
|
ulong *rec_per_key;
|
||||||
|
@ -1241,7 +1241,7 @@ static void handle_child(int __attribute__((unused)) sig)
|
|||||||
signal(SIGCHLD,handle_child);
|
signal(SIGCHLD,handle_child);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct manager_thd* manager_thd_new(Vio* vio)
|
static struct manager_thd* manager_thd_new(Vio* vio)
|
||||||
{
|
{
|
||||||
struct manager_thd* tmp;
|
struct manager_thd* tmp;
|
||||||
if (!(tmp=(struct manager_thd*)my_malloc(sizeof(*tmp),
|
if (!(tmp=(struct manager_thd*)my_malloc(sizeof(*tmp),
|
||||||
|
Reference in New Issue
Block a user