mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Merge
mysql-test/r/union.result: Auto merged mysql-test/t/union.test: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/item_sum.cc: Auto merged sql/item_sum.h: Auto merged sql/mysql_priv.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_derived.cc: Auto merged sql/sql_union.cc: Auto merged sql/sql_yacc.yy: Auto merged mysql-test/r/subselect.result: SCCS merged mysql-test/t/subselect.test: SCCS merged
This commit is contained in:
commit
ff8c8fa1ef
402 changed files with 12963 additions and 7323 deletions
18
.bzrignore
18
.bzrignore
|
@ -23,6 +23,7 @@
|
|||
.vimrc
|
||||
50
|
||||
=6
|
||||
BUILD/compile-pentium-maintainer
|
||||
BitKeeper/etc/config
|
||||
BitKeeper/etc/csets
|
||||
BitKeeper/etc/csets-in
|
||||
|
@ -30,6 +31,8 @@ BitKeeper/etc/csets-out
|
|||
BitKeeper/etc/gone
|
||||
BitKeeper/etc/level
|
||||
BitKeeper/etc/pushed
|
||||
BitKeeper/post-commit
|
||||
BitKeeper/post-commit-manual
|
||||
BitKeeper/tmp/*
|
||||
BitKeeper/tmp/bkr3sAHD
|
||||
BitKeeper/tmp/gone
|
||||
|
@ -223,6 +226,7 @@ bkpull.log.5
|
|||
bkpull.log.6
|
||||
bkpush.log
|
||||
build.log
|
||||
build_tags.sh
|
||||
client/insert_test
|
||||
client/log_event.cc
|
||||
client/log_event.h
|
||||
|
@ -305,12 +309,16 @@ libmysql/conf_to_src
|
|||
libmysql/my_static.h
|
||||
libmysql/mysys_priv.h
|
||||
libmysql/net.c
|
||||
libmysql/vio_priv.h
|
||||
libmysql_r/*.c
|
||||
libmysql_r/acconfig.h
|
||||
libmysql_r/conf_to_src
|
||||
libmysql_r/my_static.h
|
||||
libmysql_r/mysys_priv.h
|
||||
libmysql_r/vio_priv.h
|
||||
libmysqld/backup_dir
|
||||
libmysqld/client.c
|
||||
libmysqld/client_settings.h
|
||||
libmysqld/convert.cc
|
||||
libmysqld/derror.cc
|
||||
libmysqld/errmsg.c
|
||||
|
@ -355,6 +363,7 @@ libmysqld/item_sum.cc
|
|||
libmysqld/item_timefunc.cc
|
||||
libmysqld/item_uniq.cc
|
||||
libmysqld/key.cc
|
||||
libmysqld/libmysql.c
|
||||
libmysqld/lock.cc
|
||||
libmysqld/log.cc
|
||||
libmysqld/log_event.cc
|
||||
|
@ -366,6 +375,7 @@ libmysqld/net_serv.cc
|
|||
libmysqld/opt_ft.cc
|
||||
libmysqld/opt_range.cc
|
||||
libmysqld/opt_sum.cc
|
||||
libmysqld/pack.c
|
||||
libmysqld/password.c
|
||||
libmysqld/procedure.cc
|
||||
libmysqld/protocol.cc
|
||||
|
@ -473,6 +483,7 @@ mysql-test/r/rpl_log.eval
|
|||
mysql-test/r/slave-running.eval
|
||||
mysql-test/r/slave-stopped.eval
|
||||
mysql-test/share/mysql
|
||||
mysql-test/std_data/*.pem
|
||||
mysql-test/var/*
|
||||
mysql.kdevprj
|
||||
mysql.proj
|
||||
|
@ -482,6 +493,7 @@ mysys/#mf_iocache.c#
|
|||
mysys/charset2html
|
||||
mysys/getopt.c
|
||||
mysys/getopt1.c
|
||||
mysys/main.cc
|
||||
mysys/ste5KbMa
|
||||
mysys/test_charset
|
||||
mysys/test_dir
|
||||
|
@ -585,6 +597,7 @@ stamp-h1
|
|||
stamp-h2
|
||||
stamp-h3
|
||||
stamp-h4
|
||||
start_mysqld.sh
|
||||
strings/conf_to_src
|
||||
strings/ctype_autoconf.c
|
||||
strings/ctype_extra_sources.c
|
||||
|
@ -611,6 +624,7 @@ support-files/mysql.spec
|
|||
tags
|
||||
test_xml
|
||||
tests/client_test
|
||||
tests/connect_test
|
||||
thread_test
|
||||
tmp/*
|
||||
tools/my_vsnprintf.c
|
||||
|
@ -622,7 +636,3 @@ vio/test-ssl
|
|||
vio/test-sslclient
|
||||
vio/test-sslserver
|
||||
vio/viotest-ssl
|
||||
libmysqld/client.c
|
||||
libmysqld/client_settings.h
|
||||
libmysqld/libmysql.c
|
||||
libmysqld/pack.c
|
||||
|
|
|
@ -23,12 +23,16 @@ autoconf || (echo \"Can't execute autoconf\" && exit 1)
|
|||
if [ -d gemini ]
|
||||
then
|
||||
(cd gemini && aclocal && autoheader && aclocal && automake && autoconf)
|
||||
fi
|
||||
fi"
|
||||
|
||||
if [ -z "$just_clean" ]
|
||||
then
|
||||
commands="$commands
|
||||
CFLAGS=\"$cflags\" CXX=\"$CXX\" CXXFLAGS=\"$cxxflags\" CXXLDFLAGS=\"$CXXLDFLAGS\" \
|
||||
$configure"
|
||||
fi
|
||||
|
||||
if [ -z "$just_configure" ]
|
||||
if [ -z "$just_configure" -a -z "$just_clean" ]
|
||||
then
|
||||
commands="$commands
|
||||
|
||||
|
|
8
BUILD/cleanup
Executable file
8
BUILD/cleanup
Executable file
|
@ -0,0 +1,8 @@
|
|||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
just_clean=1;
|
||||
|
||||
. "$path/FINISH.sh"
|
|
@ -20,7 +20,9 @@ bk@admin.bk
|
|||
bk@mysql.r18.ru
|
||||
carsten@tsort.bitbybit.dk
|
||||
davida@isil.mysql.com
|
||||
dlenev@build.mysql.com
|
||||
dlenev@mysql.com
|
||||
gerberb@ou800.zenez.com
|
||||
gluh@gluh.(none)
|
||||
gluh@gluh.mysql.r18.ru
|
||||
greg@gcw.ath.cx
|
||||
|
@ -71,6 +73,7 @@ monty@donna.mysql.fi
|
|||
monty@hundin.mysql.fi
|
||||
monty@mashka.(none)
|
||||
monty@mashka.mysql.fi
|
||||
monty@mishka.mysql.fi
|
||||
monty@narttu.
|
||||
monty@narttu.mysql.fi
|
||||
monty@rescue.
|
||||
|
@ -95,6 +98,7 @@ peter@linux.local
|
|||
peter@mysql.com
|
||||
peterg@mysql.com
|
||||
pgulutzan@linux.local
|
||||
ram@gw.mysql.r18.ru
|
||||
ram@gw.udmsearch.izhnet.ru
|
||||
ram@mysql.r18.ru
|
||||
ram@ram.(none)
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
# written by Lenz Grimmer <lenz@mysql.com>
|
||||
#
|
||||
|
||||
use Cwd;
|
||||
use Getopt::Long;
|
||||
Getopt::Long::Configure ("bundling");
|
||||
|
||||
|
@ -26,18 +27,19 @@ else
|
|||
|
||||
# Some predefined settings
|
||||
$build_command= "BUILD/compile-pentium-max";
|
||||
chomp ($LOGFILE= `pwd`);
|
||||
$LOGFILE.= "/Bootstrap.log";
|
||||
chomp ($opt_directory= `pwd`);
|
||||
$opt_docdir= $opt_directory . "/mysqldoc";
|
||||
$PWD= cwd();
|
||||
$LOGFILE= $PWD . "/Bootstrap.log";
|
||||
$opt_docdir= $PWD . "/mysqldoc";
|
||||
$opt_build_command= undef;
|
||||
$opt_changelog= undef;
|
||||
$opt_delete= undef;
|
||||
$opt_directory= $PWD;
|
||||
$opt_dry_run= undef;
|
||||
$opt_export_only= undef;
|
||||
$opt_help= $opt_verbose= 0;
|
||||
$opt_log= undef;
|
||||
$opt_mail= "";
|
||||
$opt_pull= undef;
|
||||
$opt_revision= undef;
|
||||
$opt_suffix= "";
|
||||
$opt_test= undef;
|
||||
|
@ -58,6 +60,7 @@ GetOptions(
|
|||
"help|h",
|
||||
"log|l:s",
|
||||
"mail|m=s",
|
||||
"pull|p",
|
||||
"revision|r=s",
|
||||
"skip-check|s",
|
||||
"skip-manual",
|
||||
|
@ -80,8 +83,7 @@ if (defined $opt_log)
|
|||
}
|
||||
else
|
||||
{
|
||||
chomp ($LOGFILE= `pwd`);
|
||||
$LOGFILE.= "/" . $opt_log;
|
||||
$LOGFILE= $PWD . "/" . $opt_log;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -103,13 +105,30 @@ defined($REPO=$ARGV[0]) || print_help("Please enter the BK repository to be used
|
|||
system ("bk help > /dev/null") == 0 or &abort("Cannot execute BitKeeper binary!");
|
||||
system ("bk root $REPO > /dev/null 2>&1") == 0 or &abort("$REPO does not seem to be a valid BK repository!");
|
||||
|
||||
if (($opt_directory ne ".") && (!-d $opt_directory && !$opt_dry_run))
|
||||
if (($opt_directory ne $PWD) && (!-d $opt_directory && !$opt_dry_run))
|
||||
{
|
||||
&abort("Could not find target directory \"$opt_directory\"!");
|
||||
}
|
||||
|
||||
&logger("Logging to $LOGFILE") if (defined $opt_log);
|
||||
|
||||
#
|
||||
# Pull recent changes first
|
||||
#
|
||||
if ($opt_pull)
|
||||
{
|
||||
&logger("Updating BK tree $REPO to latest ChangeSet first");
|
||||
$command= "cd $REPO; bk pull; cd ..";
|
||||
&run_command($command, "Could not update $REPO!");
|
||||
|
||||
unless ($opt_skip_manual)
|
||||
{
|
||||
&logger("Updating manual tree in $opt_docdir");
|
||||
$command= "cd $opt_docdir; bk pull; cd ..";
|
||||
&run_command($command, "Could not update $opt_docdir!");
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Use a temporary name until we know the version number
|
||||
#
|
||||
|
@ -253,7 +272,7 @@ if (defined $opt_changelog)
|
|||
#
|
||||
# Add the latest manual from the mysqldoc tree
|
||||
#
|
||||
if (!$opt_skip_manual)
|
||||
unless ($opt_skip_manual)
|
||||
{
|
||||
$msg= "Adding manual.texi";
|
||||
&logger($msg);
|
||||
|
@ -310,7 +329,7 @@ $command= "make dist";
|
|||
if ($opt_win_dist)
|
||||
{
|
||||
&logger ("Creating Windows source package");
|
||||
$command= "./scripts/make_win_src_distibution";
|
||||
$command= "./scripts/make_win_src_distribution --tar --zip";
|
||||
&run_command($command, "make_win_src_distribution failed!");
|
||||
}
|
||||
|
||||
|
@ -378,6 +397,7 @@ Options:
|
|||
include a log file snippet, if logging is enabled)
|
||||
Note that the \@-Sign needs to be quoted!
|
||||
Example: --mail=user\\\@domain.com
|
||||
-p, --pull Update the source BK trees before building
|
||||
-r, --revision=<rev> Export the tree as of revision <rev>
|
||||
(default is up to the latest revision)
|
||||
-s, --skip-check Skip checking the distribution with "make distcheck"
|
||||
|
|
|
@ -8,7 +8,7 @@ use Getopt::Long;
|
|||
$opt_distribution=$opt_user=$opt_config_env="";
|
||||
$opt_dbd_options=$opt_perl_options=$opt_config_options=$opt_make_options=$opt_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=$opt_no_benchmark=$opt_no_mysqltest=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=$opt_without_embedded=$opt_readline=0;
|
||||
$opt_innodb=$opt_bdb=$opt_raid=$opt_libwrap=0;
|
||||
|
||||
GetOptions(
|
||||
|
@ -36,6 +36,7 @@ GetOptions(
|
|||
"perl-files=s",
|
||||
"perl-options=s",
|
||||
"raid",
|
||||
"readline",
|
||||
"stage=i",
|
||||
"static-client",
|
||||
"static-perl",
|
||||
|
@ -51,6 +52,7 @@ GetOptions(
|
|||
"with-low-memory",
|
||||
"with-other-libc=s",
|
||||
"with-small-disk",
|
||||
"without-embedded",
|
||||
) || usage();
|
||||
|
||||
usage() if ($opt_help);
|
||||
|
@ -230,6 +232,8 @@ if ($opt_stage <= 1)
|
|||
$opt_config_options.= " --with-low-memory" if ($opt_with_low_memory);
|
||||
$opt_config_options.= " --with-mysqld-ldflags=-all-static" if ($opt_static_server);
|
||||
$opt_config_options.= " --with-raid" if ($opt_raid);
|
||||
$opt_config_options.= " --with-readline" if ($opt_readline);
|
||||
$opt_config_options.= " --with-embedded-server" unless ($opt_without_embedded);
|
||||
|
||||
# Only enable InnoDB when requested (required to be able to
|
||||
# build the "Classic" packages that do not include InnoDB)
|
||||
|
@ -446,10 +450,10 @@ $0 takes the following options:
|
|||
--bdb
|
||||
Compile with support for Berkeley DB tables
|
||||
|
||||
--config-env <environment for configure>
|
||||
--config-env=<environment for configure>
|
||||
To set up the environment, like 'CC=cc CXX=gcc CXXFLAGS=-O3'
|
||||
|
||||
--config-options <options>
|
||||
--config-options=<options>
|
||||
To add some extra options to configure (e.g. '--with-perl=yes')
|
||||
|
||||
--dbd-options <options>
|
||||
|
@ -461,7 +465,7 @@ Print all shell commands on stdout.
|
|||
--delete
|
||||
Delete the distribution file.
|
||||
|
||||
--distribution <distribution_file>
|
||||
--distribution=<distribution_file>
|
||||
Name of the MySQL source distribution file.
|
||||
|
||||
--enable-shared
|
||||
|
@ -482,7 +486,7 @@ Compile with TCP wrapper support
|
|||
--local-perl
|
||||
Install Perl modules locally
|
||||
|
||||
--make-options <options>
|
||||
--make-options=<options>
|
||||
Options to make after configure. (Like 'CXXLD=gcc')
|
||||
|
||||
--no-crash-me
|
||||
|
@ -500,16 +504,22 @@ 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
|
||||
--no-perl
|
||||
Do not compile or install Perl modules, use the system installed ones
|
||||
|
||||
--perl-files=<list of files>
|
||||
Compile and install the given perl modules.
|
||||
|
||||
--perl-options <options>
|
||||
--perl-options=<options>
|
||||
Build Perl modules with the additional options
|
||||
|
||||
--raid
|
||||
Compile with RAID support
|
||||
|
||||
--stage (1-6)
|
||||
--readline
|
||||
Compile against readline library instead of libedit
|
||||
|
||||
--stage=[1-6]
|
||||
Start script from some specific point.
|
||||
|
||||
--static-client
|
||||
|
@ -524,18 +534,18 @@ Build statically linked server binary
|
|||
--tcpip
|
||||
Connect to the server to be tested via TCP/IP instead of socket
|
||||
|
||||
--tmp <directory>
|
||||
--tmp=<directory>
|
||||
Use a different temporary directory than /tmp
|
||||
|
||||
--use-old-distribution
|
||||
Do not clean up the build environment and extract a fresh source
|
||||
distribution, use an existing one instead.
|
||||
|
||||
--user <user_name>
|
||||
--user=<user_name>
|
||||
Mail 'user_name'\@mysql.com if something went wrong.
|
||||
If user is empty then no mail is sent.
|
||||
|
||||
--version-suffix suffix
|
||||
--version-suffix=suffix
|
||||
Set name suffix (e.g. 'com' or '-max') for a distribution
|
||||
|
||||
--with-debug
|
||||
|
@ -544,13 +554,16 @@ Build binaries with debug information (implies "--no-strip")
|
|||
--with-low-memory
|
||||
Use less memory when compiling.
|
||||
|
||||
--with-other-libc <path to libc>
|
||||
--with-other-libc=<path to libc>
|
||||
Link against libc and other standard libraries installed in the specified
|
||||
non-standard location overriding default.
|
||||
|
||||
--with-small-disk
|
||||
Clean up the build environment before testing the binary distribution
|
||||
(to save disk space)
|
||||
|
||||
--without-embedded
|
||||
Don't compile the embedded server.
|
||||
EOF
|
||||
exit 1;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Do-pkg - convert a binary distribution into a Mac OS X PKG and put it
|
||||
# inside a Disk Image (.dmg)
|
||||
# inside a Disk Image (.dmg). Additionally, add a separate package,
|
||||
# including the required Startup Item to automatically start MySQL on
|
||||
# bootup.
|
||||
#
|
||||
# The script currently assumes the following environment (which should exist
|
||||
# like that, if the Do-compile script was used to build the binary
|
||||
|
@ -17,14 +19,19 @@
|
|||
# written by Lenz Grimmer <lenz@mysql.com>
|
||||
#
|
||||
|
||||
use Cwd;
|
||||
use File::Basename;
|
||||
use File::Copy;
|
||||
use Getopt::Long;
|
||||
Getopt::Long::Configure ("bundling");
|
||||
use Sys::Hostname;
|
||||
|
||||
$opt_dry_run= undef;
|
||||
$opt_help= undef;
|
||||
$opt_log= undef;
|
||||
$opt_mail= "";
|
||||
$opt_skip_dmg= undef;
|
||||
$opt_skip_si= undef;
|
||||
$opt_suffix= undef;
|
||||
$opt_verbose= undef;
|
||||
$opt_version= undef;
|
||||
|
@ -35,13 +42,14 @@ GetOptions(
|
|||
"log|l:s",
|
||||
"mail|m=s",
|
||||
"skip-dmg|skip-disk-image|s",
|
||||
"skip-si|skip-startup-item",
|
||||
"suffix=s",
|
||||
"verbose|v",
|
||||
"version=s",
|
||||
) || &print_help;
|
||||
|
||||
# Include helper functions
|
||||
chomp($PWD= `pwd`);
|
||||
$PWD= cwd();
|
||||
$LOGGER= "$PWD/logger.pm";
|
||||
if (-f "$LOGGER")
|
||||
{
|
||||
|
@ -54,7 +62,7 @@ else
|
|||
|
||||
$PM= "/Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker";
|
||||
$TMP= $ENV{TMPDIR};
|
||||
$TMP eq "" ? $TMP= $TMP . "/PKGBUILD": $TMP= "/tmp/PKGBUILD";
|
||||
$TMP eq "" ? $TMP= $TMP . "/PKGBUILD.$$": $TMP= "/tmp/PKGBUILD.$$";
|
||||
$PKGROOT= "$TMP/PMROOT";
|
||||
$PKGDEST= "$TMP/PKG";
|
||||
$RESOURCE_DIR= "$TMP/Resources";
|
||||
|
@ -62,8 +70,8 @@ $SUFFIX= $opt_suffix;
|
|||
$VERSION= $opt_version;
|
||||
($MAJOR, $MINOR, $RELEASE)= split(/\./, $VERSION);
|
||||
$NAME= "mysql$SUFFIX-$VERSION";
|
||||
chomp($HOST= `hostname`);
|
||||
chomp($ID= `whoami`);
|
||||
$HOST= hostname();
|
||||
$ID= getpwuid($>);
|
||||
$HOST=~ /^([^.-]*)/;
|
||||
$HOST= $1;
|
||||
$LOGFILE= "$PWD/Logs/$HOST-$MAJOR.$MINOR$SUFFIX.log";
|
||||
|
@ -73,6 +81,12 @@ $SUPFILEDIR= <$SRCBASEDIR/support-files/MacOSX>;
|
|||
$TAR= <$BUILDDIR/$NAME-apple-darwin*-powerpc.tar.gz>;
|
||||
$INFO= <$SUPFILEDIR/Info.plist>;
|
||||
$DESC= <$SUPFILEDIR/Description.plist>;
|
||||
$SI_INFO= <$SUPFILEDIR/StartupItem.Info.plist>;
|
||||
$SI_DESC= <$SUPFILEDIR/StartupItem.Description.plist>;
|
||||
$SI_PARAMS= <$SUPFILEDIR/StartupParameters.plist>;
|
||||
$SI_POST= <$SUPFILEDIR/StartupItem.postinstall>;
|
||||
$SI_NAME= "MySQLStartupItem";
|
||||
$SI_SCRIPT= <$SUPFILEDIR/MySQL>;
|
||||
@RESOURCES= qw/ ReadMe.txt postinstall preinstall /;
|
||||
@LICENSES= ("$SRCBASEDIR/COPYING","$SRCBASEDIR/MySQLEULA.txt");
|
||||
|
||||
|
@ -99,7 +113,9 @@ if (defined $opt_log)
|
|||
# Creating the UFS disk image requires root privileges
|
||||
die("You must be root to run this script!") if ($ID ne "root" && !$opt_dry_run);
|
||||
|
||||
foreach $file ($TAR, $INFO, $DESC)
|
||||
@files= ($TAR, $INFO, $DESC);
|
||||
@files= (@files, $SI_INFO, $SI_DESC, $SI_POST, $SI_SCRIPT) unless $opt_skip_si;
|
||||
foreach $file (@files)
|
||||
{
|
||||
&abort("Unable to find $file!") unless (-f "$file");
|
||||
}
|
||||
|
@ -112,14 +128,22 @@ foreach $dir ($TMP, $PKGROOT, $PKGDEST, $RESOURCE_DIR)
|
|||
{
|
||||
if (!-d $dir)
|
||||
{
|
||||
&run_command("mkdir $dir", "Could not make directory $dir!");
|
||||
&logger("Creating directory $dir!");
|
||||
unless($opt_dry_run)
|
||||
{
|
||||
mkdir($dir) or &abort("Could not make directory $dir!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach $resfile (@RESOURCES)
|
||||
{
|
||||
$command= "cp $SUPFILEDIR/$resfile $RESOURCE_DIR";
|
||||
&run_command($command, "Error while copying $SUPFILEDIR/$resfile to $RESOURCE_DIR");
|
||||
&logger("Copying $SUPFILEDIR/$resfile to $RESOURCE_DIR");
|
||||
unless($opt_dry_run)
|
||||
{
|
||||
copy("$SUPFILEDIR/$resfile", "$RESOURCE_DIR") or
|
||||
&abort("Error while copying $SUPFILEDIR/$resfile to $RESOURCE_DIR");
|
||||
}
|
||||
}
|
||||
|
||||
# Search for license file
|
||||
|
@ -127,12 +151,17 @@ foreach $license (@LICENSES)
|
|||
{
|
||||
if (-f "$license")
|
||||
{
|
||||
$command= "cp $license $RESOURCE_DIR/License.txt";
|
||||
&run_command($command, "Error while copying $license to $RESOURCE_DIR");
|
||||
&logger("Copy $license to $RESOURCE_DIR/License.txt");
|
||||
unless($opt_dry_run)
|
||||
{
|
||||
copy("$license", "$RESOURCE_DIR/License.txt") or
|
||||
&abort("Error while copying $license to $RESOURCE_DIR");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&abort("Could not find a license file!") unless (-f "$RESOURCE_DIR/License.txt");
|
||||
&abort("Could not find a license file!")
|
||||
unless (-f "$RESOURCE_DIR/License.txt");
|
||||
|
||||
# Extract the binary tarball and create the "mysql" symlink
|
||||
&logger("Extracting $TAR to $PKGROOT");
|
||||
|
@ -145,10 +174,38 @@ foreach $license (@LICENSES)
|
|||
# returning a non-zero value, even though the package was created correctly
|
||||
&logger("Running PackageMaker");
|
||||
$command= "$PM -build -p $PKGDEST/$NAME.pkg -f $PKGROOT -r $RESOURCE_DIR -i $INFO -d $DESC || true";
|
||||
&run_command($command, "Error while building package!");
|
||||
&run_command($command, "Error while building package $NAME.pkg!");
|
||||
|
||||
&logger("Removing $PKGROOT");
|
||||
&run_command("rm -rf $PKGROOT", "Unable to remove $PKGROOT!");
|
||||
#
|
||||
# Build the Startup Item PKG
|
||||
#
|
||||
unless ($opt_skip_si)
|
||||
{
|
||||
&logger("Cleaning up $PKGROOT");
|
||||
&run_command("rm -rf $PKGROOT/*", "Unable to clean up $PKGROOT!");
|
||||
&logger("Cleaning up $RESOURCE_DIR");
|
||||
&run_command("rm -rf $RESOURCE_DIR/*", "Unable to clean up $RESOURCE_DIR!");
|
||||
|
||||
&logger("Installing MySQL StartupItem files into $PKGROOT/MySQL");
|
||||
unless($opt_dry_run)
|
||||
{
|
||||
mkdir("$PKGROOT/MySQL") or &abort("Error creating $PKGROOT/MySQL");
|
||||
copy("$SI_SCRIPT", "$PKGROOT/MySQL/")
|
||||
or &abort("Error copying $SI_SCRIPT!");
|
||||
chmod(0755, "$PKGROOT/MySQL/" . basename("$SI_SCRIPT"));
|
||||
copy("$SI_PARAMS", "$PKGROOT/MySQL/")
|
||||
or &abort("Error copying $SI_PARAMS!");
|
||||
chmod(0644, "$PKGROOT/MySQL/" . basename("$SI_PARAMS"));
|
||||
&run_command("chown -R root.wheel $PKGROOT/*", "Cannot chown $PKGROOT!");
|
||||
copy("$SI_POST", "$RESOURCE_DIR/postinstall")
|
||||
or &abort("Error copying $SI_POST!");
|
||||
chmod(0644, "$RESOURCE_DIR/postinstall");
|
||||
}
|
||||
|
||||
&logger("Building $SI_NAME.pkg using PackageMaker");
|
||||
$command= "$PM -build -p $PKGDEST/$SI_NAME.pkg -f $PKGROOT -r $RESOURCE_DIR -i $SI_INFO -d $SI_DESC || true";
|
||||
&run_command($command, "Error while building package $SI_NAME.pkg!");
|
||||
}
|
||||
|
||||
if ($opt_skip_dmg)
|
||||
{
|
||||
|
@ -159,7 +216,7 @@ if ($opt_skip_dmg)
|
|||
# Determine the size of the Disk image to be created and add a 5% safety
|
||||
# margin for filesystem overhead
|
||||
&logger("Determining required disk image size for $PKGDEST");
|
||||
if (! $opt_dry_run)
|
||||
unless($opt_dry_run)
|
||||
{
|
||||
chomp($_= `du -sk $PKGDEST`);
|
||||
@size= split();
|
||||
|
@ -167,7 +224,10 @@ if (! $opt_dry_run)
|
|||
&logger("Disk image size: $size KB");
|
||||
}
|
||||
|
||||
&abort("Zero bytes? Something is wrong here!") if ($size == 0);
|
||||
unless($opt_dry_run)
|
||||
{
|
||||
&abort("Zero bytes? Something is wrong here!") if ($size == 0);
|
||||
}
|
||||
|
||||
# Now create and mount the disk image
|
||||
$TMPNAME= $NAME . ".tmp";
|
||||
|
@ -181,7 +241,7 @@ $command= "hdiutil create $TMPNAME -size ${size}k -ov -fs UFS -volname $NAME";
|
|||
chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f3 -d" "`) if (!$opt_dry_run);
|
||||
&logger("Copying $PKGDEST/$NAME.pkg to Disk image /Volumes/$NAME");
|
||||
&run_command("ditto $PKGDEST /Volumes/$NAME", "Could not copy $PKGDEST to /Volumes/$NAME!");
|
||||
&run_command("ditto $RESOURCE_DIR/ReadMe.txt /Volumes/$NAME", "Could not copy $RESOURCE_DIR/ReadMe.txt to /Volumes/$NAME!");
|
||||
&run_command("ditto $SUPFILEDIR/ReadMe.txt /Volumes/$NAME", "Could not copy $SPFILEDIR/ReadMe.txt to /Volumes/$NAME!");
|
||||
chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f1 -d" "`) if (!$opt_dry_run);
|
||||
&abort("/Volumes/$NAME not attached!") if (!$mountpoint && !$opt_dry_run);
|
||||
&logger("Unmounting $mountpoint");
|
||||
|
@ -221,20 +281,23 @@ NOTE: You need to run this script with root privileges (required
|
|||
|
||||
Options:
|
||||
|
||||
--dry-run Dry run without executing
|
||||
-h, --help Print this help
|
||||
-l, --log[=<filename>] Write a log file [to <filename>]
|
||||
(default is "$LOGFILE")
|
||||
-m, --mail=<address> Mail a failure report to the given address
|
||||
(and include a log file snippet, if logging
|
||||
is enabled)
|
||||
Note that the \@-Sign needs to be quoted!
|
||||
Example: --mail=user\\\@domain.com
|
||||
-s, --skip-disk-image Just build the PKG, don't put it into a
|
||||
disk image afterwards
|
||||
--suffix=<suffix> The package suffix (e.g. "-standard" or "-pro)
|
||||
--version=<version> The MySQL version number (e.g. 4.0.11-gamma)
|
||||
-v, --verbose Verbose execution
|
||||
--dry-run Dry run without executing
|
||||
-h, --help Print this help
|
||||
-l, --log[=<filename>] Write a log file [to <filename>]
|
||||
(default is "$LOGFILE")
|
||||
-m, --mail=<address> Mail a failure report to the given
|
||||
address (and include a log file snippet,
|
||||
if logging is enabled)
|
||||
Note that the \@-Sign needs to be quoted!
|
||||
Example: --mail=user\\\@domain.com
|
||||
-s, --skip-disk-image, --skip-dmg Just build the PKGs, don't put it into a
|
||||
disk image afterwards
|
||||
--skip-startup-item, --skip-si Skip the creation of the StartupItem PKG
|
||||
--suffix=<suffix> The package suffix
|
||||
(e.g. "-standard" or "-pro)
|
||||
--version=<version> The MySQL version number
|
||||
(e.g. 4.0.11-gamma)
|
||||
-v, --verbose Verbose execution
|
||||
|
||||
EOF
|
||||
exit 1;
|
||||
|
|
|
@ -1,259 +1,227 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Do-rpm - compile RPM packages out of a source tarball and move the
|
||||
# resulting RPM packages into the current directory.
|
||||
#
|
||||
# The script currently assumes the following environment (which should exist
|
||||
# like that, if the Do-compile script was used to build the binary
|
||||
# distribution)
|
||||
#
|
||||
# - there must be a source distribution (mysql-<version>.tar.gz)
|
||||
# in the current directory
|
||||
# - there must be a spec file (mysql-<version>.spec) in the directory
|
||||
# $HOME/<hostname>/mysql-<version>/support-files/
|
||||
#
|
||||
# Use the "--help" option for more info!
|
||||
#
|
||||
# written by Lenz Grimmer <lenz@mysql.com>
|
||||
#
|
||||
|
||||
#helper functions
|
||||
use Cwd;
|
||||
use File::Basename;
|
||||
use File::Copy;
|
||||
use Getopt::Long;
|
||||
Getopt::Long::Configure ("bundling");
|
||||
use Sys::Hostname;
|
||||
|
||||
function copy_to_bmachine
|
||||
$opt_cc= undef;
|
||||
$opt_cflags= undef;
|
||||
$opt_clean= undef;
|
||||
$opt_cxx= undef;
|
||||
$opt_cxxflags= undef;
|
||||
$opt_dry_run= undef;
|
||||
$opt_help= undef;
|
||||
$opt_log= undef;
|
||||
$opt_mail= "";
|
||||
$opt_verbose= undef;
|
||||
|
||||
$MAJOR= $MINOR= $RELEASE= 0;
|
||||
|
||||
GetOptions(
|
||||
"cc=s",
|
||||
"cflags=s",
|
||||
"clean|c",
|
||||
"cxx=s",
|
||||
"cxxflags=s",
|
||||
"dry-run|t",
|
||||
"help|h",
|
||||
"log|l:s",
|
||||
"mail|m=s",
|
||||
"verbose|v",
|
||||
) || &print_help;
|
||||
|
||||
defined($VERSION=$ARGV[0]) || print_help("Please provide the MySQL version!");
|
||||
|
||||
# Include helper functions
|
||||
$PWD= cwd();
|
||||
$LOGGER= "$PWD/logger.pm";
|
||||
if (-f "$LOGGER")
|
||||
{
|
||||
if [ x$local_build = x1 ]; then
|
||||
rm -f $2
|
||||
cp $1 $2
|
||||
else
|
||||
scp $1 $owner@$bmachine:$2
|
||||
fi
|
||||
do "$LOGGER";
|
||||
}
|
||||
else
|
||||
{
|
||||
die "ERROR: $LOGGER cannot be found!\n";
|
||||
}
|
||||
|
||||
function copy_from_bmachine
|
||||
#
|
||||
# Override predefined Log file name
|
||||
#
|
||||
if (defined $opt_log)
|
||||
{
|
||||
if [ x$local_build = x1 ]; then
|
||||
rm -f $2
|
||||
cp $1 $2
|
||||
else
|
||||
scp $owner@$bmachine:$1 $2
|
||||
fi
|
||||
if ($opt_log ne "")
|
||||
{
|
||||
if ($opt_log =~ /^\/.*/)
|
||||
{
|
||||
$LOGFILE= $opt_log;
|
||||
}
|
||||
else
|
||||
{
|
||||
$LOGFILE= $PWD . "/" . $opt_log;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function run_command
|
||||
($MAJOR, $MINOR, $RELEASE)= split(/\./, $VERSION);
|
||||
$HOST= hostname();
|
||||
$HOST=~ /^([^.-]*)/;
|
||||
$HOST= $1;
|
||||
$LOGFILE= "$PWD/Logs/Do-rpm-$HOST-$MAJOR.$MINOR.log";
|
||||
|
||||
&print_help("") if ($opt_help);
|
||||
|
||||
#
|
||||
# Newer RPM versions ship with a separate tool "rpmbuild" to build RPMs
|
||||
#
|
||||
if (-x "/usr/bin/rpmbuild")
|
||||
{
|
||||
if [ x$local_build = x1 ]; then
|
||||
bash $1
|
||||
else
|
||||
cat $1 | ssh $owner@$bmachine bash
|
||||
fi
|
||||
$RPM= "/usr/bin/rpmbuild";
|
||||
}
|
||||
else
|
||||
{
|
||||
$RPM= "/bin/rpm";
|
||||
}
|
||||
|
||||
#Supply defaults
|
||||
if ($RPM)
|
||||
{
|
||||
&logger("Found rpm binary: $RPM");
|
||||
}
|
||||
else
|
||||
{
|
||||
&abort("Unable to find RPM binary!");
|
||||
}
|
||||
|
||||
# We built on one of two machines
|
||||
bmachine=work
|
||||
smachine=work
|
||||
owner=my
|
||||
#
|
||||
# determine some RPM settings for this host
|
||||
#
|
||||
chomp($RPMARCH= `$RPM --eval "%{_arch}" 2> /dev/null`);
|
||||
chomp($RPMDIR= `$RPM --eval "%{_rpmdir}" 2> /dev/null`);
|
||||
chomp($SOURCEDIR= `$RPM --eval "%{_sourcedir}" 2> /dev/null`);
|
||||
chomp($SPECDIR= `$RPM --eval "%{_specdir}" 2> /dev/null`);
|
||||
chomp($SRCRPMDIR= `$RPM --eval "%{_srcrpmdir}" 2> /dev/null`);
|
||||
|
||||
# Hard path!!
|
||||
bpath=`/bin/pwd`
|
||||
$SOURCEFILE= "mysql-$VERSION.tar.gz";
|
||||
$SPECFILE= "$PWD/$HOST/mysql-$VERSION/support-files/mysql-$VERSION.spec";
|
||||
|
||||
for d in /usr/src/redhat /usr/src/packages ; do
|
||||
if test -d "$d"
|
||||
then
|
||||
rpmdir=$d
|
||||
fi
|
||||
done
|
||||
&logger("Starting RPM build of MySQL-$VERSION on $HOST");
|
||||
|
||||
if test -z "$rpmdir"
|
||||
then
|
||||
echo "Could not find suitable rpmdir on this system"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
foreach $file ($SOURCEFILE, $SPECFILE)
|
||||
{
|
||||
&abort("Unable to find $file!") unless (-f "$file");
|
||||
}
|
||||
|
||||
logdir="$bpath/Logs"
|
||||
#
|
||||
# Install source and spec file
|
||||
#
|
||||
&logger("Copying SOURCE and SPEC file to build directories.");
|
||||
copy($SOURCEFILE, $SOURCEDIR)
|
||||
or &abort("Unable to copy $SOURCEFILE to $SOURCEDIR!");
|
||||
copy($SPECFILE, $SPECDIR)
|
||||
or &abort("Unable to copy $SPECFILE to $SPECDIR!");
|
||||
|
||||
###### Perl STUFF #####
|
||||
#
|
||||
# Set environment variables - these are being used in the
|
||||
# official MySQL RPM spec file
|
||||
#
|
||||
&logger("Setting special build environment variables")
|
||||
if ($opt_cc) or ($opt_cflags) or ($opt_cxxflags) or ($opt_cxx);
|
||||
$ENV{MYSQL_BUILD_CC}=$opt_cc if ($opt_cc);
|
||||
$ENV{MYSQL_BUILD_CFLAGS}=$opt_cflags if ($opt_cflags);
|
||||
$ENV{MYSQL_BUILD_CXXFLAGS}=$opt_cxxflags if ($opt_cxxflags);
|
||||
$ENV{MYSQL_BUILD_CXX}=$opt_cxx if ($opt_cxx);
|
||||
|
||||
# Perl version numbers. Should be autodetected from the files in the
|
||||
# Perl-mysql-modules/ directory.
|
||||
DBI_VERSION="1.14"
|
||||
DATA_SHOWTABLE_VERSION="3.3"
|
||||
DBD_MYSQL_VERSION="1.2215"
|
||||
MAKERPM="$rpmdir/SOURCES/makerpm.pl"
|
||||
#
|
||||
# Build the RPMs
|
||||
#
|
||||
$command= "$RPM";
|
||||
$command.= " -v" if ($opt_verbose);
|
||||
$command.= " -ba";
|
||||
$command.= " --clean" if $opt_clean;
|
||||
$command.= " $SPECDIR/";
|
||||
$command.= basename($SPECFILE);
|
||||
&logger("Building RPM.");
|
||||
&run_command($command, "Error while building the RPMs!");
|
||||
|
||||
#######################
|
||||
AM_MAKEFLAGS="-j 2"
|
||||
#
|
||||
# Move the resulting RPMs into the pwd
|
||||
#
|
||||
$command= "mv";
|
||||
$command.= " -v " if ($opt_verbose);
|
||||
$command.= "$SRCRPMDIR/MySQL*$VERSION*.src.rpm $PWD";
|
||||
&run_command($command, "Error moving source RPM!");
|
||||
|
||||
VER=`grep "AM_INIT_AUTOMAKE(mysql, " $bpath/configure.in | \
|
||||
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;'`
|
||||
VER_NO_DASH=`echo $VER | sed -e "s|-.*$||"`
|
||||
tarball=$bpath/mysql-$VER.tar.gz
|
||||
$command= "mv";
|
||||
$command.= " -v " if ($opt_verbose);
|
||||
$command.= "$RPMDIR/$RPMARCH/MySQL*$VERSION*.$RPMARCH.rpm $PWD";
|
||||
&run_command($command, "Error moving binary RPMs!");
|
||||
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
--rpmdir=*)
|
||||
rpmdir=`echo $1 | sed -e "s;--rpmdir=;;"`
|
||||
;;
|
||||
--smachine=*)
|
||||
smachine=`echo $1 | sed -e "s;--smachine=;;"`
|
||||
;;
|
||||
--bmachine=*)
|
||||
bmachine=`echo $1 | sed -e "s;--bmachine=;;"`
|
||||
;;
|
||||
--owner=*)
|
||||
owner=`echo $1 | sed -e "s;--owner=;;"`
|
||||
;;
|
||||
--tarball=*)
|
||||
tarball=`echo $1 | sed -e "s;--tarball=;;"`
|
||||
;;
|
||||
--logdir=*)
|
||||
logdir=`echo $1 | sed -e "s;--logdir=;;"`
|
||||
;;
|
||||
--local )
|
||||
local_build=1
|
||||
;;
|
||||
--skip-perl )
|
||||
skip_perl=1
|
||||
;;
|
||||
* ) break ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
#
|
||||
# Clean up
|
||||
#
|
||||
if ($opt_clean)
|
||||
{
|
||||
&logger("Removing spec file and source package");
|
||||
unlink("$SPECDIR/" . basename($SPECFILE));
|
||||
unlink("$SOURCEDIR/$SOURCEFILE");
|
||||
}
|
||||
|
||||
echo "Removing old MySQL packages"
|
||||
rm -f $bpath/NEW-RPMS/MySQL-*rpm
|
||||
&logger("SUCCESS: RPM files successfully created.") if (!$opt_dry_run);
|
||||
exit 0;
|
||||
|
||||
if [ ! -d "$logdir" ]; then
|
||||
echo "$logdir does not exist, creating"
|
||||
mkdir -p $logdir
|
||||
fi
|
||||
sub print_help
|
||||
{
|
||||
my $message= $_[0];
|
||||
if ($message ne "")
|
||||
{
|
||||
print "\n";
|
||||
print "ERROR: $message\n\n}";
|
||||
}
|
||||
print <<EOF;
|
||||
|
||||
if [ ! -f "$tarball" ]; then
|
||||
echo "Tarball file $tarball does not exist, please make one first"
|
||||
exit 1
|
||||
fi
|
||||
Usage: Do-rpm <options> <version>
|
||||
|
||||
log=$logdir/Log-RPM-`date +%y%m%d-%H%M`
|
||||
Creates a binary RPM package out of a MySQL source distribution and moves the
|
||||
resulting RPMs into the current directory. <version> is the MySQL version
|
||||
number (e.g. 4.0.11-gamma)
|
||||
|
||||
echo "Building RPM for MySQL version $VER on $bmachine"
|
||||
echo "Details in $log"
|
||||
Options:
|
||||
|
||||
(
|
||||
set -x
|
||||
# remove old stuff
|
||||
rm -rf $rpmdir/BUILD/mysql-*
|
||||
rm -f $rpmdir/SOURCES/mysql-*
|
||||
rm -f $rpmdir/SRPMS/MySQL-*
|
||||
rm -f $rpmdir/SPECS/mysql-*
|
||||
rm -rf /var/tmp/mysql
|
||||
--cc=<compiler> Use <compiler> to compile C code
|
||||
--ccflags=<flags> Use special C compiler flags
|
||||
--cxx=<compiler> Use <compiler> to compile C++ code
|
||||
--cxxflags=<flags> Use special C++ compiler flags
|
||||
-c, --clean Clean up after the build
|
||||
-t, --dry-run Dry run without executing
|
||||
-h, --help Print this help
|
||||
-l, --log[=<filename>] Write a log file [to <filename>]
|
||||
(default is "$LOGFILE")
|
||||
-m, --mail=<address> Mail a failure report to the given address
|
||||
(and include a log file snippet, if logging
|
||||
is enabled)
|
||||
Note that the \@-Sign needs to be quoted!
|
||||
Example: --mail=user\\\@domain.com
|
||||
-v, --verbose Verbose execution
|
||||
|
||||
# Copy MySQL source and spec files
|
||||
|
||||
#Sasha: I left the scp stuff commented out instead of deleted to make it
|
||||
#easy to revert in a hurry, if there is a need. Once everything is tested
|
||||
#and works perfectly, the scp stuff should be deleted to avoid confusion
|
||||
|
||||
#scp $bpath/mysql-$VER.tar.gz $owner@$bmachine:$rpmdir/SOURCES
|
||||
copy_to_bmachine $tarball $rpmdir/SOURCES
|
||||
#scp $bpath/Docs/Images/mysql-logo.gif $owner@$bmachine:$rpmdir/SOURCES/mysql.gif
|
||||
copy_to_bmachine $bpath/Docs/Images/mysql-logo.gif $rpmdir/SOURCES/mysql.gif
|
||||
#scp $bpath/support-files/mysql-$VER.spec $owner@$bmachine:$rpmdir/SPECS
|
||||
copy_to_bmachine $bpath/support-files/mysql-$VER.spec $rpmdir/SPECS
|
||||
|
||||
# Copy perl things. Has to be uncompressed since Compress.pm is not
|
||||
# installed yet. Set CEXT to .gz when we support compression.
|
||||
CEXT=
|
||||
#scp $bpath/Perl-mysql-modules/To-SOURCES/* $owner@$bmachine:$rpmdir/SOURCES
|
||||
|
||||
# This had to be installed on the target machince!
|
||||
# http://www.perl.com/CPAN/modules/by-module/Archive/Archive-Tar-0.21.tar.gz
|
||||
# cd /usr/lib/perl5/site_perl/5.005; ln -s ../* .; rm -f 5.005
|
||||
|
||||
TMP_SCRIPT_MYSQL=00-temp-for-do-rpm.$$
|
||||
cat > $logdir/$TMP_SCRIPT_MYSQL <<END
|
||||
set -x
|
||||
|
||||
# Check environment
|
||||
#export MYSQL_BUILD_PATH="/usr/local/bin:/my/gnu/bin:/usr/bin:/bin"
|
||||
#export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mcpu=pentiumpro"
|
||||
#export MYSQL_BUILD_CXXFLAGS="-O6 -fno-omit-frame-pointer \
|
||||
# -felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpro"
|
||||
export MYSQL_BUILD_PATH="/usr/bin:/bin"
|
||||
export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mpentium"
|
||||
export MYSQL_BUILD_CXXFLAGS="-O6 -fno-omit-frame-pointer \
|
||||
-felide-constructors -fno-exceptions -fno-rtti -mpentium"
|
||||
gcc -v
|
||||
|
||||
# Make RPM
|
||||
rpm -ba $rpmdir/SPECS/mysql-$VER.spec
|
||||
rm -f /tmp/$TMP_SCRIPT_MYSQL
|
||||
END
|
||||
|
||||
if [ ! x$skip_perl=x1 ]; then
|
||||
|
||||
TMP_SCRIPT_PERL=00-temp-for-perl-rpm.$$
|
||||
cat > $logdir/$TMP_SCRIPT_PERL <<END
|
||||
set -x
|
||||
|
||||
# First clean up so we do not get old versions when wildcard matching
|
||||
rm -f $rpmdir/SOURCES/DBI-*.spec $rpmdir/SOURCES/mysql*
|
||||
rm -f $rpmdir/RPMS/i386/Perl-*.rpm
|
||||
rm -f $rpmdir/SRPMS/Perl-*.rpm
|
||||
rm -f $rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm
|
||||
rm -f $rpmdir/SRPMS/MySQL*-$VER_NO_DASH*.rpm
|
||||
|
||||
chmod a+x ${MAKERPM}
|
||||
rm
|
||||
|
||||
${MAKERPM} --verbose --package-name=DBI --package-version ${DBI_VERSION} \
|
||||
--specs --source=DBI-${DBI_VERSION}.tar$CEXT
|
||||
|
||||
rpm -ba $rpmdir/SPECS/DBI-${DBI_VERSION}.spec
|
||||
|
||||
${MAKERPM} --verbose --package-name=Data-ShowTable \
|
||||
--package-version ${DATA_SHOWTABLE_VERSION} \
|
||||
--specs --source=Data-ShowTable-${DATA_SHOWTABLE_VERSION}.tar$CEXT
|
||||
|
||||
rpm -ba $rpmdir/SPECS/Data-ShowTable-${DATA_SHOWTABLE_VERSION}.spec
|
||||
|
||||
for v in ${DBD_MYSQL_VERSION}; do
|
||||
${MAKERPM}
|
||||
--specs \
|
||||
--source=Msql-Mysql-modules-$v.tar$CEXT \
|
||||
--setup-dir=Msql-Mysql-modules-$v \
|
||||
--package-name=DBD-mysql \
|
||||
--package-version=$v \
|
||||
--makemakeropts='--noprompt --mysql-install --mysql-install-nodbd \
|
||||
--nomsql-install --nomsql1-install' \
|
||||
--require=perl-Data-ShowTable --require=perl-DBI
|
||||
rpm -ba $rpmdir/SPECS/DBD-mysql-$v.spec
|
||||
done
|
||||
|
||||
for srcrpm in $rpmdir/SRPMS/perl-*.src.rpm
|
||||
do
|
||||
rpm --rebuild $srcrpm
|
||||
done
|
||||
|
||||
rm -f /tmp/$TMP_SCRIPT_PERL
|
||||
END
|
||||
fi
|
||||
|
||||
# scp $bpath/Logs/$TMP_SCRIPT_MYSQL $owner@$bmachine:/tmp/$TMP_SCRIPT_MYSQL
|
||||
|
||||
# ssh $bmachine -l $owner bash $bpath/Logs/$TMP_SCRIPT_MYSQL
|
||||
|
||||
cmd=$logdir/$TMP_SCRIPT_MYSQL
|
||||
run_command $cmd
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
echo "$cmd failed, perhaps the following will help figure out why:"
|
||||
tail $log
|
||||
fi
|
||||
|
||||
if [ x$local_build != x1 ]; then
|
||||
|
||||
# Build perl RPM (we currently need to be root to do this and that is
|
||||
# not possible)
|
||||
|
||||
#scp $bpath/Logs/$TMP_SCRIPT_PERL $owner@$bmachine:/tmp/$TMP_SCRIPT_PERL
|
||||
#ssh $bmachine -l root bash /tmp/$TMP_SCRIPT_PERL
|
||||
|
||||
# Copy RPMs back to the source dir. We must do this here since the
|
||||
# $bmachine may not have permission to access $smachine.
|
||||
scp $owner@$bmachine:$rpmdir/RPMS/i386/MySQL*-$VER_NO_DASH*.rpm $bpath/NEW-RPMS
|
||||
scp $owner@$bmachine:$rpmdir/SRPMS/MySQL*-$VER_NO_DASH*.rpm $bpath/NEW-RPMS
|
||||
|
||||
# And the perl ones
|
||||
#scp $owner@$bmachine:$rpmdir/RPMS/i386/Perl*-*.rpm $bpath/NEW-RPMS
|
||||
#scp $owner@$bmachine:$rpmdir/SRPMS/Perl*-*.rpm $bpath/NEW-RPMS
|
||||
|
||||
#Remove some of the files that can interfere with future builds
|
||||
|
||||
rm -rf /var/tmp/mysql
|
||||
fi
|
||||
) > $log 2>&1
|
||||
EOF
|
||||
exit 1;
|
||||
}
|
||||
|
|
|
@ -3,8 +3,11 @@
|
|||
# Untar a MySQL distribution, change the copyright texts,
|
||||
# pack it up again to a given directory
|
||||
|
||||
$VER="1.2";
|
||||
$VER="1.3";
|
||||
|
||||
use Cwd;
|
||||
use File::Basename;
|
||||
use File::Copy;
|
||||
use Getopt::Long;
|
||||
|
||||
$opt_help = 0;
|
||||
|
@ -17,8 +20,7 @@ GetOptions("help","version","target=s") || error();
|
|||
|
||||
# fix the directory prefix for target dir
|
||||
|
||||
$WD= `pwd`;
|
||||
chop $WD;
|
||||
$WD= cwd();
|
||||
$opt_target= $WD . '/' . $opt_target;
|
||||
|
||||
&main();
|
||||
|
@ -73,11 +75,11 @@ sub main
|
|||
$newdistname= $1."com".$2.$3;
|
||||
}
|
||||
# find out the extract path (should be same as distname!)
|
||||
$destdir= `tar tvzf ../$distfile | head -1`;
|
||||
# remove leading crab
|
||||
$destdir =~ s/.*\d+:\d+:\d+[ ]//;
|
||||
# remove newline and slash from the end
|
||||
$destdir= substr($destdir, 0, -2);
|
||||
chomp($destdir= `tar ztf ../$distfile | head -1`);
|
||||
# remove slash from the end
|
||||
$destdir= substr($destdir, 0, -1);
|
||||
print "destdir: $destdir\n";
|
||||
print "distname: $distname\n";
|
||||
|
||||
if ("$destdir" ne "$distname")
|
||||
{
|
||||
|
@ -96,15 +98,18 @@ sub main
|
|||
# remove the 'PUBLIC' file from distribution and copy MySQLEULA.txt
|
||||
# on the toplevel of the directory instead. file 'PUBLIC' shouldn't
|
||||
# exist in the new mysql distributions, but let's be sure..
|
||||
`rm -f $destdir/PUBLIC $destdir/README`;
|
||||
`cp -p $WD/Docs/MySQLEULA.txt $destdir/`;
|
||||
unlink("$destdir/PUBLIC", "$destdir/README");
|
||||
copy("$WD/Docs/MySQLEULA.txt", "$destdir");
|
||||
|
||||
# remove readline subdir
|
||||
`rm -rf $destdir/cmd-line-utils/readline`;
|
||||
|
||||
# fix file copyrights
|
||||
&fix_usage_copyright();
|
||||
&add_copyright();
|
||||
|
||||
# rename the directory with new distribution name
|
||||
`mv -f $destdir $newdistname`;
|
||||
rename($destdir, $newdistname);
|
||||
|
||||
# tar the new distribution
|
||||
`tar cz -f $opt_target/$newdistname.tar.gz *`;
|
||||
|
|
0
INSTALL-WIN-SOURCE
Executable file → Normal file
0
INSTALL-WIN-SOURCE
Executable file → Normal file
|
@ -20,7 +20,7 @@ AUTOMAKE_OPTIONS = foreign
|
|||
|
||||
# These are built from source in the Docs directory
|
||||
EXTRA_DIST = INSTALL-SOURCE README \
|
||||
COPYING COPYING.LIB
|
||||
COPYING COPYING.LIB zlib
|
||||
SUBDIRS = . include @docs_dirs@ \
|
||||
@readline_topdir@ sql-common \
|
||||
@thread_dirs@ pstack @sql_client_dirs@ \
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDQjCCAqugAwIBAgIBADANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJSVTET
|
||||
MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoT
|
||||
CE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1
|
||||
c0BteXNxbC5jb20wHhcNMDIwODAyMjE1NTUzWhcNMDMwODAyMjE1NTUzWjB6MQsw
|
||||
CQYDVQQGEwJSVTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1
|
||||
cmcxETAPBgNVBAoTCE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG
|
||||
9w0BCQEWEHdhbHJ1c0BteXNxbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
|
||||
AoGBALFLPDNDeq213XvhBP3TxhC0NcGKJ/sWzaHkNmunQ8sTbV8AfdFafvP7cSHk
|
||||
O3jh7smpVWnxmcIbq1dpsbb7X5vQVc8ru07Z8VhCJWx6H8kgI95Am6wbm2ho2Lok
|
||||
9ODG8f/lA4kLv8Vo0hqtfV5T1mnZpSzkh6G4b0yPzHu8gtObAgMBAAGjgdcwgdQw
|
||||
HQYDVR0OBBYEFNnYan2rzhBiGhb86Wr03PFmrNC5MIGkBgNVHSMEgZwwgZmAFNnY
|
||||
an2rzhBiGhb86Wr03PFmrNC5oX6kfDB6MQswCQYDVQQGEwJSVTETMBEGA1UECBMK
|
||||
U29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoTCE15U1FMIEFC
|
||||
MQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1c0BteXNxbC5j
|
||||
b22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQADeMZEA5Rh4PDq
|
||||
DmS9cYyogjb9gkuLHeo/pqfU8iSZVsSaf6Uqh6TWKQOuK3I4R1K8iMo4cW6LhxxH
|
||||
HLFrVIQn6xhLvfC0T6Zl7G0w6rAY2+QlbEhjnsgHtLGrB5xjSYLq6Uz3gAMbEsA4
|
||||
rCpQJECDe2PzoUXZj9mE2sdljiGcvQ==
|
||||
MIIDcTCCAtqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBiDELMAkGA1UEBhMCU0Ux
|
||||
EDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCMSEwHwYDVQQDExhB
|
||||
YnN0cmFjdCBNeVNRTCBEZXZlbG9wZXIxMTAvBgkqhkiG9w0BCQEWImFic3RyYWN0
|
||||
Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wHhcNMDMwODA3MTEyMTQwWhcNMDMw
|
||||
OTA2MTEyMTQwWjCBiDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
|
||||
BgNVBAoTCE15U1FMIEFCMSEwHwYDVQQDExhBYnN0cmFjdCBNeVNRTCBEZXZlbG9w
|
||||
ZXIxMTAvBgkqhkiG9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNx
|
||||
bC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALgbnH12rP8XEJsRuy69
|
||||
9n412tEOucpQyxkpNiDgLRvlYEGIJutK2LAqPHoPg7Em2+WJ+vrFh/BVx4hOUHmk
|
||||
tJ94qTHLLCCj07cjzcoADjzPT9254VqSuQy/JvDNamKEOEdXU8l4/bc26VKVZ99x
|
||||
iqXbHLiIWNa+UUwyRDSkERepAgMBAAGjgegwgeUwHQYDVR0OBBYEFJVKQT7xXBK0
|
||||
ez6fOwwjZpA9f07YMIG1BgNVHSMEga0wgaqAFJVKQT7xXBK0ez6fOwwjZpA9f07Y
|
||||
oYGOpIGLMIGIMQswCQYDVQQGEwJTRTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UE
|
||||
ChMITXlTUUwgQUIxITAfBgNVBAMTGEFic3RyYWN0IE15U1FMIERldmVsb3BlcjEx
|
||||
MC8GCSqGSIb3DQEJARYiYWJzdHJhY3QubXlzcWwuZGV2ZWxvcGVyQG15c3FsLmNv
|
||||
bYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAJFucCIj0wREcF9P
|
||||
vOaKVbvcaBwgit6oXOf7ZOPcIUQxQJOnXLVkWIdMP2mP/zHAUsCmXT2k8aXWRegB
|
||||
6kh/PjV/vSYFbGtE/vh/12x/nSIUU+Y9B1EwvoeskuOwu34Ih514Y1z1bPMNt18N
|
||||
4LGzMEBeklJ3gxBPlRXER9BSUpRH
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -3,24 +3,24 @@ Certificate:
|
|||
Version: 3 (0x2)
|
||||
Serial Number: 2 (0x2)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=RU, ST=Some-State, L=Orenburg, O=MySQL AB, CN=Walrus/Email=walrus@mysql.com
|
||||
Issuer: C=SE, L=Uppsala, O=MySQL AB, CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com
|
||||
Validity
|
||||
Not Before: Aug 2 22:08:07 2002 GMT
|
||||
Not After : Aug 2 22:08:07 2003 GMT
|
||||
Subject: C=RU, L=orenburg, O=MySQL AB, OU=client, CN=walrus/Email=walrus@mysql.com
|
||||
Not Before: Aug 7 11:41:56 2003 GMT
|
||||
Not After : Aug 4 11:41:56 2013 GMT
|
||||
Subject: C=SE, L=Uppsala, O=MySQL AB, CN=MySQL Client/Email=abstract.mysql.developer@mysql.com
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:ab:27:e4:1e:f0:34:8b:a9:50:df:0a:b0:55:20:
|
||||
b3:1f:0f:cf:f1:51:1e:66:48:a6:f8:4e:0d:d4:49:
|
||||
f4:ea:d3:41:6b:7e:06:78:3c:29:9d:8e:d3:33:4d:
|
||||
0b:fc:34:4d:18:88:48:61:af:11:da:db:84:c0:92:
|
||||
91:81:6a:b6:21:d5:8e:9b:f2:6f:d8:06:ad:d6:77:
|
||||
f6:8b:bd:07:d5:b7:fb:c6:f0:64:e6:3f:58:f0:6a:
|
||||
1e:81:73:97:6d:9d:c6:ec:b0:5e:1e:c6:57:82:b0:
|
||||
98:9c:ae:26:84:43:0d:98:6c:b4:d8:52:13:70:15:
|
||||
79:61:40:84:19:ea:f6:63:3f
|
||||
00:c4:03:0a:ee:e3:b1:12:fc:ee:b4:19:f4:e1:60:
|
||||
1d:e0:28:c3:96:2d:df:82:69:cd:74:7c:54:58:d0:
|
||||
ae:b3:59:3f:0c:19:1c:99:10:a6:12:c9:cf:3a:64:
|
||||
05:43:8e:bf:d2:65:36:80:91:0b:65:b0:27:26:38:
|
||||
c9:23:d8:36:a2:4a:f0:f7:c0:2f:68:38:70:01:27:
|
||||
29:ff:b2:c5:52:e1:6b:f1:c8:d7:c3:5c:ee:f0:37:
|
||||
6c:2a:9b:96:1a:05:9e:eb:33:a2:39:5a:77:66:62:
|
||||
27:75:1f:2f:6f:38:da:e5:9f:78:af:ca:6b:22:3f:
|
||||
57:2b:bc:a6:8f:47:d1:99:6f
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
|
@ -28,39 +28,40 @@ Certificate:
|
|||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
A6:D9:70:92:AC:2B:F6:48:A5:FB:29:CF:78:4A:57:B5:3B:43:97:EE
|
||||
80:81:A9:22:EB:AB:D6:CA:7E:3F:8D:BB:D1:AC:2A:F4:87:9D:13:29
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:D9:D8:6A:7D:AB:CE:10:62:1A:16:FC:E9:6A:F4:DC:F1:66:AC:D0:B9
|
||||
DirName:/C=RU/ST=Some-State/L=Orenburg/O=MySQL AB/CN=Walrus/Email=walrus@mysql.com
|
||||
keyid:95:4A:41:3E:F1:5C:12:B4:7B:3E:9F:3B:0C:23:66:90:3D:7F:4E:D8
|
||||
DirName:/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
15:96:43:10:89:e0:a6:82:a4:91:0f:7e:2e:d8:80:54:ba:63:
|
||||
e2:8f:b0:aa:ea:be:35:2c:8f:0d:03:a9:86:2e:32:51:33:8a:
|
||||
cc:b2:5e:b3:12:cb:b7:42:06:40:89:ce:92:87:40:f1:6a:79:
|
||||
0c:3e:00:1d:06:bf:3c:c1:da:f6:3b:e1:42:e6:55:4c:31:e1:
|
||||
b9:79:f3:99:14:f6:68:9e:67:2b:e3:71:88:6b:2b:e2:08:bd:
|
||||
67:79:ea:0e:7d:34:0d:41:22:3a:f4:8f:4d:51:07:6f:5a:44:
|
||||
34:05:d1:b3:ca:cf:09:2b:43:25:a1:7f:ac:f4:54:f1:e3:93:
|
||||
47:44
|
||||
6d:8a:af:34:07:ac:95:72:a4:78:fe:f8:b8:30:9a:e0:d9:74:
|
||||
82:34:5c:fd:11:15:dd:63:fd:65:20:04:7e:b5:8f:2e:26:ef:
|
||||
ab:b9:10:5f:9b:40:65:76:ab:ed:bd:bf:d5:bc:89:7f:19:d8:
|
||||
a7:b5:9e:24:bd:c7:ac:8e:16:35:83:c8:ce:8d:85:7c:b4:36:
|
||||
28:dd:3a:97:e5:b2:dd:8f:88:4d:5b:50:bd:97:28:61:8e:e7:
|
||||
05:5c:c2:bb:46:a1:ac:7e:ee:ac:7d:72:d5:a7:07:4e:1d:68:
|
||||
4e:80:e2:35:7d:db:24:73:be:bc:0d:ca:f4:ae:4e:21:52:3b:
|
||||
ae:81
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDajCCAtOgAwIBAgIBAjANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJSVTET
|
||||
MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoT
|
||||
CE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1
|
||||
c0BteXNxbC5jb20wHhcNMDIwODAyMjIwODA3WhcNMDMwODAyMjIwODA3WjB2MQsw
|
||||
CQYDVQQGEwJSVTERMA8GA1UEBxMIb3JlbmJ1cmcxETAPBgNVBAoTCE15U1FMIEFC
|
||||
MQ8wDQYDVQQLEwZjbGllbnQxDzANBgNVBAMTBndhbHJ1czEfMB0GCSqGSIb3DQEJ
|
||||
ARYQd2FscnVzQG15c3FsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||
qyfkHvA0i6lQ3wqwVSCzHw/P8VEeZkim+E4N1En06tNBa34GeDwpnY7TM00L/DRN
|
||||
GIhIYa8R2tuEwJKRgWq2IdWOm/Jv2Aat1nf2i70H1bf7xvBk5j9Y8GoegXOXbZ3G
|
||||
7LBeHsZXgrCYnK4mhEMNmGy02FITcBV5YUCEGer2Yz8CAwEAAaOCAQIwgf8wCQYD
|
||||
VR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlm
|
||||
aWNhdGUwHQYDVR0OBBYEFKbZcJKsK/ZIpfspz3hKV7U7Q5fuMIGkBgNVHSMEgZww
|
||||
gZmAFNnYan2rzhBiGhb86Wr03PFmrNC5oX6kfDB6MQswCQYDVQQGEwJSVTETMBEG
|
||||
A1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoTCE15
|
||||
U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1c0Bt
|
||||
eXNxbC5jb22CAQAwDQYJKoZIhvcNAQEEBQADgYEAFZZDEIngpoKkkQ9+LtiAVLpj
|
||||
4o+wquq+NSyPDQOphi4yUTOKzLJesxLLt0IGQInOkodA8Wp5DD4AHQa/PMHa9jvh
|
||||
QuZVTDHhuXnzmRT2aJ5nK+NxiGsr4gi9Z3nqDn00DUEiOvSPTVEHb1pENAXRs8rP
|
||||
CStDJaF/rPRU8eOTR0Q=
|
||||
MIIDkTCCAvqgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBiDELMAkGA1UEBhMCU0Ux
|
||||
EDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCMSEwHwYDVQQDExhB
|
||||
YnN0cmFjdCBNeVNRTCBEZXZlbG9wZXIxMTAvBgkqhkiG9w0BCQEWImFic3RyYWN0
|
||||
Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wHhcNMDMwODA3MTE0MTU2WhcNMTMw
|
||||
ODA0MTE0MTU2WjB8MQswCQYDVQQGEwJTRTEQMA4GA1UEBxMHVXBwc2FsYTERMA8G
|
||||
A1UEChMITXlTUUwgQUIxFTATBgNVBAMTDE15U1FMIENsaWVudDExMC8GCSqGSIb3
|
||||
DQEJARYiYWJzdHJhY3QubXlzcWwuZGV2ZWxvcGVyQG15c3FsLmNvbTCBnzANBgkq
|
||||
hkiG9w0BAQEFAAOBjQAwgYkCgYEAxAMK7uOxEvzutBn04WAd4CjDli3fgmnNdHxU
|
||||
WNCus1k/DBkcmRCmEsnPOmQFQ46/0mU2gJELZbAnJjjJI9g2okrw98AvaDhwAScp
|
||||
/7LFUuFr8cjXw1zu8DdsKpuWGgWe6zOiOVp3ZmIndR8vbzja5Z94r8prIj9XK7ym
|
||||
j0fRmW8CAwEAAaOCARQwggEQMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9w
|
||||
ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSAgaki66vWyn4/
|
||||
jbvRrCr0h50TKTCBtQYDVR0jBIGtMIGqgBSVSkE+8VwStHs+nzsMI2aQPX9O2KGB
|
||||
jqSBizCBiDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoT
|
||||
CE15U1FMIEFCMSEwHwYDVQQDExhBYnN0cmFjdCBNeVNRTCBEZXZlbG9wZXIxMTAv
|
||||
BgkqhkiG9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb22C
|
||||
AQAwDQYJKoZIhvcNAQEEBQADgYEAbYqvNAeslXKkeP74uDCa4Nl0gjRc/REV3WP9
|
||||
ZSAEfrWPLibvq7kQX5tAZXar7b2/1byJfxnYp7WeJL3HrI4WNYPIzo2FfLQ2KN06
|
||||
l+Wy3Y+ITVtQvZcoYY7nBVzCu0ahrH7urH1y1acHTh1oToDiNX3bJHO+vA3K9K5O
|
||||
IVI7roE=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXQIBAAKBgQCrJ+Qe8DSLqVDfCrBVILMfD8/xUR5mSKb4Tg3USfTq00FrfgZ4
|
||||
PCmdjtMzTQv8NE0YiEhhrxHa24TAkpGBarYh1Y6b8m/YBq3Wd/aLvQfVt/vG8GTm
|
||||
P1jwah6Bc5dtncbssF4exleCsJicriaEQw2YbLTYUhNwFXlhQIQZ6vZjPwIDAQAB
|
||||
AoGAChyxPaKzeAzo2kSnZmAoNQ2aG4fPY/um4cS6zHASKE2S7+biOvhS/RwTHlTP
|
||||
AHeWlnx2yk6tn2CY10fRkPPdDsnyj7FpuZmjhmFtprOn+1Mwft7gNTMdKN2EV46/
|
||||
hMQxm8/Wu9ejm6IhOeg3Q7lBFwE9tY0kgMzU4zDI3A0HDQECQQDUcxFgxIrOi4Gw
|
||||
EGxmJgopL+NjG7/4PdT2FM5z1bbwOtfsD1fHKWSiODbfpK8eMwBReI4wfDQ7ViND
|
||||
xmuDykFDAkEAzj3QH9s8Ej3Vgt88326OhY1W5jTH6M0XkuZ0YatELz3MvLwFhIF4
|
||||
puouLJQVo3pQBLV+Tmnh2LQqkii7xA7oVQJBALZxzvW0M6QmyAvEPuMGPema94KQ
|
||||
PS7ZIr7lpVpyqTTqw600i+Q8VvC8p9stmTmtANP2XN2kfFKMqaI1jvVRxvMCQDJE
|
||||
8sOxBjVUCQS7MPUs12RKDRJTbx6ZTtOphFiCDD6Pi6W9FoMzo5rbnaGT/qo4F+Tt
|
||||
7/lg6YGOeInjj9C76XkCQQC2m6j8NeX9E4Pimp1GDE93N2JJ+biJxLI8yFqruv7N
|
||||
B2M/28JKLGLjam6YVJy4eSA9clXVqwWNxii3fb8qQ7u6
|
||||
MIICXQIBAAKBgQDEAwru47ES/O60GfThYB3gKMOWLd+Cac10fFRY0K6zWT8MGRyZ
|
||||
EKYSyc86ZAVDjr/SZTaAkQtlsCcmOMkj2DaiSvD3wC9oOHABJyn/ssVS4WvxyNfD
|
||||
XO7wN2wqm5YaBZ7rM6I5WndmYid1Hy9vONrln3ivymsiP1crvKaPR9GZbwIDAQAB
|
||||
AoGAcR7IaoGhKbIrGGl6d67+zuT3q24h9aOV3Mn7653TlNHGnvbHGFcRYPpyy+H5
|
||||
X7m8XnHm+F+80hzNGzPecP9Q12oPOyoZgeQn6bTK73OFkNcX7FAkNdyH4xVhf2aK
|
||||
YOzTcQfq3gRCqXtVIg4qBShTMjJLE31R8H430Or62XmJgFECQQDjP+Kz+ecQwuTB
|
||||
HADLm+GQgceIB1kLgdQoZ3deUxGvqtVImuDRViSM0F2srfJ4GfkEDhc27UI5f6ir
|
||||
ZTOw4ww7AkEA3M9wCPgWNtbOXbYjaNA0IzHcjMDxQDVvJAmb3EiZlKQp4EfrESxR
|
||||
ly/u08TyfwrK6q5WS7xE0ad8+95G1af4XQJBAI9+3ME20SB1YItMCniHYwSj3oHX
|
||||
2fN5NKWax/Zoz+c0IV+qZMHq+kNso2oRoOUTyXk1CJWndcTnBnPMALr2c9cCQQCZ
|
||||
VL7Cq6uZVx6kemcqUHH0AprZbt3YLYLI7pc5p3xmeHzPzoEQQstBhjp8+aU+zPrN
|
||||
blRkcQ8E2x5yNA7SLLrNAkAhzkA+EK8hc0f9W3ncy+py0Rn0i5Ay0N3T715vkThf
|
||||
CfOHE3L91dLlmYpL5xVqOpugY/2sHyxwctv97DgS6tHZ
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -1,30 +1,12 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
Proc-Type: 4,ENCRYPTED
|
||||
DEK-Info: DES-EDE3-CBC,8CE2AB38FB50D4B9
|
||||
|
||||
rrnYZLUKlzV4U7+wqe5CWzTd4RLJb5h4M77aBRQfuHGejSaRsskN2ffpO8uQEAYM
|
||||
WTJSRC+NO+jDMBZhzt1ktWqCs8d6l6azHoBybIrMJsbUhwybm+OiOfp23RrbNoS/
|
||||
S4fsgNdAAGhsRvKDdsItCyYvdH8nTzn+g9r/z2V4tOOXd6MYuT42XA6Uz2tis2SZ
|
||||
GWEGa7mAweApzSiibE+pzjPS+fdX4E12n6NCVYLhn1JuvzVva/KFSebs4Wh75miC
|
||||
WvRgkt/5eDQn+vkV67hE3I6p9pPcLh1+PMfaQ25U8VM/r7ejnVFWm7teGH6GKPKJ
|
||||
cU+PYfblyWcgtiO/fwfGMIqSyNtHj/C3VFVie5D1MTJzBopiPGEcfz00LjBccjjh
|
||||
j1meTRVN8pMZTgkxlnIFwbU6TPPvx8a9urFVQIJ4z8r2EMvYh5Cqpq87+lH9Pn0C
|
||||
vzCl78Tz5QLghXNnMbbdD2aPP0PwPEXgh86iZxo06g85n0l26WUzYJlWzBYD4DrF
|
||||
SbnEUAftTujEOm6MqJNLpJN6UPOtq/HvSaHl1bykGK+zU4gqHj0ur03HlF0l4xNg
|
||||
OfsoNsJV+O9RUUJ0+D5eqUALJjN8TCV1wNMXOVzr/ue3QCVdlWVfZY4RPffwK9Yp
|
||||
Fh52T7a2v+shhqZUQNtFDAg50Ac7deUthSWNmi5N680POnJg9KdtBdMhYLa1j3rP
|
||||
D9oasSK0ugevHuQ6wUiD/95CzZlJXE9K4kTTYmaRk5MTWXhFQxdqHZo1v+pGtaNI
|
||||
f+/E7q7BiNesSt31U/vkX0Tm3oJ1dgOnS8M2uxiYiKH2mJ/E32tZKw==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIIB0jCCATsCAQAwgZExCzAJBgNVBAYTAkVFMRMwEQYDVQQIEwpTb21lLVN0YXRl
|
||||
MRAwDgYDVQQHEwdUYWxsaW5uMSYwJAYDVQQKEx1NeVNRTCBkZW1vIGNsaWVudCBj
|
||||
ZXJ0aWZpY2F0ZTEUMBIGA1UEAxMLVG9udSBTYW11ZWwxHTAbBgkqhkiG9w0BCQEW
|
||||
DnRvbnVAbXlzcWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDo1FLN
|
||||
TruWFjrwiWuQTNvgMHVaAnJiv+3avgnogNuAVDDWde3jEKUVRFspkRL+DLd2Telf
|
||||
VlxFPK2ycS1qesu8BIAIdNZ99nxcdts1xPb12NSJn53MP04/c8E+QX5OCb/qGtmi
|
||||
Ew3RDNrY9Ju4VCEXrtezAmGHqQH/9P6cevxnQwIDAQABoAAwDQYJKoZIhvcNAQEE
|
||||
BQADgYEAvENK1JAQfC8xnrFGw2IxfUmUwlRidiRtYTgtVfTr7vA+m4WaaKioni6E
|
||||
PQXjcvl6kfyRoxc4qWsGi3T7QM2RnvCtbwR2NGSIKX1cBTS31RMr12NSAeXn6Twz
|
||||
ZwSZ55EHj9N2hArTPNlVjxvDQX3D6/ZBi6JnHAxXigzDqhArgjU=
|
||||
MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
|
||||
BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBDbGllbnQxMTAvBgkqhkiG
|
||||
9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAMQDCu7jsRL87rQZ9OFgHeAow5Yt34JpzXR8
|
||||
VFjQrrNZPwwZHJkQphLJzzpkBUOOv9JlNoCRC2WwJyY4ySPYNqJK8PfAL2g4cAEn
|
||||
Kf+yxVLha/HI18Nc7vA3bCqblhoFnuszojlad2ZiJ3UfL2842uWfeK/KayI/Vyu8
|
||||
po9H0ZlvAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQAnKdk68dGJXvlj/GXwBUWN
|
||||
oXWF7hq4fDmwyhmcFUqk8qZKPKFUxkcER0GLzYeUgvD2URSfaS3/YW0d7K7kXGwP
|
||||
rB5edb+suaYf6mjm/w37xw/EJI9rdSKcB/3SSu8mALds7sUHDAO+MO0WkA/9d7t0
|
||||
LOsUqcDvMkKpZuYwNILwLw==
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
|
|
|
@ -3,24 +3,24 @@ Certificate:
|
|||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=RU, ST=Some-State, L=Orenburg, O=MySQL AB, CN=Walrus/Email=walrus@mysql.com
|
||||
Issuer: C=SE, L=Uppsala, O=MySQL AB, CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com
|
||||
Validity
|
||||
Not Before: Aug 2 21:59:26 2002 GMT
|
||||
Not After : Aug 2 21:59:26 2003 GMT
|
||||
Subject: C=RU, L=Orenburg, O=MySQL AB, CN=server/Email=walrus@mysql.com
|
||||
Not Before: Aug 7 11:39:27 2003 GMT
|
||||
Not After : Aug 4 11:39:27 2013 GMT
|
||||
Subject: C=SE, L=Uppsala, O=MySQL AB, CN=MySQL Server/Email=abstract.mysql.developer@mysql.com
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:bd:7d:f1:91:51:38:fe:4b:79:b5:ff:e0:41:ae:
|
||||
0e:a8:bb:7b:60:42:95:01:75:e7:22:74:55:7d:74:
|
||||
4d:50:51:0c:5e:09:4b:2b:0c:8e:3f:9f:14:3f:5e:
|
||||
d9:25:36:9b:cc:77:35:30:e9:8c:bf:3b:bd:da:62:
|
||||
85:4c:90:c8:de:71:2c:0a:7b:dc:e6:85:fd:b4:24:
|
||||
88:a7:8f:03:3d:15:7c:59:3d:f8:73:f0:36:2a:b8:
|
||||
80:7c:d8:c7:d6:1f:6d:b2:b7:b7:48:9f:24:56:81:
|
||||
2c:2e:9c:b9:95:48:50:56:9f:1a:60:96:c4:c0:eb:
|
||||
8d:2d:55:38:3f:6b:82:bc:b3
|
||||
00:e9:86:7a:55:84:88:4c:be:a4:f8:92:73:30:12:
|
||||
49:0b:7a:85:87:39:34:39:0d:7d:0b:8d:18:c2:17:
|
||||
95:13:52:d2:3f:55:10:57:c8:3f:5a:f5:b2:fa:8b:
|
||||
d0:67:49:cc:aa:82:fc:9f:ce:00:b4:73:f3:36:d2:
|
||||
3a:d3:c2:b0:0e:14:c3:d4:b2:21:74:a1:f0:31:81:
|
||||
60:87:98:73:5c:10:c1:b1:1a:4d:f1:f3:b0:98:3f:
|
||||
f0:d7:97:9b:2b:fd:d5:21:79:b2:2f:eb:64:15:c9:
|
||||
9b:9d:fc:9e:2d:d4:f8:04:5b:ea:a9:75:4b:42:c3:
|
||||
3d:0e:4d:2a:a8:b8:ca:99:8d
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
|
@ -28,38 +28,40 @@ Certificate:
|
|||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
C9:D0:D2:F7:17:79:27:1C:4B:C9:E7:92:D5:5E:8C:7E:F2:FE:A7:B7
|
||||
6E:E4:9B:6A:C5:EA:E4:E6:C7:EF:D7:1E:C8:63:45:60:2B:1B:D4:D4
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:D9:D8:6A:7D:AB:CE:10:62:1A:16:FC:E9:6A:F4:DC:F1:66:AC:D0:B9
|
||||
DirName:/C=RU/ST=Some-State/L=Orenburg/O=MySQL AB/CN=Walrus/Email=walrus@mysql.com
|
||||
keyid:95:4A:41:3E:F1:5C:12:B4:7B:3E:9F:3B:0C:23:66:90:3D:7F:4E:D8
|
||||
DirName:/C=SE/L=Uppsala/O=MySQL AB/CN=Abstract MySQL Developer/Email=abstract.mysql.developer@mysql.com
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
62:77:bc:16:dc:4c:70:63:4d:03:ce:19:5e:c4:6c:31:0e:57:
|
||||
26:d8:6e:25:08:f2:01:ae:98:59:0a:ba:b7:32:c0:39:69:b8:
|
||||
4b:aa:59:7c:97:72:4e:50:02:ee:ef:d6:d6:62:b8:25:36:91:
|
||||
b6:3b:8f:6f:2f:3c:d8:9d:b7:cf:8f:f6:29:50:e9:31:54:77:
|
||||
2b:7b:21:72:0f:60:4c:d4:1c:bb:c4:46:e5:fd:a7:5f:ea:46:
|
||||
e4:df:e9:95:77:2d:91:f8:3b:33:78:83:5d:10:de:98:7c:38:
|
||||
91:27:f6:52:8a:b6:54:f1:0f:7a:f0:1d:da:a5:22:d2:75:cc:
|
||||
4c:c3
|
||||
7c:b6:9c:fc:ea:9e:e6:88:32:f5:24:81:9b:89:c0:13:fa:75:
|
||||
18:51:af:77:ae:b8:4e:12:5f:48:ab:0c:e6:c5:a4:87:93:6e:
|
||||
98:97:f5:f3:d3:0b:e0:fc:5e:34:3e:f2:93:58:73:97:b6:a7:
|
||||
66:96:81:cd:73:48:f3:75:24:64:61:13:78:3e:ed:df:7c:4d:
|
||||
fa:2e:3a:64:99:12:24:9e:a2:51:5c:23:85:0b:0c:bb:f5:8e:
|
||||
89:80:27:ba:7c:d2:68:90:ff:1f:68:2e:1b:fd:06:bc:c8:41:
|
||||
d7:b2:be:9c:94:5c:6d:1e:96:3b:75:bc:12:f0:44:bd:36:00:
|
||||
84:cd
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDWTCCAsKgAwIBAgIBATANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJSVTET
|
||||
MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoT
|
||||
CE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1
|
||||
c0BteXNxbC5jb20wHhcNMDIwODAyMjE1OTI2WhcNMDMwODAyMjE1OTI2WjBlMQsw
|
||||
CQYDVQQGEwJSVTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoTCE15U1FMIEFC
|
||||
MQ8wDQYDVQQDEwZzZXJ2ZXIxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1c0BteXNxbC5j
|
||||
b20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL198ZFROP5LebX/4EGuDqi7
|
||||
e2BClQF15yJ0VX10TVBRDF4JSysMjj+fFD9e2SU2m8x3NTDpjL87vdpihUyQyN5x
|
||||
LAp73OaF/bQkiKePAz0VfFk9+HPwNiq4gHzYx9YfbbK3t0ifJFaBLC6cuZVIUFaf
|
||||
GmCWxMDrjS1VOD9rgryzAgMBAAGjggECMIH/MAkGA1UdEwQCMAAwLAYJYIZIAYb4
|
||||
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTJ
|
||||
0NL3F3knHEvJ55LVXox+8v6ntzCBpAYDVR0jBIGcMIGZgBTZ2Gp9q84QYhoW/Olq
|
||||
9NzxZqzQuaF+pHwwejELMAkGA1UEBhMCUlUxEzARBgNVBAgTClNvbWUtU3RhdGUx
|
||||
ETAPBgNVBAcTCE9yZW5idXJnMREwDwYDVQQKEwhNeVNRTCBBQjEPMA0GA1UEAxMG
|
||||
V2FscnVzMR8wHQYJKoZIhvcNAQkBFhB3YWxydXNAbXlzcWwuY29tggEAMA0GCSqG
|
||||
SIb3DQEBBAUAA4GBAGJ3vBbcTHBjTQPOGV7EbDEOVybYbiUI8gGumFkKurcywDlp
|
||||
uEuqWXyXck5QAu7v1tZiuCU2kbY7j28vPNidt8+P9ilQ6TFUdyt7IXIPYEzUHLvE
|
||||
RuX9p1/qRuTf6ZV3LZH4OzN4g10Q3ph8OJEn9lKKtlTxD3rwHdqlItJ1zEzD
|
||||
MIIDkTCCAvqgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBiDELMAkGA1UEBhMCU0Ux
|
||||
EDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCMSEwHwYDVQQDExhB
|
||||
YnN0cmFjdCBNeVNRTCBEZXZlbG9wZXIxMTAvBgkqhkiG9w0BCQEWImFic3RyYWN0
|
||||
Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wHhcNMDMwODA3MTEzOTI3WhcNMTMw
|
||||
ODA0MTEzOTI3WjB8MQswCQYDVQQGEwJTRTEQMA4GA1UEBxMHVXBwc2FsYTERMA8G
|
||||
A1UEChMITXlTUUwgQUIxFTATBgNVBAMTDE15U1FMIFNlcnZlcjExMC8GCSqGSIb3
|
||||
DQEJARYiYWJzdHJhY3QubXlzcWwuZGV2ZWxvcGVyQG15c3FsLmNvbTCBnzANBgkq
|
||||
hkiG9w0BAQEFAAOBjQAwgYkCgYEA6YZ6VYSITL6k+JJzMBJJC3qFhzk0OQ19C40Y
|
||||
wheVE1LSP1UQV8g/WvWy+ovQZ0nMqoL8n84AtHPzNtI608KwDhTD1LIhdKHwMYFg
|
||||
h5hzXBDBsRpN8fOwmD/w15ebK/3VIXmyL+tkFcmbnfyeLdT4BFvqqXVLQsM9Dk0q
|
||||
qLjKmY0CAwEAAaOCARQwggEQMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9w
|
||||
ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRu5Jtqxerk5sfv
|
||||
1x7IY0VgKxvU1DCBtQYDVR0jBIGtMIGqgBSVSkE+8VwStHs+nzsMI2aQPX9O2KGB
|
||||
jqSBizCBiDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoT
|
||||
CE15U1FMIEFCMSEwHwYDVQQDExhBYnN0cmFjdCBNeVNRTCBEZXZlbG9wZXIxMTAv
|
||||
BgkqhkiG9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb22C
|
||||
AQAwDQYJKoZIhvcNAQEEBQADgYEAfLac/Oqe5ogy9SSBm4nAE/p1GFGvd664ThJf
|
||||
SKsM5sWkh5NumJf189ML4PxeND7yk1hzl7anZpaBzXNI83UkZGETeD7t33xN+i46
|
||||
ZJkSJJ6iUVwjhQsMu/WOiYAnunzSaJD/H2guG/0GvMhB17K+nJRcbR6WO3W8EvBE
|
||||
vTYAhM0=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXAIBAAKBgQC9ffGRUTj+S3m1/+BBrg6ou3tgQpUBdecidFV9dE1QUQxeCUsr
|
||||
DI4/nxQ/XtklNpvMdzUw6Yy/O73aYoVMkMjecSwKe9zmhf20JIinjwM9FXxZPfhz
|
||||
8DYquIB82MfWH22yt7dInyRWgSwunLmVSFBWnxpglsTA640tVTg/a4K8swIDAQAB
|
||||
AoGARciG2NRHn+aduPe1V5rJDTyWD/oVM8d+ykJ7ZUsaWdSvMEZN51mlXSqxYzED
|
||||
2N+GesL/1LZ9vcM7hJw5qNu9DQOc7CtMT4k/bmhPJsT226roKKVbw/ocOEY5dK8+
|
||||
T9/x8qgo7zC3Qk/bKgjj61m8cQ7Mz/J7ZCEMmDNNrORCzRECQQDrcvJlsBTALilr
|
||||
MaAqNyaa0tykEabzg2mUFx5uvmzlwNx9ApSidoU5Xop9c6u00zgCDpsDlcwjhOs1
|
||||
jcqRkBTrAkEAzggY7BeN3FnW8tsV0Wq4LL6vK30pe0JIylxrKsFjY4LTo9t/8TKK
|
||||
6ZOEETVtM7sepIkxECw5RCBi9sxi3NClWQJAbrA5WKjw+HA7NJO98lq/IWYkKFXM
|
||||
IQsUpXRA8FtBormKbpK6Aa6qbxANF3E7teTencj0Azl3IPOqCCFCrDAKRQJAc6bv
|
||||
9ncyVqLHmgOJN8ikIdnYEp1rj5khqxY9wf5UgCOMEcrBAu/QMlVwKQjIh+VdyhaI
|
||||
x/9LFgboBomsZS9p4QJBAIXaX/WoqL/wgBGS2UroianFFXL6/Bt//CUoGpYgKQYQ
|
||||
+x+8heMRppmM0to2J7j9nGE83ikMWfPUwMi4TbyWH3Q=
|
||||
MIICXgIBAAKBgQDphnpVhIhMvqT4knMwEkkLeoWHOTQ5DX0LjRjCF5UTUtI/VRBX
|
||||
yD9a9bL6i9BnScyqgvyfzgC0c/M20jrTwrAOFMPUsiF0ofAxgWCHmHNcEMGxGk3x
|
||||
87CYP/DXl5sr/dUhebIv62QVyZud/J4t1PgEW+qpdUtCwz0OTSqouMqZjQIDAQAB
|
||||
AoGBALTq11nrjIEQbdSZ+R1z/R0kddB2U+wjdA3/6P9tr7PBxVsFdtzbKaI5mcib
|
||||
iwCKX0J2qmrP+SHUdsexBZxLR4KV/Z55v9Pym99Dy+DxDA95zURyCMKRBIzlU5uN
|
||||
F7USEQoltLUCsmZwNWdit0gfxSWdddkHNuI0uxTzHwuDcUlNAkEA/76zVremngNL
|
||||
DlekM9NPn/8E/TXBHN1b1jdUKd7WymSJykdcm3viU98dFNZFWF8B0jiTcuBKXgpR
|
||||
vTShNab/swJBAOnCGp554BLhioTyyk8qjRLt3xEsjsDljJULHVLYWcUqIkMf97GL
|
||||
VLBhl6ZEI9i0WduqvgZ+Bacd0uHqIHz1Yb8CQQDm1CjqTDiGxlIoT9JVNJTZxEOs
|
||||
h6gVdXY+kxHT+N3FL5luiZp8fAR7zxVgiUVtzdLG+2madfapiobcT3RyCJkhAkBI
|
||||
64AaR7KasTjg2Ew7/e4cJZAcb2XozrLYG6t+GHeIhehCQEqoW+qDSy5fc4orI7eU
|
||||
SuMUa2OgCjGqv7p6wKFJAkEAznmum/MbVOBpC4FsdnIGkxyFKIbh2OLY2aUb2KkK
|
||||
Ouf4S8Y5Ldgszi0fnDPRaxWJzewwZKvcff2zj+mYZeAXbA==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -1,30 +1,12 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
Proc-Type: 4,ENCRYPTED
|
||||
DEK-Info: DES-EDE3-CBC,6CBD09E71246DC01
|
||||
|
||||
byRzq5+j3r8FX2kQerTUZT5Bw/N6zrN3cmH6NHGJcrqD+vcPdtWf+Rk+mpNXgSQn
|
||||
ldkfmniU/htzJ0cUV+KE229Qx10Hx9mIJIbf0Y/rBCUBuaXWVrQB36W9w3rkNPFA
|
||||
EEuRMkreOJF42RD16+NBJv+RcHIGzGejXecJKUGF5DKlN0U8YHXnkXTQl54kIdr0
|
||||
H7rTrvJygwPk9/ik0M9/vmwduAMvTaHDmvgeolpMlJkxwz8vYkbUnFFJZhB6XNCb
|
||||
1w3lJ0EmRJicK5BnZmCEmgt8xiv0PAtg00jBbwddQbn1reAyViBtBT9iXdusHXS5
|
||||
Po63rSt7r3MO8aetcMQ6FkklH+ChuS/vFoNY57AwrzF4uEI4GSoZP0ESrRC5Ar5W
|
||||
Lzg/HrQAWbPCRlb6Jj3db1woRzFS8joOashROsZdeV/5P4Emhc6J7QMTvB1OHAhQ
|
||||
ugOJazJtxjg0DN8+9cM1wtHI7N89PLHhOg13LZNLeeehzIlPwKI2JLqXUc6oR407
|
||||
i+S7GCqu7wU+if0Enux8Dj7yrvnTUiqVCL2dyKTS3sBq0Cm2UhbecHclor13y6no
|
||||
y1o50TKKD6Zig2hZmSpqKznMxGMVIT36BE0aOMQUmk+aVnRuROclwTTL0ZNLzA+g
|
||||
QRTRfQ6iNMf34ypqAMdAMPzDGLPycKuFdxVQxFEVaM2/mrdWFwVAqFsLvzyGvdrh
|
||||
nkNyRgTWR/pfH9b3mXLqf6gMPNs764WhFIcZIDk9a4XBBUm2YDb2CxDzDCo/EUMA
|
||||
jvIiU0Jt132SEHHF/wAka6d2DnwZ3vexRp6Tebv/uy9IlMLPE+68dw==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIIB0jCCATsCAQAwgZExCzAJBgNVBAYTAkVFMRMwEQYDVQQIEwpTb21lLVN0YXRl
|
||||
MRAwDgYDVQQHEwdUYWxsaW5uMSYwJAYDVQQKEx1NeVNRTCBzZXJ2ZXIgZGVtbyBj
|
||||
ZXJ0aWZpY2F0ZTEUMBIGA1UEAxMLVG9udSBTYW11ZWwxHTAbBgkqhkiG9w0BCQEW
|
||||
DnRvbnVAbXlzcWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCerI3Y
|
||||
HZyy/YiWLLpCU/pdvYWK5crTD8ABPPKSRk/ZgK4qic/v6NRl/Pb1OiZMKdsG+jSh
|
||||
h/OXtTyU8YQFrK1XJdkC2wBx4KmqtB0pNl6ppA3yRbmDdCtF8+IjvOdc5hG29t3E
|
||||
rO1lQiw5RyrJ619FAxCrI7zKXIKat7NtZxjSxwIDAQABoAAwDQYJKoZIhvcNAQEE
|
||||
BQADgYEAlrUnGX4LYIiVjztHA4gUcOSVeEHCci2qEUq+7yY1JhAw54YDa2MLTTwa
|
||||
cH+rXLHjN0MTNfv9tRxdSX+trk3pyvhgFjssD100dJkF83RfVv2tKg9kscVOGQp7
|
||||
MkwOnJjfAjQBlTbTOQM46BTjv2FgvsppkO3ViryI//YxKvj/628=
|
||||
MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
|
||||
BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBTZXJ2ZXIxMTAvBgkqhkiG
|
||||
9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAOmGelWEiEy+pPiSczASSQt6hYc5NDkNfQuN
|
||||
GMIXlRNS0j9VEFfIP1r1svqL0GdJzKqC/J/OALRz8zbSOtPCsA4Uw9SyIXSh8DGB
|
||||
YIeYc1wQwbEaTfHzsJg/8NeXmyv91SF5si/rZBXJm538ni3U+ARb6ql1S0LDPQ5N
|
||||
Kqi4ypmNAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQCagJxGHBC+G5aSh3OguFn6
|
||||
z+qAC7u3B181kPBgNv20zMgLeq7YiAh3iNx4XO2+QXRGzMznFKx1tFr/mavCpgLs
|
||||
p3+dCvQt5FHEFFK1D1pDeXy4146X07hOTtC9jc/jSWeVnH4ujuX5gMtZqisOyYWV
|
||||
/gpw6dBtkTYlhS+y86kM/Q==
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysql - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysql - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /out:"../client_release/mysql.exe" /libpath:"..\lib_release\\"
|
||||
# SUBTRACT LINK32 /incremental:yes
|
||||
|
@ -68,14 +68,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 mysqlclient.lib wsock32.lib 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 /incremental:no /debug /machine:I386 /out:"../client_debug/mysql.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqladmin - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqladmin - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /machine:I386 /out:"../client_release/mysqladmin.exe" /libpath:"..\lib_release\\"
|
||||
|
||||
|
@ -67,14 +67,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 mysqlclient.lib wsock32.lib 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 /incremental:no /debug /machine:I386 /out:"../client_debug/mysqladmin.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlclient - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqlclient - Win32 Release"
|
||||
|
@ -48,7 +48,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib_release\mysqlclient.lib"
|
||||
|
||||
|
@ -65,14 +65,14 @@ LIB32=link.exe -lib
|
|||
# PROP Intermediate_Dir "debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_TLS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_TLS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409
|
||||
# ADD RSC /l 0x409
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib_debug\mysqlclient.lib"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqldump - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqldump - Win32 Release"
|
||||
|
@ -42,14 +42,14 @@ RSC=rc.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /GX- /O2 /I "../include" /I "../" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\"
|
||||
|
||||
|
@ -67,16 +67,16 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /GX- /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 mysqlclient.lib wsock32.lib 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 /out:"../client_debug/mysqldump.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /incremental:no /debug /machine:I386 /out:"../client_debug/mysqldump.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlimport - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqlimport - Win32 Release"
|
||||
|
@ -42,14 +42,14 @@ RSC=rc.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /GX- /O2 /I "../include" /I "../" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /machine:I386 /out:"../client_release/mysqlimport.exe" /libpath:"..\lib_release\\"
|
||||
# SUBTRACT LINK32 /incremental:yes
|
||||
|
@ -68,14 +68,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /GX- /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqlimport.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlshow - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqlshow - Win32 Release"
|
||||
|
@ -42,14 +42,14 @@ RSC=rc.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /GX- /O2 /I "../include" /I "../" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /machine:I386 /out:"../client_release/mysqlshow.exe" /libpath:"..\lib_release\\"
|
||||
|
||||
|
@ -67,16 +67,16 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /GX- /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 mysqlclient.lib wsock32.lib 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 /out:"../client_debug/mysqlshow.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /incremental:no /debug /machine:I386 /out:"../client_debug/mysqlshow.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ CFG=comp_err - Win32 Release
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
|
@ -33,8 +33,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
|
@ -44,7 +44,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 /machine:I386
|
||||
# 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 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\lib_release\mysys.lib wsock32.lib ..\lib_release\strings.lib ..\lib_release\dbug.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"LIBC.lib" /out:"Release/comp-err.exe"
|
||||
# Begin Target
|
||||
|
|
|
@ -87,8 +87,8 @@ LIB32=xilink6.exe -lib
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "innobase___Win32_nt"
|
||||
# PROP Intermediate_Dir "innobase___Win32_nt"
|
||||
# PROP Output_Dir "nt"
|
||||
# PROP Intermediate_Dir "nt"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /G6 /MT /W3 /GX /O2 /I "../innobase/include" /I "../include" /D "NDEBUG" /D "_LIB" /D "_WIN32" /D "WIN32" /D "_MBCS" /D "MYSQL_SERVER" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /GX /O2 /I "../innobase/include" /I "../include" /D "NDEBUG" /D "_LIB" /D "_WIN32" /D "WIN32" /D "_MBCS" /D "MYSQL_SERVER" /FD /c
|
||||
|
@ -111,8 +111,8 @@ LIB32=xilink6.exe -lib
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "innobase___Win32_Max_nt"
|
||||
# PROP Intermediate_Dir "innobase___Win32_Max_nt"
|
||||
# PROP Output_Dir "max_nt"
|
||||
# PROP Intermediate_Dir "max_nt"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /G6 /MT /W3 /GX /O2 /I "../innobase/include" /I "../include" /D "NDEBUG" /D "_LIB" /D "_WIN32" /D "WIN32" /D "_MBCS" /D "MYSQL_SERVER" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /GX /O2 /I "../innobase/include" /I "../include" /D "NDEBUG" /D "_LIB" /D "_WIN32" /D "WIN32" /D "_MBCS" /D "MYSQL_SERVER" /FD /c
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=isamchk - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "isamchk - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /machine:I386 /out:"../client_release/isamchk.exe"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
@ -68,14 +68,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../isam" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../isam" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /Fr /YX
|
||||
# ADD BASE RSC /l 0x41d /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 kernel32.lib user32.lib wsock32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/isamchk.exe" /pdbtype:sept
|
||||
# SUBTRACT LINK32 /verbose /pdb:none
|
||||
|
|
|
@ -76,7 +76,7 @@ PostBuild_Cmds=xcopy release\libmysql.lib ..\lib_release /y
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "." /I "..\include" /I "../zlib" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "." /I "..\include" /I "../zlib" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=libmysqld - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
|
@ -38,8 +38,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMYSQLD_EXPORTS" /YX /FD /c
|
||||
|
@ -51,7 +51,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /dll /machine:I386
|
||||
# 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_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\innodb.lib ..\lib_release\bdb.lib ..\lib_release\zlib.lib /nologo /dll /pdb:none /machine:I386 /out:"../lib_release/libmysqld.dll" /implib:"../lib_release/libmysqld.lib"
|
||||
|
||||
|
@ -69,7 +69,7 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMYSQLD_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MT /W3 /Gm /Zi /Od /I "../include" /I "../sql" /I "../regex" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c
|
||||
# ADD CPP /nologo /MT /W3 /Z7 /Od /I "../include" /I "../sql" /I "../regex" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x416 /d "_DEBUG"
|
||||
|
@ -77,7 +77,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /dll /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\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\innodb.lib /nologo /dll /pdb:none /debug /machine:I386 /nodefaultlib:"LIBCMTD" /out:"../lib_debug/libmysqld.dll" /implib:"../lib_debug/libmysqld.lib"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=myTest - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "myTest - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 libmysql.lib 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 /machine:I386 /libpath:"..\lib_release"
|
||||
|
||||
|
@ -67,14 +67,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "..\include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "..\include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
|
||||
# SUBTRACT CPP /Fr /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 libmysql.lib 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 /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\lib_debug"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=my_print_defaults - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "my_print_defaults - Win32 Release"
|
||||
|
@ -37,8 +37,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
|
@ -47,9 +47,9 @@ RSC=rc.exe
|
|||
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 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 /machine:I386
|
||||
# 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 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 /nologo /subsystem:console /machine:I386
|
||||
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 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 /machine:I386
|
||||
# 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 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 /nologo /subsystem:console /machine:I386
|
||||
|
||||
!ELSEIF "$(CFG)" == "my_print_defaults - Win32 Debug"
|
||||
|
||||
|
@ -64,16 +64,16 @@ LINK32=link.exe
|
|||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MT /W3 /Gm /GX /ZI /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /Z7 /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x416 /d "_DEBUG"
|
||||
# ADD RSC /l 0x416 /d "_DEBUG"
|
||||
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 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 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 /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"LIBCMTD.lib" /pdbtype:sept
|
||||
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 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 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 /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"LIBCMTD.lib" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=myisamlog - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "myisamlog - Win32 Release"
|
||||
|
@ -37,8 +37,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
|
@ -48,7 +48,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 /machine:I386
|
||||
# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib setargv.obj /nologo /subsystem:console /pdb:"release/myisamchk.pdb" /machine:I386 /out:"../client_release/myisamlog.exe"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
@ -74,7 +74,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 wsock32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /incremental:no /pdb:"debug/myisamchk.pdb" /debug /machine:I386 /out:"../client_debug/myisamlog.exe" /pdbtype:sept
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
|
|
@ -605,9 +605,6 @@ Package=<5>
|
|||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name strings
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlbinlog - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqlbinlog - Win32 Release"
|
||||
|
@ -37,8 +37,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "eelease"
|
||||
# PROP Intermediate_Dir "eelease"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
|
@ -48,7 +48,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /machine:I386 /out:"../client_release/mysqlbinlog.exe" /libpath:"..\lib_release\\"
|
||||
# SUBTRACT LINK32 /pdb:none /debug
|
||||
|
@ -67,13 +67,13 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../" /I "../sql" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "MYSQL_SERVER" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /I "../sql" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "MYSQL_SERVER" /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 mysqlclient.lib wsock32.lib 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 /incremental:no /debug /machine:I386 /out:"../client_debug/mysqlbinlog.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlcheck - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqlcheck - Win32 Release"
|
||||
|
@ -38,7 +38,7 @@ RSC=rc.exe
|
|||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
|
@ -48,8 +48,8 @@ RSC=rc.exe
|
|||
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 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 /machine:I386
|
||||
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 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 /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib 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 /machine:I386 /out:"../client_release/mysqlcheck.exe" /libpath:"..\lib_release\\"
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqlcheck - Win32 Debug"
|
||||
|
@ -65,15 +65,15 @@ LINK32=link.exe
|
|||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "MYSQL_SERVER" /FD /c
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D "MYSQL_SERVER" /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
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 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
|
||||
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 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 mysqlclient.lib wsock32.lib 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 /incremental:no /debug /machine:I386 /out:"../client_debug/mysqlcheck.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
|
||||
!ENDIF
|
||||
|
|
|
@ -38,7 +38,7 @@ RSC=rc.exe
|
|||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /O2 /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "MYSQL_SERVER" /D "HAVE_INNOBASE_DB" /D "DBUG_OFF" /D "USE_TLS" /D "__WIN__" /FD /c
|
||||
|
@ -65,7 +65,7 @@ LIB32=xilink6.exe -lib
|
|||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "../zlib" /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "MYSQL_SERVER" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "../zlib" /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "MYSQL_SERVER" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x416 /d "_DEBUG"
|
||||
# ADD RSC /l 0x416 /d "_DEBUG"
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=MySqlManager - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
|
@ -52,7 +52,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
LINK32=xilink6.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
|
||||
# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"../client_release/MySqlManager.exe"
|
||||
# SUBTRACT LINK32 /nodefaultlib
|
||||
|
@ -71,7 +71,7 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "../include" /D "_DEBUG" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /GR /GX /Z7 /Od /I "../include" /D "_DEBUG" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /Fr /YX /Yc /Yu
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /o "NUL" /win32
|
||||
|
@ -81,7 +81,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
LINK32=xilink6.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /incremental:no /debug /machine:I386 /out:"../client_debug/MySqlManager.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlserver - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqlserver - Win32 Release"
|
||||
|
@ -37,8 +37,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /O2 /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "DBUG_OFF" /D "USE_TLS" /YX /FD /c
|
||||
|
@ -47,7 +47,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo
|
||||
|
||||
|
@ -64,13 +64,13 @@ LIB32=link.exe -lib
|
|||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "../include" /I "../regex" /I "../sql" /I "../bdb/build_win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x416 /d "_DEBUG"
|
||||
# ADD RSC /l 0x416 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=mysqlshutdown - Win32 Release
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
|
@ -43,7 +43,7 @@ RSC=rc.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /W3 /GX- /O2 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
||||
# ADD CPP /nologo /G6 /W3 /O2 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
|
@ -52,7 +52,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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:windows /machine:I386
|
||||
# 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 /nologo /subsystem:windows /machine:I386 /out:"../client_release/mysqlshutdown.exe"
|
||||
|
||||
|
@ -72,7 +72,7 @@ LINK32=link.exe
|
|||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /G6 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
||||
# SUBTRACT BASE CPP /YX
|
||||
# ADD CPP /nologo /G6 /W3 /GX- /O2 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
||||
# ADD CPP /nologo /G6 /W3 /Z7 /O2 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
|
@ -81,7 +81,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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:windows /machine:I386 /out:"../client_release/mysqlshutdown.exe"
|
||||
# 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 /nologo /subsystem:windows /machine:I386 /out:"../client_debug/mysqlshutdown.exe"
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ LIB32=xilink6.exe -lib
|
|||
# PROP Intermediate_Dir "debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /ZI /Od /I "../include" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_SYMDIR" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_SYMDIR" /FD /c
|
||||
# SUBTRACT CPP /Fr
|
||||
# ADD BASE RSC /l 0x409
|
||||
# ADD RSC /l 0x409
|
||||
|
@ -86,8 +86,8 @@ LIB32=xilink6.exe -lib
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "mysys___Win32_Max"
|
||||
# PROP Intermediate_Dir "mysys___Win32_Max"
|
||||
# PROP Output_Dir "max"
|
||||
# PROP Intermediate_Dir "max"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /D "NDEBUG" /D "DBUG_OFF" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT BASE CPP /YX
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=pack_isam - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "pack_isam - Win32 Release"
|
||||
|
@ -48,7 +48,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 /machine:I386
|
||||
# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /machine:I386 /out:"../client_release/pack_isam.exe"
|
||||
|
||||
|
@ -66,14 +66,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /I "../isam" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../isam" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /Fr
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 wsock32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /debug /machine:I386 /out:"../client_debug/pack_isam.exe" /pdbtype:sept
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=perror - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
|
@ -38,8 +38,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
|
@ -52,7 +52,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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:windows /machine:I386
|
||||
# ADD LINK32 wsock32.lib 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 /machine:I386 /out:"../client_release/perror.exe"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
@ -71,7 +71,7 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
|
@ -80,7 +80,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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:windows /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib wsock32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /incremental:no /debug /machine:I386 /pdbtype:sept
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=replace - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "replace - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /machine:I386 /out:"../client_release/replace.exe"
|
||||
|
||||
|
@ -67,14 +67,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x40b /d "_DEBUG"
|
||||
# ADD RSC /l 0x40b /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 kernel32.lib user32.lib wsock32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setargv.obj /nologo /subsystem:console /incremental:no /machine:I386 /out:"../client_debug/replace.exe" /pdbtype:sept
|
||||
# SUBTRACT LINK32 /debug
|
||||
|
|
|
@ -28,7 +28,7 @@ CFG=mysqld - Win32 Release
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysqld - Win32 Release"
|
||||
|
@ -52,7 +52,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# 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_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../client_release/mysqld-opt.exe"
|
||||
# SUBTRACT LINK32 /debug
|
||||
|
@ -71,14 +71,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /FD /c
|
||||
# SUBTRACT CPP /Fr /YX
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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\isam.lib ..\lib_debug\merge.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 /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld.exe" /pdbtype:sept
|
||||
|
||||
|
@ -105,7 +105,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 Wsock32.lib ..\lib_release\dbug.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /debug /machine:I386
|
||||
# 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_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\innodb.lib ..\lib_release\zlib.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-nt.exe"
|
||||
# SUBTRACT LINK32 /pdb:none /debug
|
||||
|
@ -133,7 +133,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 Wsock32.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\zlib.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-nt.exe"
|
||||
# SUBTRACT BASE LINK32 /pdb:none /debug
|
||||
# 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_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys-max.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\zlib.lib ..\lib_release\innodb.lib ..\lib_release\bdb.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-max-nt.exe"
|
||||
|
@ -162,7 +162,7 @@ LINK32=link.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 Wsock32.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"../client_release/mysqld-opt.exe"
|
||||
# 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_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys-max.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\innodb.lib ..\lib_release\bdb.lib ..\lib_release\zlib.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../client_release/mysqld-max.exe"
|
||||
# SUBTRACT LINK32 /debug
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=test1 - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "test1 - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# 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 /nologo /subsystem:console /machine:I386
|
||||
|
||||
|
@ -67,14 +67,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 LINK32 libmysql.lib 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 /libpath:"..\lib_debug"
|
||||
# SUBTRACT LINK32 /incremental:no
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=thr_test - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "thr_test - Win32 Release"
|
||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 /machine:I386
|
||||
# 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 /nologo /subsystem:console /machine:I386
|
||||
# SUBTRACT LINK32 /nodefaultlib
|
||||
|
@ -68,14 +68,14 @@ LINK32=link.exe
|
|||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Gm /ZI /Od /I "../include" /D "__WIN32__" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /D "__WIN32__" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /FD /c
|
||||
# SUBTRACT CPP /Fr /YX
|
||||
# ADD BASE RSC /l 0x40b /d "_DEBUG"
|
||||
# ADD RSC /l 0x40b /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.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 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 /incremental:no /debug /machine:I386 /pdbtype:sept
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=vio - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "vio - Win32 Release"
|
||||
|
@ -37,8 +37,8 @@ RSC=rc.exe
|
|||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /D "NDEBUG" /D "DBUG_OFF" /D "_WINDOWS" /FD /c
|
||||
|
@ -47,7 +47,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib_release\vio.lib"
|
||||
|
||||
|
@ -64,13 +64,13 @@ LIB32=link.exe -lib
|
|||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /ZI /Od /I "../include" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_SYMDIR" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_SYMDIR" /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib_debug\vio.lib"
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ CFG=zlib - Win32 Debug
|
|||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "zlib - Win32 Release"
|
||||
|
@ -48,7 +48,7 @@ RSC=rc.exe
|
|||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib_release\zlib.lib"
|
||||
|
||||
|
@ -65,13 +65,13 @@ LIB32=link.exe -lib
|
|||
# PROP Intermediate_Dir "debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Zi /Od /D "_DEBUG" /D "__WIN32__" /D "_WINDOWS" /FD /c
|
||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /D "_DEBUG" /D "__WIN32__" /D "_WINDOWS" /FD /c
|
||||
# ADD BASE RSC /l 0x409
|
||||
# ADD RSC /l 0x409
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
LIB32=xilink6.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib_debug\zlib.lib"
|
||||
|
||||
|
|
|
@ -213,6 +213,9 @@
|
|||
/* Define if the system files define ulong */
|
||||
#undef HAVE_ULONG
|
||||
|
||||
/* Define if the system files define in_addr_t */
|
||||
#undef HAVE_IN_ADDR_T
|
||||
|
||||
/* UNIXWARE7 threads are not posix */
|
||||
#undef HAVE_UNIXWARE7_THREADS
|
||||
|
||||
|
|
22
acinclude.m4
22
acinclude.m4
|
@ -244,6 +244,28 @@ fi
|
|||
])
|
||||
|
||||
|
||||
AC_DEFUN(MYSQL_CHECK_IN_ADDR_T,
|
||||
[AC_MSG_CHECKING(for type in_addr_t)
|
||||
AC_CACHE_VAL(ac_cv_in_addr_t,
|
||||
[AC_TRY_RUN([#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
in_addr_t foo;
|
||||
exit(0);
|
||||
}], ac_cv_in_addr_t=yes, ac_cv_in_addr_t=no, ac_cv_in_addr_t=no)])
|
||||
AC_MSG_RESULT($ac_cv_in_addr_t)
|
||||
if test "$ac_cv_in_addr_t" = "yes"
|
||||
then
|
||||
AC_DEFINE(HAVE_IN_ADDR_T)
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(MYSQL_PTHREAD_YIELD,
|
||||
[AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg,
|
||||
[AC_TRY_LINK([#define _GNU_SOURCE
|
||||
|
|
|
@ -1811,10 +1811,11 @@ print_field_types(MYSQL_RES *result)
|
|||
MYSQL_FIELD *field;
|
||||
while ((field = mysql_fetch_field(result)))
|
||||
{
|
||||
tee_fprintf(PAGER,"'%s.%s.%s.%s' %d %d %d %d %d\n",
|
||||
tee_fprintf(PAGER,"Catalog: '%s'\nDatabase: '%s'\nTable: '%s'\nName: '%s'\nType: %d\nLength: %d\nMax length: %d\nIs_null: %d\nFlags: %d\nDecimals: %d\n\n",
|
||||
field->catalog, field->db, field->table, field->name,
|
||||
(int) field->type,
|
||||
field->length, field->max_length,
|
||||
field->length, field->max_length,
|
||||
!IS_NOT_NULL(field->flags),
|
||||
field->flags, field->decimals);
|
||||
}
|
||||
tee_puts("", PAGER);
|
||||
|
@ -2650,10 +2651,10 @@ com_status(String *buffer __attribute__((unused)),
|
|||
(void) mysql_fetch_row(result); // Read eof
|
||||
}
|
||||
#ifdef HAVE_OPENSSL
|
||||
if (mysql.net.vio && mysql.net.vio->ssl_ &&
|
||||
SSL_get_cipher(mysql.net.vio->ssl_))
|
||||
if (mysql.net.vio && mysql.net.vio->ssl_arg &&
|
||||
SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg))
|
||||
tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n",
|
||||
SSL_get_cipher(mysql.net.vio->ssl_));
|
||||
SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg));
|
||||
else
|
||||
#endif /* HAVE_OPENSSL */
|
||||
tee_puts("SSL:\t\t\tNot in use", stdout);
|
||||
|
|
|
@ -769,9 +769,12 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
|||
return 1;
|
||||
}
|
||||
if (argv[1][0])
|
||||
make_scrambled_password(crypted_pw,argv[1],
|
||||
(find_type(argv[0], &command_typelib, 2) ==
|
||||
ADMIN_OLD_PASSWORD), &rand_st);
|
||||
{
|
||||
if (find_type(argv[0], &command_typelib, 2) == ADMIN_OLD_PASSWORD)
|
||||
make_scrambled_password_323(crypted_pw, argv[1]);
|
||||
else
|
||||
make_scrambled_password(crypted_pw, argv[1]);
|
||||
}
|
||||
else
|
||||
crypted_pw[0]=0; /* No password */
|
||||
sprintf(buff,"set password='%s',sql_log_off=0",crypted_pw);
|
||||
|
|
|
@ -182,7 +182,16 @@ public:
|
|||
void process(Append_block_log_event *ae)
|
||||
{
|
||||
if (ae->file_id >= file_names.elements)
|
||||
die("Skiped CreateFile event for file_id: %u",ae->file_id);
|
||||
{
|
||||
/*
|
||||
There is no Create_file event (a bad binlog or a big
|
||||
--position). Assuming it's a big --position, we just do nothing and
|
||||
print a warning.
|
||||
*/
|
||||
fprintf(stderr,"Warning: ignoring Append_block as there is no \
|
||||
Create_file event for file_id: %u\n",ae->file_id);
|
||||
return;
|
||||
}
|
||||
Create_file_log_event* ce=
|
||||
*((Create_file_log_event**)file_names.buffer + ae->file_id);
|
||||
append_to_file(ce->fname,O_APPEND|O_BINARY|O_WRONLY,ae->block,ae->block_len);
|
||||
|
@ -567,45 +576,49 @@ Could not read entry at offset %s : Error in log format or read error",
|
|||
}
|
||||
if (rec_count >= offset)
|
||||
{
|
||||
// see if we should skip this event (only care about queries for now)
|
||||
if (one_database)
|
||||
{
|
||||
if (ev->get_type_code() == QUERY_EVENT)
|
||||
{
|
||||
//const char * log_dbname = ev->get_db();
|
||||
const char * log_dbname = ((Query_log_event*)ev)->db;
|
||||
//printf("entry: %llu, database: %s\n", rec_count, log_dbname);
|
||||
|
||||
if ((log_dbname != NULL) && (strcmp(log_dbname, database)))
|
||||
{
|
||||
//printf("skipping, %s is not %s\n", log_dbname, database);
|
||||
rec_count++;
|
||||
delete ev;
|
||||
continue; // next
|
||||
}
|
||||
#ifndef DBUG_OFF
|
||||
else
|
||||
{
|
||||
printf("no skip\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#ifndef DBUG_OFF
|
||||
else
|
||||
{
|
||||
const char * query_type = ev->get_type_str();
|
||||
printf("not query -- %s\n", query_type);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (!short_form)
|
||||
fprintf(result_file, "# at %s\n",llstr(old_off,llbuff));
|
||||
|
||||
switch (ev->get_type_code()) {
|
||||
case QUERY_EVENT:
|
||||
if (one_database)
|
||||
{
|
||||
const char * log_dbname = ((Query_log_event*)ev)->db;
|
||||
if ((log_dbname != NULL) && (strcmp(log_dbname, database)))
|
||||
{
|
||||
rec_count++;
|
||||
delete ev;
|
||||
continue; // next
|
||||
}
|
||||
}
|
||||
ev->print(result_file, short_form, last_db);
|
||||
break;
|
||||
case CREATE_FILE_EVENT:
|
||||
{
|
||||
Create_file_log_event* ce= (Create_file_log_event*)ev;
|
||||
ce->print(result_file, short_form, last_db,true);
|
||||
if (one_database)
|
||||
{
|
||||
/*
|
||||
We test if this event has to be ignored. If yes, we don't save this
|
||||
event; this will have the good side-effect of ignoring all related
|
||||
Append_block and Exec_load.
|
||||
Note that Load event from 3.23 is not tested.
|
||||
*/
|
||||
const char * log_dbname = ce->db;
|
||||
if ((log_dbname != NULL) && (strcmp(log_dbname, database)))
|
||||
{
|
||||
rec_count++;
|
||||
delete ev;
|
||||
continue; // next
|
||||
}
|
||||
}
|
||||
/*
|
||||
We print the event, but with a leading '#': this is just to inform the
|
||||
user of the original command; the command we want to execute will be a
|
||||
derivation of this original command (we will change the filename and
|
||||
use LOCAL), prepared in the 'case EXEC_LOAD_EVENT' below.
|
||||
*/
|
||||
ce->print(result_file, short_form, last_db, true);
|
||||
load_processor.process(ce);
|
||||
ev= 0;
|
||||
break;
|
||||
|
@ -619,9 +632,20 @@ Could not read entry at offset %s : Error in log format or read error",
|
|||
ev->print(result_file, short_form, last_db);
|
||||
Execute_load_log_event *exv= (Execute_load_log_event*)ev;
|
||||
Create_file_log_event *ce= load_processor.grab_event(exv->file_id);
|
||||
ce->print(result_file, short_form, last_db,true);
|
||||
my_free((char*)ce->fname,MYF(MY_WME));
|
||||
delete ce;
|
||||
/*
|
||||
if ce is 0, it probably means that we have not seen the Create_file
|
||||
event (a bad binlog, or most probably --position is after the
|
||||
Create_file event). Print a warning comment.
|
||||
*/
|
||||
if (ce)
|
||||
{
|
||||
ce->print(result_file, short_form, last_db,true);
|
||||
my_free((char*)ce->fname,MYF(MY_WME));
|
||||
delete ce;
|
||||
}
|
||||
else
|
||||
fprintf(stderr,"Warning: ignoring Exec_load as there is no \
|
||||
Create_file event for file_id: %u\n",exv->file_id);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -633,7 +657,7 @@ Could not read entry at offset %s : Error in log format or read error",
|
|||
delete ev;
|
||||
}
|
||||
if (fd >= 0)
|
||||
my_close(fd, MYF(MY_WME));
|
||||
my_close(fd, MYF(MY_WME));
|
||||
end_io_cache(file);
|
||||
}
|
||||
|
||||
|
|
|
@ -297,7 +297,7 @@ static int dump_all_tables_in_db(char *db);
|
|||
static int init_dumping(char *);
|
||||
static int dump_databases(char **);
|
||||
static int dump_all_databases();
|
||||
static char *quote_name(char *name, char *buff);
|
||||
static char *quote_name(const char *name, char *buff, my_bool force);
|
||||
static void print_quoted_xml(FILE *output, char *fname, char *str, uint len);
|
||||
|
||||
static void print_version(void)
|
||||
|
@ -347,7 +347,7 @@ static void write_header(FILE *sql_file, char *db_name)
|
|||
fprintf(sql_file, "-- MySQL dump %s\n--\n", DUMP_VERSION);
|
||||
fprintf(sql_file, "-- Host: %s Database: %s\n",
|
||||
current_host ? current_host : "localhost", db_name ? db_name : "");
|
||||
fputs("---------------------------------------------------------\n",
|
||||
fputs("-- ------------------------------------------------------\n",
|
||||
sql_file);
|
||||
fprintf(sql_file, "-- Server version\t%s\n",
|
||||
mysql_get_server_info(&mysql_connection));
|
||||
|
@ -631,33 +631,43 @@ static my_bool test_if_special_chars(const char *str)
|
|||
return 0;
|
||||
} /* test_if_special_chars */
|
||||
|
||||
static char *quote_name(char *name, char *buff)
|
||||
|
||||
static char *quote_name(const char *name, char *buff, my_bool force)
|
||||
{
|
||||
char *end;
|
||||
if (!opt_quoted && !test_if_special_chars(name))
|
||||
return name;
|
||||
buff[0]=QUOTE_CHAR;
|
||||
end=strmov(buff+1,name);
|
||||
end[0]=QUOTE_CHAR;
|
||||
end[1]=0;
|
||||
char *to= buff;
|
||||
if (!force && !opt_quoted && !test_if_special_chars(name))
|
||||
return (char*) name;
|
||||
*to++= QUOTE_CHAR;
|
||||
while (*name)
|
||||
{
|
||||
if (*name == QUOTE_CHAR)
|
||||
*to= QUOTE_CHAR;
|
||||
*to++= *name++;
|
||||
}
|
||||
to[0]=QUOTE_CHAR;
|
||||
to[1]=0;
|
||||
return buff;
|
||||
} /* quote_name */
|
||||
|
||||
|
||||
/*
|
||||
** getStructure -- retrievs database structure, prints out corresponding
|
||||
** CREATE statement and fills out insert_pat.
|
||||
** Return values: number of fields in table, 0 if error
|
||||
getStructure -- retrievs database structure, prints out corresponding
|
||||
CREATE statement and fills out insert_pat.
|
||||
|
||||
RETURN
|
||||
number of fields in table, 0 if error
|
||||
*/
|
||||
|
||||
static uint getTableStructure(char *table, char* db)
|
||||
{
|
||||
MYSQL_RES *tableRes;
|
||||
MYSQL_ROW row;
|
||||
my_bool init=0;
|
||||
uint numFields;
|
||||
char *strpos, *table_name;
|
||||
char *strpos, *result_table, *opt_quoted_table;
|
||||
const char *delayed;
|
||||
char name_buff[NAME_LEN+3],table_buff[NAME_LEN+3];
|
||||
char name_buff[NAME_LEN+3],table_buff[NAME_LEN*2+3];
|
||||
char table_buff2[NAME_LEN*2+3];
|
||||
FILE *sql_file = md_result_file;
|
||||
DBUG_ENTER("getTableStructure");
|
||||
|
||||
|
@ -667,7 +677,8 @@ static uint getTableStructure(char *table, char* db)
|
|||
fprintf(stderr, "-- Retrieving table structure for table %s...\n", table);
|
||||
|
||||
sprintf(insert_pat,"SET OPTION SQL_QUOTE_SHOW_CREATE=%d", (opt_quoted || opt_keywords));
|
||||
table_name=quote_name(table,table_buff);
|
||||
result_table= quote_name(table, table_buff, 1);
|
||||
opt_quoted_table= quote_name(table, table_buff2, 0);
|
||||
if (!mysql_query(sock,insert_pat))
|
||||
{
|
||||
/* using SHOW CREATE statement */
|
||||
|
@ -691,7 +702,7 @@ static uint getTableStructure(char *table, char* db)
|
|||
end= strmov(end, ",");
|
||||
}
|
||||
}
|
||||
end= strmov(--end, "\" */");
|
||||
end= strmov(end-1, "\" */");
|
||||
if (mysql_query(sock, buff))
|
||||
{
|
||||
fprintf(stderr, "%s: Can't set the compatible mode '%s' (%s)\n",
|
||||
|
@ -701,11 +712,11 @@ static uint getTableStructure(char *table, char* db)
|
|||
}
|
||||
}
|
||||
|
||||
sprintf(buff,"show create table `%s`",table);
|
||||
sprintf(buff,"show create table %s", result_table);
|
||||
if (mysql_query(sock, buff))
|
||||
{
|
||||
fprintf(stderr, "%s: Can't get CREATE TABLE for table '%s' (%s)\n",
|
||||
my_progname, table, mysql_error(sock));
|
||||
fprintf(stderr, "%s: Can't get CREATE TABLE for table %s (%s)\n",
|
||||
my_progname, result_table, mysql_error(sock));
|
||||
safe_exit(EX_MYSQLERR);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
@ -724,10 +735,10 @@ static uint getTableStructure(char *table, char* db)
|
|||
write_header(sql_file, db);
|
||||
}
|
||||
if (!opt_xml)
|
||||
fprintf(sql_file, "\n--\n-- Table structure for table '%s'\n--\n\n",
|
||||
table);
|
||||
fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n",
|
||||
result_table);
|
||||
if (opt_drop)
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n",table_name);
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", opt_quoted_table);
|
||||
|
||||
tableRes=mysql_store_result(sock);
|
||||
row=mysql_fetch_row(tableRes);
|
||||
|
@ -735,11 +746,11 @@ static uint getTableStructure(char *table, char* db)
|
|||
fprintf(sql_file, "%s;\n", row[1]);
|
||||
mysql_free_result(tableRes);
|
||||
}
|
||||
sprintf(insert_pat,"show fields from %s",table_name);
|
||||
sprintf(insert_pat,"show fields from %s", result_table);
|
||||
if (mysql_query(sock,insert_pat) || !(tableRes=mysql_store_result(sock)))
|
||||
{
|
||||
fprintf(stderr, "%s: Can't get info about table: '%s'\nerror: %s\n",
|
||||
my_progname, table, mysql_error(sock));
|
||||
fprintf(stderr, "%s: Can't get info about table: %s\nerror: %s\n",
|
||||
my_progname, result_table, mysql_error(sock));
|
||||
if (path)
|
||||
my_fclose(sql_file, MYF(MY_WME));
|
||||
safe_exit(EX_MYSQLERR);
|
||||
|
@ -747,10 +758,11 @@ static uint getTableStructure(char *table, char* db)
|
|||
}
|
||||
|
||||
if (cFlag)
|
||||
sprintf(insert_pat, "INSERT %sINTO %s (", delayed, table_name);
|
||||
sprintf(insert_pat, "INSERT %sINTO %s (", delayed, opt_quoted_table);
|
||||
else
|
||||
{
|
||||
sprintf(insert_pat, "INSERT %sINTO %s VALUES ", delayed, table_name);
|
||||
sprintf(insert_pat, "INSERT %sINTO %s VALUES ", delayed,
|
||||
opt_quoted_table);
|
||||
if (!extended_insert)
|
||||
strcat(insert_pat,"(");
|
||||
}
|
||||
|
@ -765,7 +777,7 @@ static uint getTableStructure(char *table, char* db)
|
|||
}
|
||||
init=1;
|
||||
if (cFlag)
|
||||
strpos=strmov(strpos,quote_name(row[SHOW_FIELDNAME],name_buff));
|
||||
strpos=strmov(strpos,quote_name(row[SHOW_FIELDNAME], name_buff, 0));
|
||||
}
|
||||
numFields = (uint) mysql_num_rows(tableRes);
|
||||
mysql_free_result(tableRes);
|
||||
|
@ -775,11 +787,11 @@ static uint getTableStructure(char *table, char* db)
|
|||
/* fprintf(stderr, "%s: Can't set SQL_QUOTE_SHOW_CREATE option (%s)\n",
|
||||
my_progname, mysql_error(sock)); */
|
||||
|
||||
sprintf(insert_pat,"show fields from %s",table_name);
|
||||
sprintf(insert_pat,"show fields from %s", result_table);
|
||||
if (mysql_query(sock,insert_pat) || !(tableRes=mysql_store_result(sock)))
|
||||
{
|
||||
fprintf(stderr, "%s: Can't get info about table: '%s'\nerror: %s\n",
|
||||
my_progname, table, mysql_error(sock));
|
||||
fprintf(stderr, "%s: Can't get info about table: %s\nerror: %s\n",
|
||||
my_progname, result_table, mysql_error(sock));
|
||||
safe_exit(EX_MYSQLERR);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
@ -801,17 +813,17 @@ static uint getTableStructure(char *table, char* db)
|
|||
write_header(sql_file, db);
|
||||
}
|
||||
if (!opt_xml)
|
||||
fprintf(sql_file, "\n--\n-- Table structure for table '%s'\n--\n\n",
|
||||
table);
|
||||
fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n",
|
||||
result_table);
|
||||
if (opt_drop)
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n",table_name);
|
||||
fprintf(sql_file, "CREATE TABLE %s (\n", table_name);
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n",result_table);
|
||||
fprintf(sql_file, "CREATE TABLE %s (\n", result_table);
|
||||
}
|
||||
if (cFlag)
|
||||
sprintf(insert_pat, "INSERT %sINTO %s (", delayed, table_name);
|
||||
sprintf(insert_pat, "INSERT %sINTO %s (", delayed, result_table);
|
||||
else
|
||||
{
|
||||
sprintf(insert_pat, "INSERT %sINTO %s VALUES ", delayed, table_name);
|
||||
sprintf(insert_pat, "INSERT %sINTO %s VALUES ", delayed, result_table);
|
||||
if (!extended_insert)
|
||||
strcat(insert_pat,"(");
|
||||
}
|
||||
|
@ -829,15 +841,17 @@ static uint getTableStructure(char *table, char* db)
|
|||
}
|
||||
init=1;
|
||||
if (cFlag)
|
||||
strpos=strmov(strpos,quote_name(row[SHOW_FIELDNAME],name_buff));
|
||||
strpos=strmov(strpos,quote_name(row[SHOW_FIELDNAME], name_buff, 0));
|
||||
if (!tFlag)
|
||||
{
|
||||
if (opt_keywords)
|
||||
fprintf(sql_file, " %s.%s %s", table_name,
|
||||
quote_name(row[SHOW_FIELDNAME],name_buff), row[SHOW_TYPE]);
|
||||
fprintf(sql_file, " %s.%s %s", result_table,
|
||||
quote_name(row[SHOW_FIELDNAME],name_buff, 0),
|
||||
row[SHOW_TYPE]);
|
||||
else
|
||||
fprintf(sql_file, " %s %s", quote_name(row[SHOW_FIELDNAME],
|
||||
name_buff), row[SHOW_TYPE]);
|
||||
name_buff, 0),
|
||||
row[SHOW_TYPE]);
|
||||
if (row[SHOW_DEFAULT])
|
||||
{
|
||||
fputs(" DEFAULT ", sql_file);
|
||||
|
@ -856,11 +870,11 @@ static uint getTableStructure(char *table, char* db)
|
|||
/* Make an sql-file, if path was given iow. option -T was given */
|
||||
char buff[20+FN_REFLEN];
|
||||
uint keynr,primary_key;
|
||||
sprintf(buff,"show keys from %s",table_name);
|
||||
sprintf(buff,"show keys from %s", result_table);
|
||||
if (mysql_query(sock, buff))
|
||||
{
|
||||
fprintf(stderr, "%s: Can't get keys for table '%s' (%s)\n",
|
||||
my_progname, table, mysql_error(sock));
|
||||
fprintf(stderr, "%s: Can't get keys for table %s (%s)\n",
|
||||
my_progname, result_table, mysql_error(sock));
|
||||
if (path)
|
||||
my_fclose(sql_file, MYF(MY_WME));
|
||||
safe_exit(EX_MYSQLERR);
|
||||
|
@ -897,15 +911,15 @@ static uint getTableStructure(char *table, char* db)
|
|||
putc(')', sql_file);
|
||||
if (atoi(row[1])) /* Test if duplicate key */
|
||||
/* Duplicate allowed */
|
||||
fprintf(sql_file, ",\n KEY %s (",quote_name(row[2],name_buff));
|
||||
fprintf(sql_file, ",\n KEY %s (",quote_name(row[2],name_buff,0));
|
||||
else if (keynr == primary_key)
|
||||
fputs(",\n PRIMARY KEY (",sql_file); /* First UNIQUE is primary */
|
||||
else
|
||||
fprintf(sql_file, ",\n UNIQUE %s (",quote_name(row[2],name_buff));
|
||||
fprintf(sql_file, ",\n UNIQUE %s (",quote_name(row[2],name_buff,0));
|
||||
}
|
||||
else
|
||||
putc(',', sql_file);
|
||||
fputs(quote_name(row[4],name_buff), sql_file);
|
||||
fputs(quote_name(row[4], name_buff, 0), sql_file);
|
||||
if (row[7])
|
||||
fprintf(sql_file, " (%s)",row[7]); /* Sub key */
|
||||
}
|
||||
|
@ -916,23 +930,23 @@ static uint getTableStructure(char *table, char* db)
|
|||
/* Get MySQL specific create options */
|
||||
if (create_options)
|
||||
{
|
||||
sprintf(buff,"show table status like '%s'",table);
|
||||
sprintf(buff,"show table status like %s",result_table);
|
||||
if (mysql_query(sock, buff))
|
||||
{
|
||||
if (mysql_errno(sock) != ER_PARSE_ERROR)
|
||||
{ /* If old MySQL version */
|
||||
if (verbose)
|
||||
fprintf(stderr,
|
||||
"-- Warning: Couldn't get status information for table '%s' (%s)\n",
|
||||
table,mysql_error(sock));
|
||||
"-- Warning: Couldn't get status information for table %s (%s)\n",
|
||||
result_table,mysql_error(sock));
|
||||
}
|
||||
}
|
||||
else if (!(tableRes=mysql_store_result(sock)) ||
|
||||
!(row=mysql_fetch_row(tableRes)))
|
||||
{
|
||||
fprintf(stderr,
|
||||
"Error: Couldn't read status information for table '%s' (%s)\n",
|
||||
table,mysql_error(sock));
|
||||
"Error: Couldn't read status information for table %s (%s)\n",
|
||||
result_table,mysql_error(sock));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1016,6 +1030,7 @@ static char *field_escape(char *to,const char *from,uint length)
|
|||
static void dumpTable(uint numFields, char *table)
|
||||
{
|
||||
char query[QUERY_LENGTH], *end, buff[256],table_buff[NAME_LEN+3];
|
||||
char *result_table, table_buff2[NAME_LEN*2+3], *opt_quoted_table;
|
||||
MYSQL_RES *res;
|
||||
MYSQL_FIELD *field;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1023,6 +1038,8 @@ static void dumpTable(uint numFields, char *table)
|
|||
|
||||
if (verbose)
|
||||
fprintf(stderr, "-- Sending SELECT query...\n");
|
||||
result_table= quote_name(table,table_buff, 1);
|
||||
opt_quoted_table= quote_name(table, table_buff2, 0);
|
||||
if (path)
|
||||
{
|
||||
char filename[FN_REFLEN], tmp_path[FN_REFLEN];
|
||||
|
@ -1049,7 +1066,7 @@ static void dumpTable(uint numFields, char *table)
|
|||
end= add_load_option(end, lines_terminated, " LINES TERMINATED BY");
|
||||
*end= '\0';
|
||||
|
||||
sprintf(buff," FROM %s",quote_name(table,table_buff));
|
||||
sprintf(buff," FROM %s", result_table);
|
||||
end= strmov(end,buff);
|
||||
if (where)
|
||||
end= strxmov(end, " WHERE ",where,NullS);
|
||||
|
@ -1062,10 +1079,10 @@ static void dumpTable(uint numFields, char *table)
|
|||
else
|
||||
{
|
||||
if (!opt_xml)
|
||||
fprintf(md_result_file,"\n--\n-- Dumping data for table '%s'\n--\n",
|
||||
table);
|
||||
fprintf(md_result_file,"\n--\n-- Dumping data for table %s\n--\n",
|
||||
result_table);
|
||||
sprintf(query, "SELECT /*!40001 SQL_NO_CACHE */ * FROM %s",
|
||||
quote_name(table,table_buff));
|
||||
result_table);
|
||||
if (where)
|
||||
{
|
||||
if (!opt_xml)
|
||||
|
@ -1092,18 +1109,17 @@ static void dumpTable(uint numFields, char *table)
|
|||
fprintf(stderr, "-- Retrieving rows...\n");
|
||||
if (mysql_num_fields(res) != numFields)
|
||||
{
|
||||
fprintf(stderr,"%s: Error in field count for table: '%s' ! Aborting.\n",
|
||||
my_progname,table);
|
||||
fprintf(stderr,"%s: Error in field count for table: %s ! Aborting.\n",
|
||||
my_progname, result_table);
|
||||
safe_exit(EX_CONSCHECK);
|
||||
return;
|
||||
}
|
||||
|
||||
if (opt_disable_keys)
|
||||
fprintf(md_result_file,"/*!40000 ALTER TABLE %s DISABLE KEYS */;\n",
|
||||
quote_name(table, table_buff));
|
||||
fprintf(md_result_file, "\n/*!40000 ALTER TABLE %s DISABLE KEYS */;\n",
|
||||
opt_quoted_table);
|
||||
if (opt_lock)
|
||||
fprintf(md_result_file,"LOCK TABLES %s WRITE;\n",
|
||||
quote_name(table,table_buff));
|
||||
fprintf(md_result_file,"LOCK TABLES %s WRITE;\n", opt_quoted_table);
|
||||
|
||||
total_length=net_buffer_length; /* Force row break */
|
||||
row_break=0;
|
||||
|
@ -1131,13 +1147,13 @@ static void dumpTable(uint numFields, char *table)
|
|||
{
|
||||
if (!(field = mysql_fetch_field(res)))
|
||||
{
|
||||
sprintf(query,"%s: Not enough fields from table '%s'! Aborting.\n",
|
||||
my_progname,table);
|
||||
sprintf(query,"%s: Not enough fields from table %s! Aborting.\n",
|
||||
my_progname, result_table);
|
||||
fputs(query,stderr);
|
||||
safe_exit(EX_CONSCHECK);
|
||||
return;
|
||||
}
|
||||
if (extended_insert)
|
||||
if (extended_insert && !opt_xml)
|
||||
{
|
||||
ulong length = lengths[i];
|
||||
if (i == 0)
|
||||
|
@ -1222,7 +1238,7 @@ static void dumpTable(uint numFields, char *table)
|
|||
if (opt_xml)
|
||||
fprintf(md_result_file, "\t</row>\n");
|
||||
|
||||
if (extended_insert)
|
||||
if (extended_insert && !opt_xml)
|
||||
{
|
||||
ulong row_length;
|
||||
dynstr_append(&extended_row,")");
|
||||
|
@ -1259,11 +1275,11 @@ static void dumpTable(uint numFields, char *table)
|
|||
fflush(md_result_file);
|
||||
if (mysql_errno(sock))
|
||||
{
|
||||
sprintf(query,"%s: Error %d: %s when dumping table '%s' at row: %ld\n",
|
||||
sprintf(query,"%s: Error %d: %s when dumping table %s at row: %ld\n",
|
||||
my_progname,
|
||||
mysql_errno(sock),
|
||||
mysql_error(sock),
|
||||
table,
|
||||
result_table,
|
||||
rownr);
|
||||
fputs(query,stderr);
|
||||
safe_exit(EX_CONSCHECK);
|
||||
|
@ -1273,7 +1289,7 @@ static void dumpTable(uint numFields, char *table)
|
|||
fputs("UNLOCK TABLES;\n", md_result_file);
|
||||
if (opt_disable_keys)
|
||||
fprintf(md_result_file,"/*!40000 ALTER TABLE %s ENABLE KEYS */;\n",
|
||||
quote_name(table,table_buff));
|
||||
opt_quoted_table);
|
||||
if (opt_autocommit)
|
||||
fprintf(md_result_file, "commit;\n");
|
||||
mysql_free_result(res);
|
||||
|
@ -1404,7 +1420,7 @@ static int init_dumping(char *database)
|
|||
(opt_quoted ? "`" : ""));
|
||||
}
|
||||
}
|
||||
if (extended_insert)
|
||||
if (extended_insert && !opt_xml)
|
||||
if (init_dynamic_string(&extended_row, "", 1024, 1024))
|
||||
exit(EX_EOM);
|
||||
return 0;
|
||||
|
@ -1415,7 +1431,7 @@ static int dump_all_tables_in_db(char *database)
|
|||
{
|
||||
char *table;
|
||||
uint numrows;
|
||||
char table_buff[NAME_LEN+3];
|
||||
char table_buff[NAME_LEN*2+3];
|
||||
|
||||
if (init_dumping(database))
|
||||
return 1;
|
||||
|
@ -1427,7 +1443,7 @@ static int dump_all_tables_in_db(char *database)
|
|||
init_dynamic_string(&query, "LOCK TABLES ", 256, 1024);
|
||||
for (numrows=0 ; (table = getTableName(1)) ; numrows++)
|
||||
{
|
||||
dynstr_append(&query, quote_name(table, table_buff));
|
||||
dynstr_append(&query, quote_name(table, table_buff, 1));
|
||||
dynstr_append(&query, " READ /*!32311 LOCAL */,");
|
||||
}
|
||||
if (numrows && mysql_real_query(sock, query.str, query.length-1))
|
||||
|
@ -1459,7 +1475,7 @@ static int dump_all_tables_in_db(char *database)
|
|||
static int dump_selected_tables(char *db, char **table_names, int tables)
|
||||
{
|
||||
uint numrows;
|
||||
char table_buff[NAME_LEN+3];
|
||||
char table_buff[NAME_LEN*+3];
|
||||
|
||||
if (init_dumping(db))
|
||||
return 1;
|
||||
|
@ -1471,7 +1487,7 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
|
|||
init_dynamic_string(&query, "LOCK TABLES ", 256, 1024);
|
||||
for (i=0 ; i < tables ; i++)
|
||||
{
|
||||
dynstr_append(&query, quote_name(table_names[i], table_buff));
|
||||
dynstr_append(&query, quote_name(table_names[i], table_buff, 1));
|
||||
dynstr_append(&query, " READ /*!32311 LOCAL */,");
|
||||
}
|
||||
if (mysql_real_query(sock, query.str, query.length-1))
|
||||
|
@ -1643,9 +1659,8 @@ int main(int argc, char **argv)
|
|||
fprintf(md_result_file,
|
||||
"\n--\n-- Position to start replication from\n--\n\n");
|
||||
fprintf(md_result_file,
|
||||
"CHANGE MASTER TO MASTER_LOG_FILE='%s' ;\n", row[0]);
|
||||
fprintf(md_result_file, "CHANGE MASTER TO MASTER_LOG_POS=%s ;\n",
|
||||
row[1]);
|
||||
"CHANGE MASTER TO MASTER_LOG_FILE='%s', \
|
||||
MASTER_LOG_POS=%s ;\n",row[0],row[1]);
|
||||
}
|
||||
mysql_free_result(master);
|
||||
}
|
||||
|
@ -1676,7 +1691,7 @@ int main(int argc, char **argv)
|
|||
if (md_result_file != stdout)
|
||||
my_fclose(md_result_file, MYF(0));
|
||||
my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
|
||||
if (extended_insert)
|
||||
if (extended_insert & !opt_xml)
|
||||
dynstr_free(&extended_row);
|
||||
my_end(0);
|
||||
return(first_error);
|
||||
|
|
|
@ -45,16 +45,15 @@ static char *opt_password=0, *current_user=0,
|
|||
*lines_terminated=0, *enclosed=0, *opt_enclosed=0,
|
||||
*escaped=0, *opt_columns=0,
|
||||
*default_charset= (char*) MYSQL_DEFAULT_CHARSET_NAME;
|
||||
static uint opt_mysql_port=0;
|
||||
static uint opt_mysql_port= 0, opt_protocol= 0;
|
||||
static my_string opt_mysql_unix_port=0;
|
||||
static my_string opt_ignore_lines=0;
|
||||
static longlong opt_ignore_lines= -1;
|
||||
static CHARSET_INFO *charset_info= &my_charset_latin1;
|
||||
#include <sslopt-vars.h>
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
static char *shared_memory_base_name=0;
|
||||
#endif
|
||||
static uint opt_protocol=0;
|
||||
|
||||
static struct my_option my_long_options[] =
|
||||
{
|
||||
|
@ -97,7 +96,7 @@ static struct my_option my_long_options[] =
|
|||
{"ignore", 'i', "If duplicate unique key was found, keep old row.",
|
||||
(gptr*) &ignore, (gptr*) &ignore, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"ignore-lines", OPT_IGN_LINES, "Ignore first n lines of data infile.",
|
||||
(gptr*) &opt_ignore_lines, (gptr*) &opt_ignore_lines, 0, GET_STR,
|
||||
(gptr*) &opt_ignore_lines, (gptr*) &opt_ignore_lines, 0, GET_LL,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"lines-terminated-by", OPT_LTB, "Lines in the i.file are terminated by ...",
|
||||
(gptr*) &lines_terminated, (gptr*) &lines_terminated, 0, GET_STR,
|
||||
|
@ -259,7 +258,7 @@ static int get_options(int *argc, char ***argv)
|
|||
static int write_to_table(char *filename, MYSQL *sock)
|
||||
{
|
||||
char tablename[FN_REFLEN], hard_path[FN_REFLEN],
|
||||
sql_statement[FN_REFLEN*2+256], *end;
|
||||
sql_statement[FN_REFLEN*16+256], *end;
|
||||
my_bool local_file;
|
||||
DBUG_ENTER("write_to_table");
|
||||
DBUG_PRINT("enter",("filename: %s",filename));
|
||||
|
@ -311,8 +310,9 @@ static int write_to_table(char *filename, MYSQL *sock)
|
|||
" OPTIONALLY ENCLOSED BY");
|
||||
end= add_load_option(end, escaped, " ESCAPED BY");
|
||||
end= add_load_option(end, lines_terminated, " LINES TERMINATED BY");
|
||||
if (opt_ignore_lines)
|
||||
end= strmov(strmov(strmov(end, " IGNORE "), opt_ignore_lines), " LINES");
|
||||
if (opt_ignore_lines >= 0)
|
||||
end= strmov(longlong10_to_str(opt_ignore_lines,
|
||||
strmov(end, " IGNORE "),10), " LINES");
|
||||
if (opt_columns)
|
||||
end= strmov(strmov(strmov(end, " ("), opt_columns), ")");
|
||||
*end= '\0';
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
**********************************************************************/
|
||||
|
||||
#define MTEST_VERSION "1.29"
|
||||
#define MTEST_VERSION "1.30"
|
||||
|
||||
#include <my_global.h>
|
||||
#include <mysql_embed.h>
|
||||
|
@ -204,6 +204,7 @@ Q_WAIT_FOR_SLAVE_TO_STOP,
|
|||
Q_REQUIRE_VERSION,
|
||||
Q_ENABLE_WARNINGS, Q_DISABLE_WARNINGS,
|
||||
Q_ENABLE_INFO, Q_DISABLE_INFO,
|
||||
Q_EXEC,
|
||||
Q_UNKNOWN, /* Unknown command. */
|
||||
Q_COMMENT, /* Comments, ignored. */
|
||||
Q_COMMENT_WITH_COMMAND
|
||||
|
@ -226,6 +227,13 @@ const char *command_names[]=
|
|||
"connection",
|
||||
"query",
|
||||
"connect",
|
||||
/* the difference between sleep and real_sleep is that sleep will use
|
||||
the delay from command line (--sleep) if there is one.
|
||||
real_sleep always uses delay from it's argument.
|
||||
the logic is that sometimes delays are cpu-dependent (and --sleep
|
||||
can be used to set this delay. real_sleep is used for cpu-independent
|
||||
delays
|
||||
*/
|
||||
"sleep",
|
||||
"real_sleep",
|
||||
"inc",
|
||||
|
@ -267,6 +275,7 @@ const char *command_names[]=
|
|||
"disable_warnings",
|
||||
"enable_info",
|
||||
"disable_info",
|
||||
"exec",
|
||||
0
|
||||
};
|
||||
|
||||
|
@ -501,15 +510,6 @@ void init_parser()
|
|||
memset(&var_reg,0, sizeof(var_reg));
|
||||
}
|
||||
|
||||
int hex_val(int c)
|
||||
{
|
||||
if (my_isdigit(charset_info,c))
|
||||
return c - '0';
|
||||
else if ((c = my_tolower(charset_info,c)) >= 'a' && c <= 'f')
|
||||
return c - 'a' + 10;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
int dyn_string_cmp(DYNAMIC_STRING* ds, const char* fname)
|
||||
{
|
||||
|
@ -664,7 +664,7 @@ static VAR* var_obtain(char* name, int len)
|
|||
if ((v = (VAR*)hash_search(&var_hash, name, len)))
|
||||
return v;
|
||||
v = var_init(0, name, len, "", 0);
|
||||
hash_insert(&var_hash, (byte*)v);
|
||||
my_hash_insert(&var_hash, (byte*)v);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -840,6 +840,66 @@ int do_source(struct st_query* q)
|
|||
return open_file(name);
|
||||
}
|
||||
|
||||
/*
|
||||
Execute given command.
|
||||
|
||||
SYNOPSIS
|
||||
do_exec()
|
||||
q called command
|
||||
|
||||
DESCRIPTION
|
||||
If one uses --exec command [args] command in .test file
|
||||
we will execute the command and record its output.
|
||||
|
||||
RETURN VALUES
|
||||
0 ok
|
||||
1 error
|
||||
*/
|
||||
|
||||
int do_exec(struct st_query* q)
|
||||
{
|
||||
int error= 0;
|
||||
DYNAMIC_STRING *ds;
|
||||
DYNAMIC_STRING ds_tmp;
|
||||
char buf[1024];
|
||||
FILE *res_file;
|
||||
char *cmd= q->first_argument;
|
||||
|
||||
while (*cmd && my_isspace(charset_info, *cmd))
|
||||
cmd++;
|
||||
if (!*cmd)
|
||||
die("Missing argument in exec\n");
|
||||
|
||||
if (q->record_file[0])
|
||||
{
|
||||
init_dynamic_string(&ds_tmp, "", 16384, 65536);
|
||||
ds= &ds_tmp;
|
||||
}
|
||||
else
|
||||
ds= &ds_res;
|
||||
|
||||
if (!(res_file= popen(cmd, "r")) && q->abort_on_error)
|
||||
die("popen() failed\n");
|
||||
while (fgets(buf, sizeof(buf), res_file))
|
||||
dynstr_append(ds, buf);
|
||||
pclose(res_file);
|
||||
if (record)
|
||||
{
|
||||
if (!q->record_file[0] && !result_file)
|
||||
die("At line %u: Missing result file", start_lineno);
|
||||
if (!result_file)
|
||||
str_to_file(q->record_file, ds->str, ds->length);
|
||||
}
|
||||
else if (q->record_file[0])
|
||||
{
|
||||
error= check_result(ds, q->record_file, q->require_file);
|
||||
}
|
||||
if (ds == &ds_tmp)
|
||||
dynstr_free(&ds_tmp);
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
int var_query_set(VAR* v, const char* p, const char** p_end)
|
||||
{
|
||||
char* end = (char*)((p_end && *p_end) ? *p_end : p + strlen(p));
|
||||
|
@ -862,7 +922,28 @@ int var_query_set(VAR* v, const char* p, const char** p_end)
|
|||
}
|
||||
|
||||
if ((row = mysql_fetch_row(res)) && row[0])
|
||||
eval_expr(v, row[0], 0);
|
||||
{
|
||||
/*
|
||||
Concatenate all row results with tab in between to allow us to work
|
||||
with results from many columns (for example from SHOW VARIABLES)
|
||||
*/
|
||||
DYNAMIC_STRING result;
|
||||
uint i;
|
||||
ulong *lengths;
|
||||
char *end;
|
||||
|
||||
init_dynamic_string(&result, "", 16384, 65536);
|
||||
lengths= mysql_fetch_lengths(res);
|
||||
for (i=0; i < mysql_num_fields(res); i++)
|
||||
{
|
||||
if (row[0])
|
||||
dynstr_append_mem(&result, row[i], lengths[i]);
|
||||
dynstr_append_mem(&result, "\t", 1);
|
||||
}
|
||||
end= result.str + result.length-1;
|
||||
eval_expr(v, result.str, (const char**) &end);
|
||||
dynstr_free(&result);
|
||||
}
|
||||
else
|
||||
eval_expr(v, "", 0);
|
||||
|
||||
|
@ -919,8 +1000,6 @@ int eval_expr(VAR* v, const char* p, const char** p_end)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (p_end)
|
||||
*p_end = 0;
|
||||
die("Invalid expr: %s", p);
|
||||
return 1;
|
||||
}
|
||||
|
@ -1217,7 +1296,7 @@ static char *get_string(char **to_ptr, char **from_ptr,
|
|||
VAR *var=var_get(start, &end, 0, 1);
|
||||
if (var && to == (char*) end+1)
|
||||
{
|
||||
DBUG_PRINT("info",("var: %s -> %s", start, var->str_val));
|
||||
DBUG_PRINT("info",("var: '%s' -> '%s'", start, var->str_val));
|
||||
DBUG_RETURN(var->str_val); /* return found variable value */
|
||||
}
|
||||
}
|
||||
|
@ -1547,56 +1626,6 @@ int do_while(struct st_query* q)
|
|||
}
|
||||
|
||||
|
||||
int safe_copy_unescape(char* dest, char* src, int size)
|
||||
{
|
||||
register char* p_dest = dest, *p_src = src;
|
||||
register int c, val;
|
||||
enum { ST_NORMAL, ST_ESCAPED, ST_HEX2} state = ST_NORMAL ;
|
||||
|
||||
size--; /* just to make life easier */
|
||||
|
||||
for (; p_dest - size < dest && p_src - size < src &&
|
||||
(c = *p_src) != '\n' && c; ++p_src)
|
||||
{
|
||||
switch(state) {
|
||||
case ST_NORMAL:
|
||||
if (c == '\\')
|
||||
state = ST_ESCAPED;
|
||||
else
|
||||
*p_dest++ = c;
|
||||
break;
|
||||
case ST_ESCAPED:
|
||||
if ((val = hex_val(c)) > 0)
|
||||
{
|
||||
*p_dest = val;
|
||||
state = ST_HEX2;
|
||||
}
|
||||
else
|
||||
{
|
||||
state = ST_NORMAL;
|
||||
*p_dest++ = c;
|
||||
}
|
||||
break;
|
||||
case ST_HEX2:
|
||||
if ((val = hex_val(c)) > 0)
|
||||
{
|
||||
*p_dest = (*p_dest << 4) + val;
|
||||
p_dest++;
|
||||
}
|
||||
else
|
||||
*p_dest++ = c;
|
||||
|
||||
state = ST_NORMAL;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
*p_dest = 0;
|
||||
return (p_dest - dest);
|
||||
}
|
||||
|
||||
|
||||
int read_line(char* buf, int size)
|
||||
{
|
||||
int c;
|
||||
|
@ -2149,7 +2178,7 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags)
|
|||
if (!(flags & QUERY_REAP))
|
||||
DBUG_RETURN(0);
|
||||
|
||||
if (mysql_read_query_result(mysql) ||
|
||||
if ((*mysql->methods->read_query_result)(mysql) ||
|
||||
(!(last_result = res = mysql_store_result(mysql)) &&
|
||||
mysql_field_count(mysql)))
|
||||
{
|
||||
|
@ -2371,7 +2400,7 @@ static void var_from_env(const char *name, const char *def_val)
|
|||
tmp = def_val;
|
||||
|
||||
v = var_init(0, name, 0, tmp, 0);
|
||||
hash_insert(&var_hash, (byte*)v);
|
||||
my_hash_insert(&var_hash, (byte*)v);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2387,9 +2416,9 @@ static void init_var_hash(MYSQL *mysql)
|
|||
var_from_env("MYSQL_TEST_DIR", "/tmp");
|
||||
var_from_env("BIG_TEST", opt_big_test ? "1" : "0");
|
||||
v= var_init(0,"MAX_TABLES", 0, (sizeof(ulong) == 4) ? "31" : "62",0);
|
||||
hash_insert(&var_hash, (byte*) v);
|
||||
my_hash_insert(&var_hash, (byte*) v);
|
||||
v= var_init(0,"SERVER_VERSION", 0, mysql_get_server_info(mysql), 0);
|
||||
hash_insert(&var_hash, (byte*) v);
|
||||
my_hash_insert(&var_hash, (byte*) v);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -2584,6 +2613,9 @@ int main(int argc, char **argv)
|
|||
case Q_PING:
|
||||
(void) mysql_ping(&cur_con->mysql);
|
||||
break;
|
||||
case Q_EXEC:
|
||||
(void) do_exec(q);
|
||||
break;
|
||||
default: processed = 0; break;
|
||||
}
|
||||
}
|
||||
|
|
22
configure.in
22
configure.in
|
@ -38,12 +38,12 @@ do
|
|||
case $host_os in
|
||||
netware* | modesto*)
|
||||
echo "$i/errmsg.sys: $i/errmsg.txt
|
||||
\$(top_builddir)/extra/comp_err.linux \$^ $i/errmsg.sys" \
|
||||
\$(top_builddir)/extra/comp_err.linux -C\$(srcdir)/charsets/ \$^ $i/errmsg.sys" \
|
||||
>> $AVAILABLE_LANGUAGES_ERRORS_RULES
|
||||
;;
|
||||
*)
|
||||
echo "$i/errmsg.sys: $i/errmsg.txt
|
||||
\$(top_builddir)/extra/comp_err \$^ $i/errmsg.sys" \
|
||||
\$(top_builddir)/extra/comp_err -C\$(srcdir)/charsets/ \$^ $i/errmsg.sys" \
|
||||
>> $AVAILABLE_LANGUAGES_ERRORS_RULES
|
||||
;;
|
||||
esac
|
||||
|
@ -1337,7 +1337,12 @@ then
|
|||
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
|
||||
then
|
||||
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
||||
with_named_thread="-Kthread -lsocket -lnsl"
|
||||
if expr "$CC" : ".*gcc.*"
|
||||
then
|
||||
with_named_thread="-pthread -lsocket -lnsl"
|
||||
else
|
||||
with_named_thread="-Kthread -lsocket -lnsl"
|
||||
fi
|
||||
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
|
||||
then
|
||||
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
|
||||
|
@ -1373,7 +1378,12 @@ then
|
|||
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
|
||||
then
|
||||
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
|
||||
with_named_thread="-Kthread -lsocket -lnsl"
|
||||
if expr "$CC" : ".*gcc.*"
|
||||
then
|
||||
with_named_thread="-pthread -lsocket -lnsl"
|
||||
else
|
||||
with_named_thread="-Kthread -lsocket -lnsl"
|
||||
fi
|
||||
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
|
||||
then
|
||||
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
|
||||
|
@ -1719,8 +1729,10 @@ MYSQL_CHECK_ULONG
|
|||
MYSQL_CHECK_UCHAR
|
||||
# Do the system files define uint
|
||||
MYSQL_CHECK_UINT
|
||||
#Check for fp_except in ieeefp.h
|
||||
# Check for fp_except in ieeefp.h
|
||||
MYSQL_CHECK_FP_EXCEPT
|
||||
# Check for IN_ADDR_T
|
||||
MYSQL_CHECK_IN_ADDR_T
|
||||
# Do the c++ compiler have a bool type
|
||||
MYSQL_CXX_BOOL
|
||||
# Check some common bugs with gcc 2.8.# on sparc
|
||||
|
|
|
@ -24,11 +24,13 @@
|
|||
#define MAXLENGTH 1000
|
||||
#define MAX_ROWS 1000
|
||||
#define MAX_FILES 10
|
||||
#define MAX_CHARSET_NAME 64
|
||||
|
||||
int row_count;
|
||||
uint file_pos[MAX_ROWS],file_row_pos[MAX_FILES];
|
||||
my_string saved_row[MAX_ROWS];
|
||||
uchar file_head[]= { 254,254,2,1 };
|
||||
char charset_name[MAX_CHARSET_NAME];
|
||||
|
||||
static void get_options(int *argc,char **argv[]);
|
||||
static int count_rows(FILE *from,pchar c, pchar c2);
|
||||
|
@ -40,11 +42,12 @@ static int copy_rows(FILE *to);
|
|||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
uint csnum= 0;
|
||||
int i,error,files,length;
|
||||
uchar head[32];
|
||||
FILE *from,*to;
|
||||
MY_INIT(argv[0]);
|
||||
|
||||
|
||||
get_options(&argc,&argv);
|
||||
error=1;
|
||||
row_count=files=0;
|
||||
|
@ -61,6 +64,20 @@ int main(int argc,char *argv[])
|
|||
}
|
||||
|
||||
VOID(count_rows(from,'"','}')); /* Calculate start-info */
|
||||
if (!charset_name[0])
|
||||
{
|
||||
fprintf(stderr,"Character set is not specified in '%s'\n",*argv);
|
||||
fclose(from);
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (!(csnum= get_charset_number(charset_name, MY_CS_PRIMARY)))
|
||||
{
|
||||
fprintf(stderr,"Unknown character '%s' in '%s'\n",charset_name, *argv);
|
||||
fclose(from);
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (remember_rows(from,'}') < 0) /* Remember rows */
|
||||
{
|
||||
fprintf(stderr,"Can't find textrows in '%s'\n",*argv);
|
||||
|
@ -91,7 +108,8 @@ int main(int argc,char *argv[])
|
|||
{
|
||||
int2store(head+10+i+i,file_row_pos[i]);
|
||||
}
|
||||
|
||||
head[30]= csnum;
|
||||
|
||||
fseek(to,0l,0);
|
||||
if (fwrite(head,1,32,to) != 32)
|
||||
goto end;
|
||||
|
@ -134,6 +152,10 @@ static void get_options(register int *argc,register char **argv[])
|
|||
case 'V':
|
||||
printf("%s (Compile errormessage) Ver 1.3\n",progname);
|
||||
break;
|
||||
case 'C':
|
||||
charsets_dir= pos+1;
|
||||
*(pos--)= '\0';
|
||||
break;
|
||||
case 'I':
|
||||
case '?':
|
||||
printf(" %s (Compile errormessage) Ver 1.3\n",progname);
|
||||
|
@ -168,8 +190,19 @@ static int count_rows(FILE *from, pchar c, pchar c2)
|
|||
DBUG_ENTER("count_rows");
|
||||
|
||||
pos=ftell(from); count=0;
|
||||
|
||||
charset_name[0]= '\0';
|
||||
while (fgets(rad,MAXLENGTH,from) != NULL)
|
||||
{
|
||||
if (!strncmp(rad,"character-set=",14))
|
||||
{
|
||||
char *b= rad+14, *e;
|
||||
for (e=b ; e[0] && e-b < MAX_CHARSET_NAME &&
|
||||
e[0] != ' ' && e[0] != '\r' &&
|
||||
e[0] != '\n' && e[0] != '\t' ; e++);
|
||||
e[0]= '\0';
|
||||
strcpy(charset_name, b);
|
||||
}
|
||||
if (rad[0] == c || rad[0] == c2)
|
||||
break;
|
||||
count++;
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <my_getopt.h>
|
||||
|
||||
const char *config_file="my"; /* Default config file */
|
||||
uint verbose= 0, opt_defaults_file_used= 0;
|
||||
|
||||
static struct my_option my_long_options[] =
|
||||
{
|
||||
|
@ -47,6 +48,8 @@ static struct my_option my_long_options[] =
|
|||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"help", '?', "Display this help message and exit.",
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"verbose", 'v', "Increase the output level",
|
||||
0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"version", 'V', "Output version information and exit.",
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
|
@ -54,7 +57,7 @@ static struct my_option my_long_options[] =
|
|||
|
||||
static void usage(my_bool version)
|
||||
{
|
||||
printf("%s Ver 1.5 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
printf("%s Ver 1.6 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
if (version)
|
||||
return;
|
||||
|
@ -72,12 +75,18 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
char *argument __attribute__((unused)))
|
||||
{
|
||||
switch (optid) {
|
||||
case 'c':
|
||||
opt_defaults_file_used= 1;
|
||||
break;
|
||||
case 'n':
|
||||
exit(0);
|
||||
case 'I':
|
||||
case '?':
|
||||
usage(0);
|
||||
exit(0);
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
case 'V':
|
||||
usage(1);
|
||||
exit(0);
|
||||
|
@ -103,7 +112,7 @@ static int get_options(int *argc,char ***argv)
|
|||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int count;
|
||||
int count, error;
|
||||
char **load_default_groups, *tmp_arguments[2],
|
||||
**argument, **arguments;
|
||||
MY_INIT(argv[0]);
|
||||
|
@ -125,13 +134,26 @@ int main(int argc, char **argv)
|
|||
arguments=tmp_arguments;
|
||||
arguments[0]=my_progname;
|
||||
arguments[1]=0;
|
||||
load_defaults(config_file, (const char **) load_default_groups,
|
||||
&count, &arguments);
|
||||
if ((error= load_defaults(config_file, (const char **) load_default_groups,
|
||||
&count, &arguments)))
|
||||
{
|
||||
if (verbose && opt_defaults_file_used)
|
||||
{
|
||||
if (error == 1)
|
||||
fprintf(stderr, "WARNING: Defaults file '%s' not found!\n",
|
||||
config_file);
|
||||
/* This error is not available now. For the future */
|
||||
if (error == 2)
|
||||
fprintf(stderr, "WARNING: Defaults file '%s' is not a regular file!\n",
|
||||
config_file);
|
||||
}
|
||||
error= 2;
|
||||
}
|
||||
|
||||
for (argument= arguments+1 ; *argument ; argument++)
|
||||
puts(*argument);
|
||||
my_free((char*) load_default_groups,MYF(0));
|
||||
free_defaults(arguments);
|
||||
|
||||
exit(0);
|
||||
exit(error);
|
||||
}
|
||||
|
|
|
@ -36,6 +36,10 @@
|
|||
extern int h_errno;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_IN_ADDR_T
|
||||
#define in_addr_t u_long
|
||||
#endif
|
||||
|
||||
|
||||
static my_bool silent;
|
||||
|
||||
|
@ -91,8 +95,6 @@ static int get_options(int *argc,char ***argv)
|
|||
{
|
||||
int ho_error;
|
||||
|
||||
/* load_defaults("my",load_default_groups,argc,argv); */
|
||||
|
||||
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
|
||||
exit(ho_error);
|
||||
|
||||
|
@ -109,7 +111,7 @@ static int get_options(int *argc,char ***argv)
|
|||
int main(int argc, char **argv)
|
||||
{
|
||||
struct hostent *hpaddr;
|
||||
u_long taddr;
|
||||
in_addr_t taddr;
|
||||
char *ip,**q;
|
||||
int error=0;
|
||||
|
||||
|
|
|
@ -280,9 +280,9 @@ inline double ulonglong2double(ulonglong value)
|
|||
#define HAVE_CREATESEMAPHORE
|
||||
#define HAVE_ISNAN
|
||||
#define HAVE_FINITE
|
||||
#define HAVE_ISAM /* We want to have support for ISAM in 4.0 */
|
||||
#define HAVE_QUERY_CACHE
|
||||
#define SPRINTF_RETURNS_INT
|
||||
#define HAVE_SETFILEPOINTER
|
||||
#define HAVE_VIO
|
||||
|
||||
#ifdef NOT_USED
|
||||
|
|
|
@ -86,3 +86,4 @@ extern const char *client_errors[]; /* Error messages */
|
|||
#define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2045
|
||||
#define CR_CONN_UNKNOW_PROTOCOL 2046
|
||||
#define CR_INVALID_CONN_HANDLE 2047
|
||||
#define CR_MYSQL_SERVER_INIT_MISSED 2048
|
||||
|
|
|
@ -49,7 +49,7 @@ void hash_free(HASH *tree);
|
|||
byte *hash_element(HASH *hash,uint idx);
|
||||
gptr hash_search(HASH *info,const byte *key,uint length);
|
||||
gptr hash_next(HASH *info,const byte *key,uint length);
|
||||
my_bool hash_insert(HASH *info,const byte *data);
|
||||
my_bool my_hash_insert(HASH *info,const byte *data);
|
||||
my_bool hash_delete(HASH *hash,byte *record);
|
||||
my_bool hash_update(HASH *hash,byte *record,byte *old_key,uint old_key_length);
|
||||
void hash_replace(HASH *hash, uint idx, byte *new_row);
|
||||
|
|
|
@ -63,6 +63,7 @@ typedef struct unicase_info_st
|
|||
#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
|
||||
#define MY_CS_UNICODE 128 /* is a charset is full unicode */
|
||||
#define MY_CS_NONTEXT 256 /* if a charset is not sprintf() compatible */
|
||||
#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
|
||||
|
||||
#define MY_CHARSET_UNDEFINED 0
|
||||
|
||||
|
@ -74,6 +75,12 @@ typedef struct my_uni_idx_st
|
|||
uchar *tab;
|
||||
} MY_UNI_IDX;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint beg;
|
||||
uint end;
|
||||
uint mblen;
|
||||
} my_match_t;
|
||||
|
||||
enum my_lex_states
|
||||
{
|
||||
|
@ -115,12 +122,18 @@ typedef struct my_collation_handler_st
|
|||
|
||||
int (*strcasecmp)(struct charset_info_st *, const char *, const char *);
|
||||
|
||||
uint (*instr)(struct charset_info_st *,
|
||||
const char *big, uint b_length,
|
||||
const char *small, uint s_length,
|
||||
my_match_t *match, uint nmatch);
|
||||
|
||||
/* Hash calculation */
|
||||
void (*hash_sort)(struct charset_info_st *cs, const uchar *key, uint len,
|
||||
ulong *nr1, ulong *nr2);
|
||||
} MY_COLLATION_HANDLER;
|
||||
|
||||
extern MY_COLLATION_HANDLER my_collation_bin_handler;
|
||||
extern MY_COLLATION_HANDLER my_collation_mb_bin_handler;
|
||||
extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler;
|
||||
extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler;
|
||||
|
||||
|
||||
|
@ -131,6 +144,7 @@ typedef struct my_charset_handler_st
|
|||
int (*mbcharlen)(struct charset_info_st *, uint);
|
||||
uint (*numchars)(struct charset_info_st *, const char *b, const char *e);
|
||||
uint (*charpos)(struct charset_info_st *, const char *b, const char *e, uint pos);
|
||||
uint (*lengthsp)(struct charset_info_st *, const char *ptr, uint length);
|
||||
|
||||
/* Unicode convertion */
|
||||
int (*mb_wc)(struct charset_info_st *cs,my_wc_t *wc,
|
||||
|
@ -240,6 +254,13 @@ extern void my_hash_sort_simple(CHARSET_INFO *cs,
|
|||
const uchar *key, uint len,
|
||||
ulong *nr1, ulong *nr2);
|
||||
|
||||
extern uint my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, uint length);
|
||||
|
||||
extern uint my_instr_simple(struct charset_info_st *,
|
||||
const char *big, uint b_length,
|
||||
const char *small, uint s_length,
|
||||
my_match_t *match, uint nmatch);
|
||||
|
||||
|
||||
/* Functions for 8bit */
|
||||
extern void my_caseup_str_8bit(CHARSET_INFO *, char *);
|
||||
|
@ -304,6 +325,10 @@ int my_wildcmp_mb(CHARSET_INFO *,
|
|||
int escape, int w_one, int w_many);
|
||||
uint my_numchars_mb(CHARSET_INFO *, const char *b, const char *e);
|
||||
uint my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, uint pos);
|
||||
uint my_instr_mb(struct charset_info_st *,
|
||||
const char *big, uint b_length,
|
||||
const char *small, uint s_length,
|
||||
my_match_t *match, uint nmatch);
|
||||
|
||||
|
||||
extern my_bool my_parse_charset_xml(const char *bug, uint len,
|
||||
|
|
|
@ -122,6 +122,16 @@ extern void bmove_align(gptr dst,const gptr src,uint len);
|
|||
#define bmove512(A,B,C) memcpy(A,B,C)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_purify
|
||||
#include <assert.h>
|
||||
#define memcpy_overlap(A,B,C) \
|
||||
DBUG_ASSERT((A) == (B) || ((A)+(C)) <= (B) || ((B)+(C)) <= (A)); \
|
||||
bmove((byte*) key,(byte*) from,(size_t) length);
|
||||
#else
|
||||
#define memcpy_overlap(A,B,C) memcpy((A), (B), (C))
|
||||
#endif /* HAVE_purify */
|
||||
|
||||
|
||||
/* Prototypes for string functions */
|
||||
|
||||
#if !defined(bfill) && !defined(HAVE_BFILL)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -111,7 +110,6 @@ void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/
|
|||
#endif
|
||||
#define pthread_self() win_pthread_self
|
||||
#define HAVE_LOCALTIME_R 1
|
||||
#define HAVE_GMTIME_R 1
|
||||
#define _REENTRANT 1
|
||||
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
||||
|
||||
|
|
|
@ -209,11 +209,13 @@ extern CHARSET_INFO *default_charset_info;
|
|||
extern CHARSET_INFO *all_charsets[256];
|
||||
extern CHARSET_INFO compiled_charsets[];
|
||||
|
||||
extern uint get_charset_number(const char *cs_name);
|
||||
extern uint get_charset_number(const char *cs_name, uint cs_flags);
|
||||
extern uint get_collation_number(const char *name);
|
||||
extern const char *get_charset_name(uint cs_number);
|
||||
|
||||
extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
|
||||
extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
|
||||
extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
|
||||
extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
|
||||
uint cs_flags, myf my_flags);
|
||||
extern void free_charsets(void);
|
||||
extern char *get_charsets_dir(char *buf);
|
||||
|
@ -507,6 +509,8 @@ typedef struct st_keycache
|
|||
ulonglong size;
|
||||
} KEY_CACHE;
|
||||
|
||||
typedef uint32 ha_checksum;
|
||||
|
||||
#include <my_alloc.h>
|
||||
|
||||
/* Prototypes for mysys and my_func functions */
|
||||
|
@ -681,6 +685,8 @@ extern int _my_b_get(IO_CACHE *info);
|
|||
extern int _my_b_async_read(IO_CACHE *info,byte *Buffer,uint Count);
|
||||
extern int _my_b_write(IO_CACHE *info,const byte *Buffer,uint Count);
|
||||
extern int my_b_append(IO_CACHE *info,const byte *Buffer,uint Count);
|
||||
extern int my_b_safe_write(IO_CACHE *info,const byte *Buffer,uint Count);
|
||||
|
||||
extern int my_block_write(IO_CACHE *info, const byte *Buffer,
|
||||
uint Count, my_off_t pos);
|
||||
extern int _flush_io_cache(IO_CACHE *info, int need_append_buffer_lock);
|
||||
|
@ -742,17 +748,18 @@ extern void set_prealloc_root(MEM_ROOT *root, char *ptr);
|
|||
extern char *strdup_root(MEM_ROOT *root,const char *str);
|
||||
extern char *strmake_root(MEM_ROOT *root,const char *str,uint len);
|
||||
extern char *memdup_root(MEM_ROOT *root,const char *str,uint len);
|
||||
extern void load_defaults(const char *conf_file, const char **groups,
|
||||
int *argc, char ***argv);
|
||||
extern int load_defaults(const char *conf_file, const char **groups,
|
||||
int *argc, char ***argv);
|
||||
extern void free_defaults(char **argv);
|
||||
extern void print_defaults(const char *conf_file, const char **groups);
|
||||
extern my_bool my_compress(byte *, ulong *, ulong *);
|
||||
extern my_bool my_uncompress(byte *, ulong *, ulong *);
|
||||
extern byte *my_compress_alloc(const byte *packet, ulong *len, ulong *complen);
|
||||
extern ulong checksum(const byte *mem, uint count);
|
||||
extern ha_checksum my_checksum(ha_checksum crc, const byte *mem, uint count);
|
||||
extern uint my_bit_log2(ulong value);
|
||||
uint my_count_bits(ulonglong v);
|
||||
extern uint my_count_bits(ulonglong v);
|
||||
extern void my_sleep(ulong m_seconds);
|
||||
extern ulong crc32(ulong crc, const uchar *buf, uint len);
|
||||
|
||||
#ifdef __WIN__
|
||||
extern my_bool have_tcpip; /* Is set if tcpip is used */
|
||||
|
|
|
@ -53,8 +53,6 @@ extern "C" {
|
|||
|
||||
#define mi_portable_sizeof_char_ptr 8
|
||||
|
||||
typedef uint32 ha_checksum;
|
||||
|
||||
/* Param to/from mi_info */
|
||||
|
||||
typedef struct st_mi_isaminfo /* Struct from h_info */
|
||||
|
|
|
@ -142,7 +142,7 @@ enum mysql_option
|
|||
MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT,
|
||||
MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT,
|
||||
MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION,
|
||||
MYSQL_OPT_GUESS_CONNECTION
|
||||
MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP
|
||||
};
|
||||
|
||||
struct st_mysql_options {
|
||||
|
@ -180,6 +180,7 @@ struct st_mysql_options {
|
|||
my_bool separate_thread;
|
||||
#endif
|
||||
enum mysql_option methods_to_use;
|
||||
char *client_ip;
|
||||
};
|
||||
|
||||
enum mysql_status
|
||||
|
@ -229,7 +230,9 @@ typedef struct st_mysql
|
|||
enum mysql_status status;
|
||||
my_bool free_me; /* If free in mysql_close */
|
||||
my_bool reconnect; /* set to 1 if automatic reconnect */
|
||||
char scramble_buff[21]; /* New protocol requires longer scramble*/
|
||||
|
||||
/* session-wide random string */
|
||||
char scramble[SCRAMBLE_LENGTH+1];
|
||||
|
||||
/*
|
||||
Set if this is the original connection, not a master or a slave we have
|
||||
|
@ -248,7 +251,6 @@ typedef struct st_mysql
|
|||
|
||||
LIST *stmts; /* list of all statements */
|
||||
const struct st_mysql_methods *methods;
|
||||
struct st_mysql_res *result;
|
||||
void *thd;
|
||||
} MYSQL;
|
||||
|
||||
|
@ -357,6 +359,9 @@ int STDCALL mysql_send_query(MYSQL *mysql, const char *q,
|
|||
unsigned long length);
|
||||
int STDCALL mysql_real_query(MYSQL *mysql, const char *q,
|
||||
unsigned long length);
|
||||
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
|
||||
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
|
||||
|
||||
/* perform query on master */
|
||||
my_bool STDCALL mysql_master_query(MYSQL *mysql, const char *q,
|
||||
unsigned long length);
|
||||
|
@ -412,8 +417,6 @@ const char * STDCALL mysql_get_host_info(MYSQL *mysql);
|
|||
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
|
||||
MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild);
|
||||
MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);
|
||||
MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
|
||||
const char *wild);
|
||||
MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql);
|
||||
int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option,
|
||||
const char *arg);
|
||||
|
@ -427,6 +430,8 @@ MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result,
|
|||
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
|
||||
unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result);
|
||||
MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result);
|
||||
MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
|
||||
const char *wild);
|
||||
unsigned long STDCALL mysql_escape_string(char *to,const char *from,
|
||||
unsigned long from_length);
|
||||
unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql,
|
||||
|
@ -457,6 +462,7 @@ int STDCALL mysql_manager_command(MYSQL_MANAGER* con,
|
|||
int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con,
|
||||
char* res_buf,
|
||||
int res_buf_size);
|
||||
my_bool STDCALL mysql_read_query_result(MYSQL *mysql);
|
||||
|
||||
|
||||
/*
|
||||
|
@ -497,10 +503,12 @@ typedef struct st_mysql_bind
|
|||
/* Following are for internal use. Set by mysql_bind_param */
|
||||
unsigned char *inter_buffer; /* for the current data position */
|
||||
unsigned long offset; /* offset position for char/binary fetch */
|
||||
unsigned long internal_length; /* Used if length is 0 */
|
||||
unsigned int param_number; /* For null count and error messages */
|
||||
my_bool long_data_used; /* If used with mysql_send_long_data */
|
||||
my_bool binary_data; /* data buffer is binary */
|
||||
my_bool null_field; /* NULL data cache flag */
|
||||
my_bool internal_is_null; /* Used if is_null is 0 */
|
||||
void (*store_param_func)(NET *net, struct st_mysql_bind *param);
|
||||
void (*fetch_result)(struct st_mysql_bind *, unsigned char **row);
|
||||
} MYSQL_BIND;
|
||||
|
@ -535,22 +543,30 @@ typedef struct st_mysql_stmt
|
|||
} MYSQL_STMT;
|
||||
|
||||
|
||||
#define mysql_read_query_result(mysql) (*(mysql)->methods->read_query_result)(mysql)
|
||||
#define mysql_store_result(mysql) (*(mysql)->methods->store_result)(mysql)
|
||||
#define mysql_use_result(mysql) (*(mysql)->methods->use_result)(mysql)
|
||||
|
||||
typedef struct st_mysql_methods
|
||||
{
|
||||
my_bool STDCALL (*read_query_result)(MYSQL *mysql);
|
||||
my_bool STDCALL (*advanced_command)(MYSQL *mysql,
|
||||
my_bool (STDCALL *read_query_result)(MYSQL *mysql);
|
||||
my_bool (STDCALL *advanced_command)(MYSQL *mysql,
|
||||
enum enum_server_command command,
|
||||
const char *header,
|
||||
unsigned long header_length,
|
||||
const char *arg,
|
||||
unsigned long arg_length, my_bool skip_check);
|
||||
MYSQL_RES * STDCALL (*store_result)(MYSQL *mysql);
|
||||
MYSQL_RES * STDCALL (*use_result)(MYSQL *mysql);
|
||||
void STDCALL (*fetch_lengths)(unsigned long *to, MYSQL_ROW column, uint field_count);
|
||||
unsigned long arg_length,
|
||||
my_bool skip_check);
|
||||
MYSQL_DATA *(STDCALL *read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields,
|
||||
unsigned int fields);
|
||||
MYSQL_RES * (STDCALL *use_result)(MYSQL *mysql);
|
||||
void (STDCALL *fetch_lengths)(unsigned long *to,
|
||||
MYSQL_ROW column, unsigned int field_count);
|
||||
#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY)
|
||||
MYSQL_FIELD * (STDCALL *list_fields)(MYSQL *mysql);
|
||||
my_bool (STDCALL *read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt);
|
||||
int (STDCALL *stmt_execute)(MYSQL_STMT *stmt);
|
||||
MYSQL_DATA *(STDCALL *read_binary_rows)(MYSQL_STMT *stmt);
|
||||
int (STDCALL *unbuffered_fetch)(MYSQL *mysql, char **row);
|
||||
void (STDCALL *free_embedded_thd)(MYSQL *mysql);
|
||||
const char *(STDCALL *read_statistic)(MYSQL *mysql);
|
||||
#endif
|
||||
} MYSQL_METHODS;
|
||||
|
||||
MYSQL_STMT * STDCALL mysql_prepare(MYSQL * mysql, const char *query,
|
||||
|
@ -570,13 +586,13 @@ my_bool STDCALL mysql_rollback(MYSQL * mysql);
|
|||
my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode);
|
||||
int STDCALL mysql_fetch(MYSQL_STMT *stmt);
|
||||
int STDCALL mysql_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind,
|
||||
my_ulonglong column,
|
||||
unsigned int column,
|
||||
unsigned long offset);
|
||||
my_bool STDCALL mysql_send_long_data(MYSQL_STMT *stmt,
|
||||
unsigned int param_number,
|
||||
const char *data,
|
||||
unsigned long length);
|
||||
MYSQL_RES *STDCALL mysql_prepare_result(MYSQL_STMT *stmt);
|
||||
MYSQL_RES *STDCALL mysql_get_metadata(MYSQL_STMT *stmt);
|
||||
MYSQL_RES *STDCALL mysql_param_result(MYSQL_STMT *stmt);
|
||||
my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt);
|
||||
int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt);
|
||||
|
@ -615,6 +631,8 @@ int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
|
|||
unsigned long net_safe_read(MYSQL* mysql);
|
||||
void mysql_once_init(void);
|
||||
|
||||
extern my_bool server_inited;
|
||||
|
||||
#ifdef __NETWARE__
|
||||
#pragma pack(pop) /* restore alignment */
|
||||
#endif
|
||||
|
|
|
@ -49,8 +49,15 @@ enum enum_server_command
|
|||
};
|
||||
|
||||
|
||||
#define SCRAMBLE_LENGTH 8
|
||||
#define SCRAMBLE41_LENGTH 20
|
||||
/*
|
||||
Length of random string sent by server on handshake; this is also length of
|
||||
obfuscated password, recieved from client
|
||||
*/
|
||||
#define SCRAMBLE_LENGTH 20
|
||||
#define SCRAMBLE_LENGTH_323 8
|
||||
/* length of password stored in the db: new passwords are preceeded with '*' */
|
||||
#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1)
|
||||
#define SCRAMBLED_PASSWORD_CHAR_LENGTH_323 (SCRAMBLE_LENGTH_323*2)
|
||||
|
||||
|
||||
#define NOT_NULL_FLAG 1 /* Field can't be NULL */
|
||||
|
@ -302,38 +309,41 @@ extern "C" {
|
|||
extern unsigned long max_allowed_packet;
|
||||
extern unsigned long net_buffer_length;
|
||||
|
||||
void randominit(struct rand_struct *,unsigned long seed1,
|
||||
unsigned long seed2);
|
||||
/*
|
||||
These functions are used for authentication by client and server and
|
||||
implemented in sql/password.c
|
||||
*/
|
||||
|
||||
void randominit(struct rand_struct *, unsigned long seed1,
|
||||
unsigned long seed2);
|
||||
double my_rnd(struct rand_struct *);
|
||||
void make_scrambled_password(char *to,const char *password,
|
||||
my_bool force_old_scramble,struct rand_struct *rand_st);
|
||||
int get_password_length(my_bool force_old_scramble);
|
||||
char get_password_version(const char* password);
|
||||
void create_random_string(int length,struct rand_struct *rand_st,char* target);
|
||||
my_bool validate_password(const char* password, const char* message,
|
||||
unsigned long* salt);
|
||||
void password_hash_stage1(char *to, const char *password);
|
||||
void password_hash_stage2(char *to,const char *salt);
|
||||
void password_crypt(const char* from,char* to, const char* password,int length);
|
||||
void get_hash_and_password(unsigned long* salt, unsigned char pversion,char* hash,
|
||||
unsigned char* bin_password);
|
||||
void get_salt_from_password(unsigned long *res,const char *password);
|
||||
void create_key_from_old_password(const char* password,char* key);
|
||||
void make_password_from_salt(char *to, unsigned long *hash_res,
|
||||
unsigned char password_version);
|
||||
char *scramble(char *to,const char *message,const char *password,
|
||||
my_bool old_ver);
|
||||
my_bool check_scramble(const char *, const char *message,
|
||||
unsigned long *salt,my_bool old_ver);
|
||||
void create_random_string(char *to, uint length, struct rand_struct *rand_st);
|
||||
|
||||
void hash_password(unsigned long *to, const char *password, uint password_len);
|
||||
void make_scrambled_password_323(char *to, const char *password);
|
||||
void scramble_323(char *to, const char *message, const char *password);
|
||||
my_bool check_scramble_323(const char *, const char *message,
|
||||
unsigned long *salt);
|
||||
void get_salt_from_password_323(unsigned long *res, const char *password);
|
||||
void make_password_from_salt_323(char *to, const unsigned long *salt);
|
||||
|
||||
void make_scrambled_password(char *to, const char *password);
|
||||
void scramble(char *to, const char *message, const char *password);
|
||||
my_bool check_scramble(const char *reply, const char *message,
|
||||
const unsigned char *hash_stage2);
|
||||
void get_salt_from_password(unsigned char *res, const char *password);
|
||||
void make_password_from_salt(char *to, const unsigned char *hash_stage2);
|
||||
|
||||
/* end of password.c */
|
||||
|
||||
char *get_tty_password(char *opt_message);
|
||||
void hash_password(unsigned long *result, const char *password);
|
||||
const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
|
||||
|
||||
/* Some other useful functions */
|
||||
|
||||
void my_init(void);
|
||||
void load_defaults(const char *conf_file, const char **groups,
|
||||
int *argc, char ***argv);
|
||||
int load_defaults(const char *conf_file, const char **groups,
|
||||
int *argc, char ***argv);
|
||||
my_bool my_thread_init(void);
|
||||
void my_thread_end(void);
|
||||
|
||||
|
|
|
@ -289,4 +289,10 @@
|
|||
#define ER_CANT_AGGREGATE_NCOLLATIONS 1270
|
||||
#define ER_VARIABLE_IS_NOT_STRUCT 1271
|
||||
#define ER_UNKNOWN_COLLATION 1272
|
||||
#define ER_ERROR_MESSAGES 273
|
||||
#define ER_SLAVE_IGNORED_SSL_PARAMS 1273
|
||||
#define ER_SERVER_IS_IN_SECURE_AUTH_MODE 1274
|
||||
#define ER_WARN_FIELD_RESOLVED 1275
|
||||
#define ER_BAD_SLAVE_UNTIL_COND 1276
|
||||
#define ER_MISSING_SKIP_SLAVE 1277
|
||||
#define ER_UNTIL_COND_IGNORED 1278
|
||||
#define ER_ERROR_MESSAGES 279
|
||||
|
|
|
@ -28,14 +28,19 @@ my_ulonglong net_field_length_ll(uchar **packet);
|
|||
MYSQL_FIELD *unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields,
|
||||
my_bool default_value, uint server_capabilities);
|
||||
void free_rows(MYSQL_DATA *cur);
|
||||
MYSQL_DATA *read_rows (MYSQL *mysql,MYSQL_FIELD *fields,
|
||||
uint field_count);
|
||||
my_bool mysql_autenticate(MYSQL *mysql, const char *passwd);
|
||||
void free_old_query(MYSQL *mysql);
|
||||
void end_server(MYSQL *mysql);
|
||||
my_bool mysql_reconnect(MYSQL *mysql);
|
||||
void mysql_read_default_options(struct st_mysql_options *options,
|
||||
const char *filename,const char *group);
|
||||
my_bool STDCALL
|
||||
cli_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||
const char *header, ulong header_length,
|
||||
const char *arg, ulong arg_length, my_bool skip_check);
|
||||
|
||||
void set_stmt_errmsg(MYSQL_STMT * stmt, const char *err, int errcode,
|
||||
const char *sqlstate);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -100,7 +100,7 @@ typedef struct st_alarm {
|
|||
#define thr_alarm_init(A) (*(A))=0
|
||||
#define thr_alarm_in_use(A) (*(A)!= 0)
|
||||
void init_thr_alarm(uint max_alarm);
|
||||
bool thr_alarm(thr_alarm_t *alarmed, uint sec, ALARM *buff);
|
||||
my_bool thr_alarm(thr_alarm_t *alarmed, uint sec, ALARM *buff);
|
||||
void thr_alarm_kill(pthread_t thread_id);
|
||||
void thr_end_alarm(thr_alarm_t *alarmed);
|
||||
void end_thr_alarm(my_bool free_structures);
|
||||
|
|
|
@ -37,18 +37,24 @@ enum enum_vio_type
|
|||
VIO_TYPE_SSL, VIO_TYPE_SHARED_MEMORY
|
||||
};
|
||||
|
||||
#ifndef __WIN__
|
||||
#define HANDLE void *
|
||||
#endif
|
||||
|
||||
Vio* vio_new(my_socket sd, enum enum_vio_type type, my_bool localhost);
|
||||
#ifdef __WIN__
|
||||
Vio* vio_new_win32pipe(HANDLE hPipe);
|
||||
Vio* vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, HANDLE handle_map,
|
||||
HANDLE event_server_wrote, HANDLE event_server_read,
|
||||
HANDLE event_client_wrote, HANDLE event_client_read);
|
||||
#endif
|
||||
Vio* vio_new_win32shared_memory(NET *net,HANDLE handle_file_map,
|
||||
HANDLE handle_map,
|
||||
HANDLE event_server_wrote,
|
||||
HANDLE event_server_read,
|
||||
HANDLE event_client_wrote,
|
||||
HANDLE event_client_read);
|
||||
int vio_read_pipe(Vio *vio, gptr buf, int size);
|
||||
int vio_write_pipe(Vio *vio, const gptr buf, int size);
|
||||
int vio_close_pipe(Vio * vio);
|
||||
#else
|
||||
#define HANDLE void *
|
||||
#endif /* __WIN__ */
|
||||
|
||||
void vio_delete(Vio* vio);
|
||||
int vio_close(Vio* vio);
|
||||
|
||||
#ifdef EMBEDDED_LIBRARY
|
||||
void vio_reset(Vio *vio);
|
||||
|
@ -57,71 +63,73 @@ void vio_reset(Vio* vio, enum enum_vio_type type,
|
|||
my_socket sd, HANDLE hPipe, my_bool localhost);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* vio_read and vio_write should have the same semantics
|
||||
* as read(2) and write(2).
|
||||
*/
|
||||
int vio_read(Vio *vio, gptr buf, int size);
|
||||
int vio_write(Vio *vio, const gptr buf, int size);
|
||||
/*
|
||||
* Whenever the socket is set to blocking mode or not.
|
||||
*/
|
||||
int vio_blocking(Vio *vio, my_bool onoff, my_bool *old_mode);
|
||||
my_bool vio_is_blocking(Vio *vio);
|
||||
/*
|
||||
* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible.
|
||||
*/
|
||||
/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible */
|
||||
int vio_fastsend(Vio *vio);
|
||||
/*
|
||||
* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible.
|
||||
*/
|
||||
/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible */
|
||||
int vio_keepalive(Vio *vio, my_bool onoff);
|
||||
/*
|
||||
* Whenever we should retry the last read/write operation.
|
||||
*/
|
||||
/* Whenever we should retry the last read/write operation. */
|
||||
my_bool vio_should_retry(Vio *vio);
|
||||
/*
|
||||
* When the workday is over...
|
||||
*/
|
||||
int vio_close(Vio* vio);
|
||||
/*
|
||||
* Short text description of the socket for those, who are curious..
|
||||
*/
|
||||
/* Short text description of the socket for those, who are curious.. */
|
||||
const char* vio_description(Vio *vio);
|
||||
|
||||
/* Return the type of the connection */
|
||||
enum enum_vio_type vio_type(Vio* vio);
|
||||
|
||||
/* Return last error number */
|
||||
int vio_errno(Vio*vio);
|
||||
|
||||
int vio_errno(Vio*vio);
|
||||
/* Get socket number */
|
||||
my_socket vio_fd(Vio*vio);
|
||||
|
||||
/*
|
||||
* Remote peer's address and name in text form.
|
||||
*/
|
||||
my_bool vio_peer_addr(Vio* vio, char *buf, uint16 *port);
|
||||
|
||||
/* Remote peer's address and name in text form */
|
||||
my_bool vio_peer_addr(Vio* vio, char *buf, uint16 *port);
|
||||
/* Remotes in_addr */
|
||||
void vio_in_addr(Vio *vio, struct in_addr *in);
|
||||
my_bool vio_poll_read(Vio *vio,uint timeout);
|
||||
void vio_timeout(Vio *vio,uint timeout);
|
||||
|
||||
void vio_in_addr(Vio *vio, struct in_addr *in);
|
||||
#ifdef HAVE_OPENSSL
|
||||
#define HEADER_DES_LOCL_H dummy_something
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
my_bool vio_poll_read(Vio *vio,uint timeout);
|
||||
struct st_VioSSLAcceptorFd
|
||||
{
|
||||
SSL_CTX *ssl_context;
|
||||
SSL_METHOD *ssl_method;
|
||||
struct st_VioSSLAcceptorFd *session_id_context;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
/* One copy for client */
|
||||
struct st_VioSSLConnectorFd
|
||||
{
|
||||
SSL_CTX *ssl_context;
|
||||
/* function pointers which are only once for SSL client */
|
||||
SSL_METHOD *ssl_method;
|
||||
};
|
||||
|
||||
int sslaccept(struct st_VioSSLAcceptorFd*, Vio *, long timeout);
|
||||
int sslconnect(struct st_VioSSLConnectorFd*, Vio *, long timeout);
|
||||
|
||||
struct st_VioSSLConnectorFd
|
||||
*new_VioSSLConnectorFd(const char *key_file, const char *cert_file,
|
||||
const char *ca_file, const char *ca_path,
|
||||
const char *cipher);
|
||||
struct st_VioSSLAcceptorFd
|
||||
*new_VioSSLAcceptorFd(const char *key_file, const char *cert_file,
|
||||
const char *ca_file,const char *ca_path,
|
||||
const char *cipher);
|
||||
Vio *new_VioSSL(struct st_VioSSLAcceptorFd *fd, Vio *sd, int state);
|
||||
#endif /* HAVE_OPENSSL */
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
int vio_read_shared_memory(Vio *vio, gptr buf, int size);
|
||||
int vio_write_shared_memory(Vio *vio, const gptr buf, int size);
|
||||
int vio_close_shared_memory(Vio * vio);
|
||||
#endif
|
||||
#ifdef __WIN__
|
||||
int vio_read_pipe(Vio *vio, gptr buf, int size);
|
||||
int vio_write_pipe(Vio *vio, const gptr buf, int size);
|
||||
int vio_close_pipe(Vio * vio);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_VIO) && !defined(DONT_MAP_VIO)
|
||||
|
@ -138,77 +146,9 @@ int vio_close_pipe(Vio * vio);
|
|||
#define vio_close(vio) ((vio)->vioclose)(vio)
|
||||
#define vio_peer_addr(vio, buf, prt) (vio)->peer_addr(vio, buf, prt)
|
||||
#define vio_in_addr(vio, in) (vio)->in_addr(vio, in)
|
||||
#define vio_timeout(vio, seconds) (vio)->timeout(vio, seconds)
|
||||
#endif /* defined(HAVE_VIO) && !defined(DONT_MAP_VIO) */
|
||||
|
||||
#ifdef HAVE_OPENSSL
|
||||
#define HEADER_DES_LOCL_H dummy_something
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/err.h>
|
||||
#include "my_net.h" /* needed because of struct in_addr */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
void vio_ssl_delete(Vio* vio);
|
||||
|
||||
int vio_ssl_read(Vio* vio,gptr buf, int size);
|
||||
int vio_ssl_write(Vio* vio,const gptr buf,int size);
|
||||
|
||||
/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible. */
|
||||
int vio_ssl_fastsend(Vio* vio);
|
||||
/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible. */
|
||||
int vio_ssl_keepalive(Vio* vio, my_bool onoff);
|
||||
/* Whenever we should retry the last read/write operation. */
|
||||
my_bool vio_ssl_should_retry(Vio* vio);
|
||||
/* When the workday is over... */
|
||||
int vio_ssl_close(Vio* vio);
|
||||
/* Return last error number */
|
||||
int vio_ssl_errno(Vio *vio);
|
||||
my_bool vio_ssl_peer_addr(Vio* vio, char *buf, uint16 *port);
|
||||
void vio_ssl_in_addr(Vio *vio, struct in_addr *in);
|
||||
int vio_ssl_blocking(Vio * vio, my_bool set_blocking_mode, my_bool *old_mode);
|
||||
|
||||
/* Single copy for server */
|
||||
enum vio_ssl_acceptorfd_state
|
||||
{
|
||||
state_connect = 1,
|
||||
state_accept = 2
|
||||
};
|
||||
|
||||
struct st_VioSSLAcceptorFd
|
||||
{
|
||||
SSL_CTX* ssl_context_;
|
||||
SSL_METHOD* ssl_method_;
|
||||
struct st_VioSSLAcceptorFd* session_id_context_;
|
||||
};
|
||||
|
||||
/* One copy for client */
|
||||
struct st_VioSSLConnectorFd
|
||||
{
|
||||
SSL_CTX* ssl_context_;
|
||||
/* function pointers which are only once for SSL client */
|
||||
SSL_METHOD* ssl_method_;
|
||||
};
|
||||
|
||||
int sslaccept(struct st_VioSSLAcceptorFd*, Vio*, long timeout);
|
||||
int sslconnect(struct st_VioSSLConnectorFd*, Vio*, long timeout);
|
||||
|
||||
struct st_VioSSLConnectorFd
|
||||
*new_VioSSLConnectorFd(const char* key_file, const char* cert_file,
|
||||
const char* ca_file, const char* ca_path,
|
||||
const char* cipher);
|
||||
struct st_VioSSLAcceptorFd
|
||||
*new_VioSSLAcceptorFd(const char* key_file, const char* cert_file,
|
||||
const char* ca_file,const char* ca_path,
|
||||
const char* cipher);
|
||||
Vio* new_VioSSL(struct st_VioSSLAcceptorFd* fd, Vio* sd,int state);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_OPENSSL */
|
||||
|
||||
/* This enumerator is used in parser - should be always visible */
|
||||
enum SSL_type
|
||||
{
|
||||
|
@ -237,7 +177,7 @@ struct st_vio
|
|||
void (*viodelete)(Vio*);
|
||||
int (*vioerrno)(Vio*);
|
||||
int (*read)(Vio*, gptr, int);
|
||||
int (*write)(Vio*, const gptr, int);
|
||||
int (*write)(Vio*, gptr, int);
|
||||
int (*vioblocking)(Vio*, my_bool, my_bool *);
|
||||
my_bool (*is_blocking)(Vio*);
|
||||
int (*viokeepalive)(Vio*, my_bool);
|
||||
|
@ -246,20 +186,18 @@ struct st_vio
|
|||
void (*in_addr)(Vio*, struct in_addr*);
|
||||
my_bool (*should_retry)(Vio*);
|
||||
int (*vioclose)(Vio*);
|
||||
|
||||
#ifdef HAVE_OPENSSL
|
||||
SSL* ssl_;
|
||||
#endif /* HAVE_OPENSSL */
|
||||
void (*timeout)(Vio*, unsigned int timeout);
|
||||
void *ssl_arg;
|
||||
#ifdef HAVE_SMEM
|
||||
HANDLE handle_file_map;
|
||||
char *handle_map;
|
||||
HANDLE event_server_wrote;
|
||||
HANDLE event_server_read;
|
||||
HANDLE event_client_wrote;
|
||||
HANDLE event_client_read;
|
||||
long shared_memory_remain;
|
||||
char *shared_memory_pos;
|
||||
NET *net;
|
||||
HANDLE handle_file_map;
|
||||
char *handle_map;
|
||||
HANDLE event_server_wrote;
|
||||
HANDLE event_server_read;
|
||||
HANDLE event_client_wrote;
|
||||
HANDLE event_client_read;
|
||||
long shared_memory_remain;
|
||||
char *shared_memory_pos;
|
||||
NET *net;
|
||||
#endif /* HAVE_SMEM */
|
||||
#endif /* HAVE_VIO */
|
||||
};
|
||||
|
|
|
@ -2376,8 +2376,15 @@ btr_index_rec_validate(
|
|||
|
||||
type = dict_index_get_nth_type(index, i);
|
||||
|
||||
if (len != UNIV_SQL_NULL && dtype_is_fixed_size(type)
|
||||
&& len != dtype_get_fixed_size(type)) {
|
||||
if ((dict_index_get_nth_field(index, i)->prefix_len == 0
|
||||
&& len != UNIV_SQL_NULL && dtype_is_fixed_size(type)
|
||||
&& len != dtype_get_fixed_size(type))
|
||||
||
|
||||
(dict_index_get_nth_field(index, i)->prefix_len > 0
|
||||
&& len != UNIV_SQL_NULL && dtype_is_fixed_size(type)
|
||||
&& len !=
|
||||
dict_index_get_nth_field(index, i)->prefix_len)) {
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: Record in index %s in table %s, page %lu, at offset %lu\n"
|
||||
"InnoDB: field %lu len is %lu, should be %lu\n",
|
||||
|
|
|
@ -1596,6 +1596,13 @@ dict_index_build_internal_clust(
|
|||
break;
|
||||
}
|
||||
|
||||
if (dict_index_get_nth_field(new_index, i)->prefix_len
|
||||
> 0) {
|
||||
new_index->trx_id_offset = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
new_index->trx_id_offset += fixed_size;
|
||||
}
|
||||
|
||||
|
|
|
@ -2656,7 +2656,13 @@ fseg_free_page_low(
|
|||
ulint not_full_n_used;
|
||||
ulint state;
|
||||
ulint i;
|
||||
char errbuf[200];
|
||||
char errbuf[200];
|
||||
|
||||
#ifdef __WIN__
|
||||
dulint desm;
|
||||
dulint segm;
|
||||
#endif
|
||||
|
||||
|
||||
ut_ad(seg_inode && mtr);
|
||||
ut_ad(mach_read_from_4(seg_inode + FSEG_MAGIC_N) ==
|
||||
|
@ -2736,7 +2742,10 @@ fseg_free_page_low(
|
|||
fprintf(stderr,
|
||||
"InnoDB: Dump of the segment inode: %s\n", errbuf);
|
||||
|
||||
fprintf(stderr,
|
||||
|
||||
#ifndef __WIN__
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
|
||||
"InnoDB: which does not belong to segment %lu %lu but belongs\n"
|
||||
"InnoDB: to segment %lu %lu.\n",
|
||||
|
@ -2750,6 +2759,26 @@ fseg_free_page_low(
|
|||
ut_dulint_get_low(
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)));
|
||||
|
||||
#else
|
||||
|
||||
/* More pedantic usage to avoid VC++ 6.0 compiler errors due to inline
|
||||
function expansion issues */
|
||||
|
||||
desm = mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr);
|
||||
segm = mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr);
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
|
||||
"InnoDB: which does not belong to segment %lu %lu but belongs\n"
|
||||
"InnoDB: to segment %lu %lu.\n",
|
||||
space, page,
|
||||
ut_dulint_get_high(desm),
|
||||
ut_dulint_get_low(desm),
|
||||
ut_dulint_get_high(segm),
|
||||
ut_dulint_get_low(segm));
|
||||
|
||||
#endif
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: If the InnoDB recovery crashes here, see section 6.1\n"
|
||||
"InnoDB: of http://www.innodb.com/ibman.html about forcing recovery.\n");
|
||||
|
|
|
@ -226,13 +226,8 @@ os_file_get_last_error(void)
|
|||
"InnoDB: the directory. It may also be you have created a subdirectory\n"
|
||||
"InnoDB: of the same name as a data file.\n");
|
||||
} else {
|
||||
if (strerror((int)err) != NULL) {
|
||||
fprintf(stderr,
|
||||
"InnoDB: Error number %lu means '%s'.\n", err, strerror((int)err));
|
||||
}
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: See also section 13.2 at http://www.innodb.com/ibman.html\n"
|
||||
"InnoDB: See section 13.2 at http://www.innodb.com/ibman.html\n"
|
||||
"InnoDB: about operating system error numbers.\n");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2170,7 +2170,7 @@ row_sel_store_mysql_rec(
|
|||
ulint len;
|
||||
byte* blob_buf;
|
||||
ulint i;
|
||||
|
||||
|
||||
ut_ad(prebuilt->mysql_template);
|
||||
|
||||
if (prebuilt->blob_heap != NULL) {
|
||||
|
@ -2178,9 +2178,9 @@ row_sel_store_mysql_rec(
|
|||
prebuilt->blob_heap = NULL;
|
||||
}
|
||||
|
||||
/* Mark all columns as not SQL NULL */
|
||||
/* Mark all columns as SQL NULL */
|
||||
|
||||
memset(mysql_rec, '\0', prebuilt->null_bitmap_len);
|
||||
memset(mysql_rec, 255, prebuilt->null_bitmap_len);
|
||||
|
||||
for (i = 0; i < prebuilt->n_template; i++) {
|
||||
|
||||
|
@ -2235,16 +2235,21 @@ row_sel_store_mysql_rec(
|
|||
|
||||
data = blob_buf;
|
||||
}
|
||||
|
||||
|
||||
row_sel_field_store_in_mysql_format(
|
||||
mysql_rec + templ->mysql_col_offset,
|
||||
templ->mysql_col_len, data, len,
|
||||
templ->type, templ->is_unsigned);
|
||||
|
||||
if (extern_field_heap) {
|
||||
mem_heap_free(extern_field_heap);
|
||||
mem_heap_free(extern_field_heap);
|
||||
extern_field_heap = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (templ->mysql_null_bit_mask) {
|
||||
mysql_rec[templ->mysql_null_byte_offset] &=
|
||||
~(byte) (templ->mysql_null_bit_mask);
|
||||
}
|
||||
} else {
|
||||
/* MySQL seems to assume the field for an SQL NULL
|
||||
value is set to zero. Not taking this into account
|
||||
|
@ -2252,19 +2257,13 @@ row_sel_store_mysql_rec(
|
|||
bug number 154 in the MySQL bug database: GROUP BY
|
||||
and DISTINCT could treat NULL values inequal. */
|
||||
|
||||
memset(mysql_rec + templ->mysql_col_offset, '\0',
|
||||
memset(mysql_rec + templ->mysql_col_offset,
|
||||
((templ->type == DATA_VARCHAR ||
|
||||
templ->type == DATA_VARMYSQL ||
|
||||
templ->type == DATA_BINARY) ? ' ' : '\0'),
|
||||
templ->mysql_col_len);
|
||||
|
||||
if (!templ->mysql_null_bit_mask) {
|
||||
fprintf(stderr,
|
||||
"InnoDB: Error: trying to return an SQL NULL field in a non-null\n"
|
||||
"innoDB: column! Table name %s\n", prebuilt->table->name);
|
||||
} else {
|
||||
mysql_rec[templ->mysql_null_byte_offset] |=
|
||||
(byte) (templ->mysql_null_bit_mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
|
|
@ -119,7 +119,7 @@ int _nisam_search(register N_INFO *info, register N_KEYDEF *keyinfo, uchar *key,
|
|||
{
|
||||
keypos=_nisam_get_last_key(info,keyinfo,buff,lastkey,keypos);
|
||||
if (!(nextflag & SEARCH_SMALLER) &&
|
||||
_nisam_key_cmp(keyinfo->seg, info->lastkey, key, key_len, SEARCH_FIND))
|
||||
_nisam_key_cmp(keyinfo->seg, lastkey, key, key_len, SEARCH_FIND))
|
||||
{
|
||||
my_errno=HA_ERR_KEY_NOT_FOUND; /* Didn't find key */
|
||||
goto err;
|
||||
|
|
|
@ -1328,7 +1328,7 @@ int extend;
|
|||
print_error("Found wrong record at %lu",(ulong) start_recpos);
|
||||
got_error=1;
|
||||
}
|
||||
crc^=checksum(record,info->s->base.reclength);
|
||||
crc^=_nisam_checksum(record,info->s->base.reclength);
|
||||
link_used+=info->s->pack.ref_length;
|
||||
used+=block_info.rec_len+info->s->pack.ref_length;
|
||||
}
|
||||
|
|
|
@ -358,6 +358,7 @@ extern int _nisam_read_pack_record(N_INFO *info,ulong filepos,byte *buf);
|
|||
extern int _nisam_read_rnd_pack_record(N_INFO*, byte *,ulong, int);
|
||||
extern int _nisam_pack_rec_unpack(N_INFO *info,byte *to,byte *from,
|
||||
uint reclength);
|
||||
extern ulong _nisam_checksum(const byte *mem, uint count);
|
||||
|
||||
typedef struct st_sortinfo {
|
||||
uint key_length;
|
||||
|
|
22
isam/open.c
22
isam/open.c
|
@ -415,6 +415,9 @@ static void setup_functions(register ISAM_SHARE *share)
|
|||
share->read_rnd=_nisam_read_rnd_dynamic_record;
|
||||
share->delete_record=_nisam_delete_dynamic_record;
|
||||
share->compare_record=_nisam_cmp_dynamic_record;
|
||||
|
||||
/* add bits used to pack data to pack_reclength for faster allocation */
|
||||
share->base.pack_reclength+= share->base.pack_bits;
|
||||
if (share->base.blobs)
|
||||
{
|
||||
share->update_record=_nisam_update_blob_record;
|
||||
|
@ -453,3 +456,22 @@ static void setup_key_functions(register N_KEYDEF *keyinfo)
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
Calculate a long checksum for a memoryblock. Used to verify pack_isam
|
||||
|
||||
SYNOPSIS
|
||||
checksum()
|
||||
mem Pointer to memory block
|
||||
count Count of bytes
|
||||
*/
|
||||
|
||||
ulong _nisam_checksum(const byte *mem, uint count)
|
||||
{
|
||||
ulong crc;
|
||||
for (crc= 0; count-- ; mem++)
|
||||
crc= ((crc << 1) + *((uchar*) mem)) +
|
||||
test(crc & ((ulong) 1L << (8*sizeof(ulong)-1)));
|
||||
return crc;
|
||||
}
|
||||
|
||||
|
|
|
@ -738,7 +738,7 @@ static int get_statistic(MRG_INFO *mrg,HUFF_COUNTS *huff_counts)
|
|||
{
|
||||
if (! error)
|
||||
{
|
||||
crc^=checksum(record,reclength);
|
||||
crc^=_nisam_checksum(record,reclength);
|
||||
for (pos=record,count=huff_counts ;
|
||||
count < end_count ;
|
||||
count++,
|
||||
|
|
|
@ -1,367 +1,30 @@
|
|||
echo "test2 -L -K -W -P"
|
||||
test2 -L -K -W -P
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Locking used
|
||||
echo "test2 -L -K -W -P -A"
|
||||
test2 -L -K -W -P -A
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Asyncron io with locking used
|
||||
echo "test2 -L -K -W -P -S -R1 -m500"
|
||||
test2 -L -K -W -P -S -R1 -m500
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 475
|
||||
Update records: 44
|
||||
Same-key-read: 4
|
||||
Delete records: 475
|
||||
Record pointer size: 1
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Locking used
|
||||
test2 -L -K -R1 -m2000 ; Should give error 135
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Read first - delete - next -> last
|
||||
- Read last - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 1647
|
||||
Update records: 125
|
||||
Same-key-read: 8
|
||||
Delete records: 1647
|
||||
Record pointer size: 1
|
||||
Key cacheing used
|
||||
Locking used
|
||||
echo "test2 -L -K -R1 -m2000 ; Should give error 135"
|
||||
test2 -L -K -R1 -m2000
|
||||
echo "test2 -L -K -P -S -R3 -m50 -b1000000"
|
||||
test2 -L -K -P -S -R3 -m50 -b1000000
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 50
|
||||
Update records: 5
|
||||
Same-key-read: 2
|
||||
Delete records: 50
|
||||
Record pointer size: 3
|
||||
Key cacheing used
|
||||
Locking used
|
||||
echo "test2 -L -B"
|
||||
test2 -L -B
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 903
|
||||
Update records: 86
|
||||
Same-key-read: 5
|
||||
Delete records: 903
|
||||
Locking used
|
||||
blobs used
|
||||
echo "test2 -L -K -W -P -m50 -l"
|
||||
test2 -L -K -W -P -m50 -l
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 50
|
||||
Update records: 5
|
||||
Same-key-read: 2
|
||||
Delete records: 50
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Locking used
|
||||
Commands Used count Errors Recover errors
|
||||
open 14 0 0
|
||||
write 700 0 0
|
||||
update 70 0 0
|
||||
delete 700 0 0
|
||||
close 14 0 0
|
||||
extra 84 0 0
|
||||
Total 1582 0 0
|
||||
isamlog
|
||||
echo "test2 -L -K -W -P -m50 -l -b100"
|
||||
test2 -L -K -W -P -m50 -l -b100
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 50
|
||||
Update records: 5
|
||||
Same-key-read: 2
|
||||
Delete records: 50
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Locking used
|
||||
Commands Used count Errors Recover errors
|
||||
open 15 0 0
|
||||
write 750 0 0
|
||||
update 75 0 0
|
||||
delete 750 0 0
|
||||
close 15 0 0
|
||||
extra 90 0 0
|
||||
Total 1695 0 0
|
||||
isamlog
|
||||
echo "time test2"
|
||||
time test2
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
echo "time test2 -K"
|
||||
time test2 -K
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Key cacheing used
|
||||
echo "time test2 -L"
|
||||
time test2 -L
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Locking used
|
||||
echo "time test2 -L -K"
|
||||
time test2 -L -K
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Key cacheing used
|
||||
Locking used
|
||||
echo "time test2 -L -K -W"
|
||||
time test2 -L -K -W
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Locking used
|
||||
echo "time test2 -L -K -W -S"
|
||||
time test2 -L -K -W -S
|
||||
- Creating isam-file
|
||||
- Writing key:s
|
||||
- Delete
|
||||
- Update
|
||||
- Same key: first - next -> last - prev -> first
|
||||
- All keys: first - next -> last - prev -> first
|
||||
- Test if: Read first - next - prev - prev - next == first
|
||||
- Test if: Read last - prev - next - next - prev == last
|
||||
- Test read key-part
|
||||
- Read key (first) - next - delete - next -> last
|
||||
- Read last of key - prev - delete - prev -> first
|
||||
- Test if: Read rrnd - same
|
||||
- Test nisam_records_in_range
|
||||
- nisam_info
|
||||
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
|
||||
- Removing keys
|
||||
|
||||
Following test have been made:
|
||||
Write records: 907
|
||||
Update records: 87
|
||||
Same-key-read: 6
|
||||
Delete records: 907
|
||||
Key cacheing used
|
||||
Write cacheing used
|
||||
Locking used
|
||||
|
|
|
@ -42,7 +42,7 @@ link_sources:
|
|||
rm -f $(srcdir)/$$f; \
|
||||
@LN_CP_F@ $(srcdir)/../strings/$$f $(srcdir)/$$f; \
|
||||
done; \
|
||||
for f in $$vs; do \
|
||||
for f in $$vs $(vioheaders); do \
|
||||
rm -f $(srcdir)/$$f; \
|
||||
@LN_CP_F@ $(srcdir)/../vio/$$f $(srcdir)/$$f; \
|
||||
done; \
|
||||
|
|
|
@ -47,6 +47,7 @@ mystringsobjects = strmov.lo strxmov.lo strxnmov.lo strnmov.lo \
|
|||
mystringsextra= strto.c
|
||||
dbugobjects = dbug.lo # IT IS IN SAFEMALLOC.C sanity.lo
|
||||
mysysheaders = mysys_priv.h my_static.h
|
||||
vioheaders = vio_priv.h
|
||||
mysysobjects1 = my_init.lo my_static.lo my_malloc.lo my_realloc.lo \
|
||||
my_create.lo my_delete.lo mf_tempfile.lo my_open.lo \
|
||||
my_read.lo my_write.lo errors.lo \
|
||||
|
@ -88,7 +89,7 @@ clean-local:
|
|||
`echo $(vio_objects) | sed "s;\.lo;.c;g"` \
|
||||
`echo $(sql_cmn_objects) | sed "s;\.lo;.c;g"` \
|
||||
$(CHARSET_SRCS) $(CHARSET_OBJS) \
|
||||
$(mystringsextra) $(mysysheaders) \
|
||||
$(mystringsextra) $(mysysheaders) $(vioheaders)\
|
||||
../linked_client_sources net.c
|
||||
|
||||
conf_to_src_SOURCES = conf_to_src.c
|
||||
|
|
|
@ -41,3 +41,20 @@ my_bool send_file_to_server(MYSQL *mysql, const char *filename);
|
|||
#define reset_sigpipe(mysql)
|
||||
#endif
|
||||
|
||||
void mysql_read_default_options(struct st_mysql_options *options,
|
||||
const char *filename,const char *group);
|
||||
MYSQL * STDCALL
|
||||
cli_mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
||||
const char *passwd, const char *db,
|
||||
uint port, const char *unix_socket,ulong client_flag);
|
||||
|
||||
void STDCALL cli_mysql_close(MYSQL *mysql);
|
||||
|
||||
MYSQL_FIELD * STDCALL cli_list_fields(MYSQL *mysql);
|
||||
my_bool STDCALL cli_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt);
|
||||
MYSQL_DATA *cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields,
|
||||
uint fields);
|
||||
int STDCALL cli_stmt_execute(MYSQL_STMT *stmt);
|
||||
MYSQL_DATA *cli_read_binary_rows(MYSQL_STMT *stmt);
|
||||
int STDCALL cli_unbuffered_fetch(MYSQL *mysql, char **row);
|
||||
const char * STDCALL cli_read_statistic(MYSQL *mysql);
|
||||
|
|
|
@ -112,17 +112,18 @@ int _export FAR PASCAL libmain(HANDLE hModule,short cbHeapSize,
|
|||
|
||||
#ifdef OS2
|
||||
|
||||
//
|
||||
// This function is called automatically by _DLL_InitTerm
|
||||
// Every dll runtime enviroment is not tz enabled, so tzset()
|
||||
// must be called to enable TZ handling
|
||||
// Also timezone is fixed.
|
||||
//
|
||||
/*
|
||||
This function is called automatically by _DLL_InitTerm
|
||||
Every dll runtime enviroment is not tz enabled, so tzset()
|
||||
must be called to enable TZ handling
|
||||
Also timezone is fixed.
|
||||
*/
|
||||
|
||||
extern "C" unsigned long _System DllMain(unsigned long modhandle,
|
||||
unsigned long flag)
|
||||
{
|
||||
if (flag == 0) {
|
||||
tzset(); // Set tzname
|
||||
tzset(); /* Set tzname */
|
||||
time_t currentTime = time(NULL);
|
||||
struct tm *ts = localtime(¤tTime);
|
||||
if (ts->tm_isdst > 0)
|
||||
|
|
|
@ -26,24 +26,24 @@ const char *client_errors[]=
|
|||
{
|
||||
"Unbekannter MySQL Fehler",
|
||||
"Kann UNIX-Socket nicht anlegen (%d)",
|
||||
"Keine Verbindung zu lokalem MySQL Server, socket: '%-.64s' (%d)",
|
||||
"Keine Verbindung zu MySQL Server auf %-.64s (%d)",
|
||||
"Keine Verbindung zu lokalem MySQL Server, socket: '%-.100s' (%d)",
|
||||
"Keine Verbindung zu MySQL Server auf %-.100s (%d)",
|
||||
"Kann TCP/IP-Socket nicht anlegen (%d)",
|
||||
"Unbekannter MySQL Server Host (%-.64s) (%d)",
|
||||
"Unbekannter MySQL Server Host (%-.100s) (%d)",
|
||||
"MySQL Server nicht vorhanden",
|
||||
"Protokolle ungleich. Server Version = % d Client Version = %d",
|
||||
"MySQL client got out of memory",
|
||||
"Wrong host info",
|
||||
"Localhost via UNIX socket",
|
||||
"%-.64s via TCP/IP",
|
||||
"%-.100s via TCP/IP",
|
||||
"Error in server handshake",
|
||||
"Lost connection to MySQL server during query",
|
||||
"Commands out of sync; You can't run this command now",
|
||||
"Verbindung ueber Named Pipe; Host: %-.64s",
|
||||
"Verbindung ueber Named Pipe; Host: %-.100s",
|
||||
"Kann nicht auf Named Pipe warten. Host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Kann Named Pipe nicht oeffnen. Host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Kann den Status der Named Pipe nicht setzen. Host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Can't initialize character set %-.64s (path: %-.64s)",
|
||||
"Can't initialize character set %-.32s (path: %-.100s)",
|
||||
"Got packet bigger than 'max_allowed_packet'",
|
||||
"Embedded server",
|
||||
"Error on SHOW SLAVE STATUS:",
|
||||
|
@ -71,7 +71,8 @@ const char *client_errors[]=
|
|||
"Can't open shared memory. Server abandoded and don't sent the answer event (%lu)",
|
||||
"Can't open shared memory. Can't send the request event to server (%lu)",
|
||||
"Wrong or unknown protocol",
|
||||
"Invalid connection handle"
|
||||
"Invalid connection handle",
|
||||
"mysql_server_init wasn't called"
|
||||
};
|
||||
|
||||
/* Start of code added by Roberto M. Serqueira - martinsc@uol.com.br - 05.24.2001 */
|
||||
|
@ -81,24 +82,24 @@ const char *client_errors[]=
|
|||
{
|
||||
"Erro desconhecido do MySQL",
|
||||
"Não pode criar 'UNIX socket' (%d)",
|
||||
"Não pode se conectar ao servidor MySQL local através do 'socket' '%-.64s' (%d)",
|
||||
"Não pode se conectar ao servidor MySQL em '%-.64s' (%d)",
|
||||
"Não pode se conectar ao servidor MySQL local através do 'socket' '%-.100s' (%d)",
|
||||
"Não pode se conectar ao servidor MySQL em '%-.100s' (%d)",
|
||||
"Não pode criar 'socket TCP/IP' (%d)",
|
||||
"'Host' servidor MySQL '%-.64s' (%d) desconhecido",
|
||||
"'Host' servidor MySQL '%-.100s' (%d) desconhecido",
|
||||
"Servidor MySQL desapareceu",
|
||||
"Incompatibilidade de protocolos. Versão do Servidor: %d - Versão do Cliente: %d",
|
||||
"Cliente do MySQL com falta de memória",
|
||||
"Informação inválida de 'host'",
|
||||
"Localhost via 'UNIX socket'",
|
||||
"%-.64s via 'TCP/IP'",
|
||||
"%-.100s via 'TCP/IP'",
|
||||
"Erro na negociação de acesso ao servidor",
|
||||
"Conexão perdida com servidor MySQL durante 'query'",
|
||||
"Comandos fora de sincronismo. Você não pode executar este comando agora",
|
||||
"%-.64s via 'named pipe'",
|
||||
"%-.100s via 'named pipe'",
|
||||
"Não pode esperar pelo 'named pipe' para o 'host' %-.64s - 'pipe' %-.32s (%lu)",
|
||||
"Não pode abrir 'named pipe' para o 'host' %-.64s - 'pipe' %-.32s (%lu)",
|
||||
"Não pode estabelecer o estado do 'named pipe' para o 'host' %-.64s - 'pipe' %-.32s (%lu)",
|
||||
"Não pode inicializar conjunto de caracteres %-.64s (caminho %-.64s)",
|
||||
"Não pode inicializar conjunto de caracteres %-.32s (caminho %-.100s)",
|
||||
"Obteve pacote maior do que 'max_allowed_packet'",
|
||||
"Embedded server"
|
||||
"Error on SHOW SLAVE STATUS:",
|
||||
|
@ -126,7 +127,8 @@ const char *client_errors[]=
|
|||
"Can't open shared memory. Server abandoded and don't sent the answer event (%lu)",
|
||||
"Can't open shared memory. Can't send the request event to server (%lu)",
|
||||
"Wrong or unknown protocol",
|
||||
"Invalid connection handle"
|
||||
"Invalid connection handle",
|
||||
"mysql_server_init wasn't called"
|
||||
};
|
||||
|
||||
#else /* ENGLISH */
|
||||
|
@ -134,24 +136,24 @@ const char *client_errors[]=
|
|||
{
|
||||
"Unknown MySQL error",
|
||||
"Can't create UNIX socket (%d)",
|
||||
"Can't connect to local MySQL server through socket '%-.64s' (%d)",
|
||||
"Can't connect to MySQL server on '%-.64s' (%d)",
|
||||
"Can't connect to local MySQL server through socket '%-.100s' (%d)",
|
||||
"Can't connect to MySQL server on '%-.100s' (%d)",
|
||||
"Can't create TCP/IP socket (%d)",
|
||||
"Unknown MySQL Server Host '%-.64s' (%d)",
|
||||
"Unknown MySQL Server Host '%-.100s' (%d)",
|
||||
"MySQL server has gone away",
|
||||
"Protocol mismatch. Server Version = %d Client Version = %d",
|
||||
"MySQL client run out of memory",
|
||||
"Wrong host info",
|
||||
"Localhost via UNIX socket",
|
||||
"%-.64s via TCP/IP",
|
||||
"%-.100s via TCP/IP",
|
||||
"Error in server handshake",
|
||||
"Lost connection to MySQL server during query",
|
||||
"Commands out of sync; You can't run this command now",
|
||||
"%-.64s via named pipe",
|
||||
"%-.100s via named pipe",
|
||||
"Can't wait for named pipe to host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Can't open named pipe to host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Can't set state of named pipe to host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Can't initialize character set %-.64s (path: %-.64s)",
|
||||
"Can't initialize character set %-.32s (path: %-.100s)",
|
||||
"Got packet bigger than 'max_allowed_packet'",
|
||||
"Embedded server",
|
||||
"Error on SHOW SLAVE STATUS:",
|
||||
|
@ -179,7 +181,8 @@ const char *client_errors[]=
|
|||
"Can't open shared memory. Server abandoded and don't sent the answer event (%lu)",
|
||||
"Can't open shared memory. Can't send the request event to server (%lu)",
|
||||
"Wrong or unknown protocol",
|
||||
"Invalid connection handle"
|
||||
"Invalid connection handle",
|
||||
"mysql_server_init wasn't called"
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ char *get_tty_password(char *opt_message)
|
|||
char *pos=to,*end=to+sizeof(to)-1;
|
||||
int i=0;
|
||||
DBUG_ENTER("get_tty_password");
|
||||
fprintf(stdout,opt_message ? opt_message : "Enter password: ");
|
||||
_cputs(opt_message ? opt_message : "Enter password: ");
|
||||
for (;;)
|
||||
{
|
||||
char tmp;
|
||||
|
|
|
@ -155,9 +155,16 @@ void STDCALL mysql_server_end()
|
|||
{
|
||||
/* If library called my_init(), free memory allocated by it */
|
||||
if (!org_my_init_done)
|
||||
{
|
||||
my_end(0);
|
||||
#ifndef THREAD
|
||||
/* Remove TRACING, if enabled by mysql_debug() */
|
||||
DBUG_POP();
|
||||
#endif
|
||||
}
|
||||
else
|
||||
mysql_thread_end();
|
||||
mysql_client_init= org_my_init_done= 0;
|
||||
}
|
||||
|
||||
#endif /*EMBEDDED_LIBRARY*/
|
||||
|
@ -272,7 +279,7 @@ my_bool STDCALL mysql_master_query(MYSQL *mysql, const char *q,
|
|||
DBUG_ENTER("mysql_master_query");
|
||||
if (mysql_master_send_query(mysql, q, length))
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(mysql_read_query_result(mysql));
|
||||
DBUG_RETURN((*mysql->methods->read_query_result)(mysql));
|
||||
}
|
||||
|
||||
my_bool STDCALL mysql_master_send_query(MYSQL *mysql, const char *q,
|
||||
|
@ -294,7 +301,7 @@ my_bool STDCALL mysql_slave_query(MYSQL *mysql, const char *q,
|
|||
DBUG_ENTER("mysql_slave_query");
|
||||
if (mysql_slave_send_query(mysql, q, length))
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(mysql_read_query_result(mysql));
|
||||
DBUG_RETURN((*mysql->methods->read_query_result)(mysql));
|
||||
}
|
||||
|
||||
|
||||
|
@ -594,6 +601,8 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
|
|||
const char *passwd, const char *db)
|
||||
{
|
||||
char buff[512],*end=buff;
|
||||
NET *net= &mysql->net;
|
||||
ulong pkt_length;
|
||||
DBUG_ENTER("mysql_change_user");
|
||||
|
||||
if (!user)
|
||||
|
@ -604,41 +613,54 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
|
|||
/* Store user into the buffer */
|
||||
end=strmov(end,user)+1;
|
||||
|
||||
/*
|
||||
We always start with old type handshake the only difference is message sent
|
||||
If server handles secure connection type we'll not send the real scramble
|
||||
*/
|
||||
if (mysql->server_capabilities & CLIENT_SECURE_CONNECTION)
|
||||
/* write scrambled password according to server capabilities */
|
||||
if (passwd[0])
|
||||
{
|
||||
if (passwd[0])
|
||||
if (mysql->server_capabilities & CLIENT_SECURE_CONNECTION)
|
||||
{
|
||||
/* Prepare false scramble */
|
||||
bfill(end, SCRAMBLE_LENGTH, 'x');
|
||||
end+=SCRAMBLE_LENGTH;
|
||||
*end=0;
|
||||
|
||||
*end++= SCRAMBLE_LENGTH;
|
||||
scramble(end, mysql->scramble, passwd);
|
||||
end+= SCRAMBLE_LENGTH;
|
||||
}
|
||||
else
|
||||
{
|
||||
scramble_323(end, mysql->scramble, passwd);
|
||||
end+= SCRAMBLE_LENGTH_323 + 1;
|
||||
}
|
||||
else /* For empty password */
|
||||
*end=0; /* zero length scramble */
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
Real scramble is only sent to old servers. This can be blocked
|
||||
by calling mysql_options(MYSQL *, MYSQL_SECURE_CONNECT, (char*) &1);
|
||||
*/
|
||||
end=scramble(end, mysql->scramble_buff, passwd,
|
||||
(my_bool) (mysql->protocol_version == 9));
|
||||
}
|
||||
*end++= '\0'; /* empty password */
|
||||
/* Add database if needed */
|
||||
end=strmov(end+1,db ? db : "");
|
||||
end= strmov(end, db ? db : "") + 1;
|
||||
|
||||
/* Write authentication package */
|
||||
simple_command(mysql,COM_CHANGE_USER, buff,(ulong) (end-buff),1);
|
||||
|
||||
if (mysql_autenticate(mysql, passwd))
|
||||
pkt_length= net_safe_read(mysql);
|
||||
|
||||
if (pkt_length == packet_error)
|
||||
goto error;
|
||||
|
||||
if (pkt_length == 1 && net->read_pos[0] == 254 &&
|
||||
mysql->server_capabilities & CLIENT_SECURE_CONNECTION)
|
||||
{
|
||||
/*
|
||||
By sending this very specific reply server asks us to send scrambled
|
||||
password in old format. The reply contains scramble_323.
|
||||
*/
|
||||
scramble_323(buff, mysql->scramble, passwd);
|
||||
if (my_net_write(net, buff, SCRAMBLE_LENGTH_323 + 1) || net_flush(net))
|
||||
{
|
||||
net->last_errno= CR_SERVER_LOST;
|
||||
strmov(net->sqlstate, unknown_sqlstate);
|
||||
strmov(net->last_error,ER(net->last_errno));
|
||||
goto error;
|
||||
}
|
||||
/* Read what server thinks about out new auth message report */
|
||||
if (net_safe_read(mysql) == packet_error)
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* Free old connect information */
|
||||
my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR));
|
||||
|
@ -951,6 +973,19 @@ mysql_list_tables(MYSQL *mysql, const char *wild)
|
|||
DBUG_RETURN (mysql_store_result(mysql));
|
||||
}
|
||||
|
||||
MYSQL_FIELD * STDCALL cli_list_fields(MYSQL *mysql)
|
||||
{
|
||||
MYSQL_DATA *query;
|
||||
if (!(query= cli_read_rows(mysql,(MYSQL_FIELD*) 0,
|
||||
protocol_41(mysql) ? 8 : 6)))
|
||||
return NULL;
|
||||
|
||||
mysql->field_count= query->rows;
|
||||
return unpack_fields(query,&mysql->field_alloc,
|
||||
query->rows, 1, mysql->server_capabilities);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
List all fields in a table
|
||||
If wild is given then only the fields matching wild is returned
|
||||
|
@ -961,34 +996,27 @@ mysql_list_tables(MYSQL *mysql, const char *wild)
|
|||
MYSQL_RES * STDCALL
|
||||
mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
|
||||
{
|
||||
MYSQL_RES *result;
|
||||
MYSQL_DATA *query;
|
||||
MYSQL_RES *result;
|
||||
MYSQL_FIELD *fields;
|
||||
char buff[257],*end;
|
||||
DBUG_ENTER("mysql_list_fields");
|
||||
DBUG_PRINT("enter",("table: '%s' wild: '%s'",table,wild ? wild : ""));
|
||||
|
||||
LINT_INIT(query);
|
||||
|
||||
end=strmake(strmake(buff, table,128)+1,wild ? wild : "",128);
|
||||
free_old_query(mysql);
|
||||
if (simple_command(mysql,COM_FIELD_LIST,buff,(ulong) (end-buff),1) ||
|
||||
!(query = read_rows(mysql,(MYSQL_FIELD*) 0,
|
||||
protocol_41(mysql) ? 8 : 6)))
|
||||
!(fields= (*mysql->methods->list_fields)(mysql)))
|
||||
DBUG_RETURN(NULL);
|
||||
|
||||
free_old_query(mysql);
|
||||
if (!(result = (MYSQL_RES *) my_malloc(sizeof(MYSQL_RES),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
{
|
||||
free_rows(query);
|
||||
DBUG_RETURN(NULL);
|
||||
}
|
||||
|
||||
result->methods= mysql->methods;
|
||||
result->field_alloc=mysql->field_alloc;
|
||||
mysql->fields=0;
|
||||
result->field_count = (uint) query->rows;
|
||||
result->fields= unpack_fields(query,&result->field_alloc,
|
||||
result->field_count, 1,
|
||||
mysql->server_capabilities);
|
||||
result->field_count = mysql->field_count;
|
||||
result->fields= fields;
|
||||
result->eof=1;
|
||||
DBUG_RETURN(result);
|
||||
}
|
||||
|
@ -1009,8 +1037,8 @@ mysql_list_processes(MYSQL *mysql)
|
|||
free_old_query(mysql);
|
||||
pos=(uchar*) mysql->net.read_pos;
|
||||
field_count=(uint) net_field_length(&pos);
|
||||
if (!(fields = read_rows(mysql,(MYSQL_FIELD*) 0,
|
||||
protocol_41(mysql) ? 7 : 5)))
|
||||
if (!(fields = (*mysql->methods->read_rows)(mysql,(MYSQL_FIELD*) 0,
|
||||
protocol_41(mysql) ? 7 : 5)))
|
||||
DBUG_RETURN(NULL);
|
||||
if (!(mysql->fields=unpack_fields(fields,&mysql->field_alloc,field_count,0,
|
||||
mysql->server_capabilities)))
|
||||
|
@ -1074,12 +1102,8 @@ mysql_dump_debug_info(MYSQL *mysql)
|
|||
DBUG_RETURN(simple_command(mysql,COM_DEBUG,0,0,0));
|
||||
}
|
||||
|
||||
const char * STDCALL
|
||||
mysql_stat(MYSQL *mysql)
|
||||
const char * STDCALL cli_read_statistic(MYSQL *mysql)
|
||||
{
|
||||
DBUG_ENTER("mysql_stat");
|
||||
if (simple_command(mysql,COM_STATISTICS,0,0,0))
|
||||
return mysql->net.last_error;
|
||||
mysql->net.read_pos[mysql->packet_length]=0; /* End of stat string */
|
||||
if (!mysql->net.read_pos[0])
|
||||
{
|
||||
|
@ -1088,7 +1112,16 @@ mysql_stat(MYSQL *mysql)
|
|||
strmov(mysql->net.last_error, ER(mysql->net.last_errno));
|
||||
return mysql->net.last_error;
|
||||
}
|
||||
DBUG_RETURN((char*) mysql->net.read_pos);
|
||||
return (char*) mysql->net.read_pos;
|
||||
}
|
||||
|
||||
const char * STDCALL
|
||||
mysql_stat(MYSQL *mysql)
|
||||
{
|
||||
DBUG_ENTER("mysql_stat");
|
||||
if (simple_command(mysql,COM_STATISTICS,0,0,0))
|
||||
return mysql->net.last_error;
|
||||
DBUG_RETURN((*mysql->methods->read_statistic)(mysql));
|
||||
}
|
||||
|
||||
|
||||
|
@ -1466,8 +1499,8 @@ static void set_stmt_error(MYSQL_STMT * stmt, int errcode,
|
|||
Copy error message to statement handler
|
||||
*/
|
||||
|
||||
static void set_stmt_errmsg(MYSQL_STMT * stmt, const char *err, int errcode,
|
||||
const char *sqlstate)
|
||||
void set_stmt_errmsg(MYSQL_STMT * stmt, const char *err, int errcode,
|
||||
const char *sqlstate)
|
||||
{
|
||||
DBUG_ENTER("set_stmt_error_msg");
|
||||
DBUG_PRINT("enter", ("error: %d/%s '%s'", errcode, sqlstate, err));
|
||||
|
@ -1541,7 +1574,7 @@ static my_bool my_realloc_str(NET *net, ulong length)
|
|||
1 error
|
||||
*/
|
||||
|
||||
static my_bool read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt)
|
||||
my_bool STDCALL cli_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt)
|
||||
{
|
||||
uchar *pos;
|
||||
uint field_count;
|
||||
|
@ -1564,25 +1597,16 @@ static my_bool read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt)
|
|||
mysql->server_status|= SERVER_STATUS_IN_TRANS;
|
||||
|
||||
mysql->extra_info= net_field_length_ll(&pos);
|
||||
if (!(fields_data= read_rows(mysql, (MYSQL_FIELD*) 0, 7)))
|
||||
if (!(fields_data= (*mysql->methods->read_rows)(mysql,(MYSQL_FIELD*)0,7)))
|
||||
DBUG_RETURN(1);
|
||||
if (!(stmt->fields= unpack_fields(fields_data,&stmt->mem_root,
|
||||
field_count,0,
|
||||
mysql->server_capabilities)))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (!(stmt->params= (MYSQL_BIND *) alloc_root(&stmt->mem_root,
|
||||
sizeof(MYSQL_BIND)*
|
||||
(param_count +
|
||||
field_count))))
|
||||
{
|
||||
set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
stmt->bind= (stmt->params + param_count);
|
||||
stmt->field_count= (uint) field_count;
|
||||
stmt->param_count= (ulong) param_count;
|
||||
mysql->status= MYSQL_STATUS_READY;
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
@ -1626,14 +1650,25 @@ mysql_prepare(MYSQL *mysql, const char *query, ulong length)
|
|||
}
|
||||
|
||||
init_alloc_root(&stmt->mem_root,8192,0);
|
||||
if (read_prepare_result(mysql, stmt))
|
||||
if ((*mysql->methods->read_prepare_result)(mysql, stmt))
|
||||
{
|
||||
stmt_close(stmt, 1);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
if (!(stmt->params= (MYSQL_BIND *) alloc_root(&stmt->mem_root,
|
||||
sizeof(MYSQL_BIND)*
|
||||
(stmt->param_count +
|
||||
stmt->field_count))))
|
||||
{
|
||||
set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
stmt->bind= stmt->params + stmt->param_count;
|
||||
stmt->state= MY_ST_PREPARE;
|
||||
stmt->mysql= mysql;
|
||||
mysql->stmts= list_add(mysql->stmts, &stmt->list);
|
||||
mysql->status= MYSQL_STATUS_READY;
|
||||
stmt->list.data= stmt;
|
||||
DBUG_PRINT("info", ("Parameter count: %ld", stmt->param_count));
|
||||
DBUG_RETURN(stmt);
|
||||
|
@ -1693,10 +1728,10 @@ unsigned int alloc_stmt_fields(MYSQL_STMT *stmt)
|
|||
*/
|
||||
|
||||
MYSQL_RES * STDCALL
|
||||
mysql_prepare_result(MYSQL_STMT *stmt)
|
||||
mysql_get_metadata(MYSQL_STMT *stmt)
|
||||
{
|
||||
MYSQL_RES *result;
|
||||
DBUG_ENTER("mysql_prepare_result");
|
||||
DBUG_ENTER("mysql_get_metadata");
|
||||
|
||||
if (!stmt->field_count || !stmt->fields)
|
||||
{
|
||||
|
@ -1736,7 +1771,6 @@ mysql_param_result(MYSQL_STMT *stmt)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/********************************************************************
|
||||
Prepare-execute, and param handling
|
||||
*********************************************************************/
|
||||
|
@ -1751,6 +1785,7 @@ static void store_param_type(NET *net, uint type)
|
|||
net->write_pos+=2;
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
Functions to store parameter data from a prepared statement.
|
||||
|
||||
|
@ -1766,7 +1801,6 @@ static void store_param_type(NET *net, uint type)
|
|||
1 Error (Can't alloc net->buffer)
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
static void store_param_tinyint(NET *net, MYSQL_BIND *param)
|
||||
{
|
||||
*(net->write_pos++)= (uchar) *param->buffer;
|
||||
|
@ -1950,36 +1984,21 @@ static my_bool execute(MYSQL_STMT * stmt, char *packet, ulong length)
|
|||
|
||||
mysql->last_used_con= mysql;
|
||||
int4store(buff, stmt->stmt_id); /* Send stmt id to server */
|
||||
if ((*mysql->methods->advanced_command)(mysql, COM_EXECUTE, buff,
|
||||
MYSQL_STMT_HEADER, packet,
|
||||
length, 1) ||
|
||||
mysql_read_query_result(mysql))
|
||||
if (cli_advanced_command(mysql, COM_EXECUTE, buff,
|
||||
MYSQL_STMT_HEADER, packet,
|
||||
length, 1) ||
|
||||
(*mysql->methods->read_query_result)(mysql))
|
||||
{
|
||||
set_stmt_errmsg(stmt, net->last_error, net->last_errno, net->sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
stmt->state= MY_ST_EXECUTE;
|
||||
mysql_free_result(stmt->result);
|
||||
stmt->result= (MYSQL_RES *)0;
|
||||
stmt->result_buffered= 0;
|
||||
stmt->current_row= 0;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Execute the prepare query
|
||||
*/
|
||||
|
||||
int STDCALL mysql_execute(MYSQL_STMT *stmt)
|
||||
int STDCALL cli_stmt_execute(MYSQL_STMT *stmt)
|
||||
{
|
||||
DBUG_ENTER("mysql_execute");
|
||||
DBUG_ENTER("cli_stmt_execute");
|
||||
|
||||
if (stmt->state == MY_ST_UNKNOWN)
|
||||
{
|
||||
set_stmt_error(stmt, CR_NO_PREPARE_STMT, unknown_sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (stmt->param_count)
|
||||
{
|
||||
NET *net= &stmt->mysql->net;
|
||||
|
@ -2040,6 +2059,30 @@ int STDCALL mysql_execute(MYSQL_STMT *stmt)
|
|||
DBUG_RETURN((int) execute(stmt,0,0));
|
||||
}
|
||||
|
||||
/*
|
||||
Execute the prepare query
|
||||
*/
|
||||
|
||||
int STDCALL mysql_execute(MYSQL_STMT *stmt)
|
||||
{
|
||||
DBUG_ENTER("mysql_execute");
|
||||
|
||||
if (stmt->state == MY_ST_UNKNOWN)
|
||||
{
|
||||
set_stmt_error(stmt, CR_NO_PREPARE_STMT, unknown_sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if ((*stmt->mysql->methods->stmt_execute)(stmt))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
stmt->state= MY_ST_EXECUTE;
|
||||
mysql_free_result(stmt->result);
|
||||
stmt->result= (MYSQL_RES *)0;
|
||||
stmt->result_buffered= 0;
|
||||
stmt->current_row= 0;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Return total parameters count in the statement
|
||||
|
@ -2063,8 +2106,6 @@ my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt)
|
|||
|
||||
static my_bool int_is_null_true= 1; /* Used for MYSQL_TYPE_NULL */
|
||||
static my_bool int_is_null_false= 0;
|
||||
static my_bool int_is_null_dummy;
|
||||
static unsigned long param_length_is_dummy;
|
||||
|
||||
/*
|
||||
Setup the parameter data buffers from application
|
||||
|
@ -2400,7 +2441,10 @@ static void send_data_long(MYSQL_BIND *param, longlong value)
|
|||
char tmp[22]; /* Enough for longlong */
|
||||
uint length= (uint)(longlong10_to_str(value,(char *)tmp,10)-tmp);
|
||||
ulong copy_length= min((ulong)length-param->offset, param->buffer_length);
|
||||
memcpy(buffer, (char *)tmp+param->offset, copy_length);
|
||||
if ((long) copy_length < 0)
|
||||
copy_length=0;
|
||||
else
|
||||
memcpy(buffer, (char *)tmp+param->offset, copy_length);
|
||||
*param->length= length;
|
||||
|
||||
if (copy_length != param->buffer_length)
|
||||
|
@ -2448,7 +2492,10 @@ static void send_data_double(MYSQL_BIND *param, double value)
|
|||
char tmp[128];
|
||||
uint length= my_sprintf(tmp,(tmp,"%g",value));
|
||||
ulong copy_length= min((ulong)length-param->offset, param->buffer_length);
|
||||
memcpy(buffer, (char *)tmp+param->offset, copy_length);
|
||||
if ((long) copy_length < 0)
|
||||
copy_length=0;
|
||||
else
|
||||
memcpy(buffer, (char *)tmp+param->offset, copy_length);
|
||||
*param->length= length;
|
||||
|
||||
if (copy_length != param->buffer_length)
|
||||
|
@ -2513,15 +2560,19 @@ static void send_data_str(MYSQL_BIND *param, char *value, uint length)
|
|||
case MYSQL_TYPE_BLOB:
|
||||
*param->length= length;
|
||||
length= min(length-param->offset, param->buffer_length);
|
||||
memcpy(buffer, value+param->offset, length);
|
||||
if ((long) length > 0)
|
||||
memcpy(buffer, value+param->offset, length);
|
||||
break;
|
||||
default:
|
||||
*param->length= length;
|
||||
length= min(length-param->offset, param->buffer_length);
|
||||
memcpy(buffer, value+param->offset, length);
|
||||
if ((long) length < 0)
|
||||
length= 0;
|
||||
else
|
||||
memcpy(buffer, value+param->offset, length);
|
||||
if (length != param->buffer_length)
|
||||
buffer[length]= '\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -2583,15 +2634,16 @@ static void send_data_time(MYSQL_BIND *param, MYSQL_TIME ltime,
|
|||
|
||||
/* Fetch data to buffers */
|
||||
|
||||
static void fetch_results(MYSQL_BIND *param, uint field_type, uchar **row,
|
||||
my_bool field_is_unsigned)
|
||||
static void fetch_results(MYSQL_BIND *param, MYSQL_FIELD *field, uchar **row)
|
||||
{
|
||||
ulong length;
|
||||
|
||||
enum enum_field_types field_type= field->type;
|
||||
|
||||
switch (field_type) {
|
||||
case MYSQL_TYPE_TINY:
|
||||
{
|
||||
char value= (char) **row;
|
||||
uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
|
||||
longlong data= ((field_is_unsigned) ? (longlong) (unsigned char) value:
|
||||
(longlong) value);
|
||||
send_data_long(param,data);
|
||||
|
@ -2602,6 +2654,7 @@ static void fetch_results(MYSQL_BIND *param, uint field_type, uchar **row,
|
|||
case MYSQL_TYPE_YEAR:
|
||||
{
|
||||
short value= sint2korr(*row);
|
||||
uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
|
||||
longlong data= ((field_is_unsigned) ? (longlong) (unsigned short) value:
|
||||
(longlong) value);
|
||||
send_data_long(param,data);
|
||||
|
@ -2611,6 +2664,7 @@ static void fetch_results(MYSQL_BIND *param, uint field_type, uchar **row,
|
|||
case MYSQL_TYPE_LONG:
|
||||
{
|
||||
long value= sint4korr(*row);
|
||||
uint field_is_unsigned= (field->flags & UNSIGNED_FLAG);
|
||||
longlong data= ((field_is_unsigned) ? (longlong) (unsigned long) value:
|
||||
(longlong) value);
|
||||
send_data_long(param,data);
|
||||
|
@ -2759,24 +2813,6 @@ static void fetch_result_str(MYSQL_BIND *param, uchar **row)
|
|||
*row+= length;
|
||||
}
|
||||
|
||||
static uint default_binary_field_length(uint field_type)
|
||||
{
|
||||
switch(field_type) {
|
||||
case MYSQL_TYPE_TINY:
|
||||
return 1;
|
||||
case MYSQL_TYPE_SHORT:
|
||||
return 2;
|
||||
case MYSQL_TYPE_LONG:
|
||||
case MYSQL_TYPE_FLOAT:
|
||||
return 4;
|
||||
case MYSQL_TYPE_LONGLONG:
|
||||
case MYSQL_TYPE_DOUBLE:
|
||||
return 8;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Setup the bind buffers for resultset processing
|
||||
|
@ -2816,10 +2852,10 @@ my_bool STDCALL mysql_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)
|
|||
This is to make the excute code easier
|
||||
*/
|
||||
if (!param->is_null)
|
||||
param->is_null= &int_is_null_dummy;
|
||||
param->is_null= ¶m->internal_is_null;
|
||||
|
||||
if (!param->length)
|
||||
param->length= ¶m_length_is_dummy;
|
||||
param->length= ¶m->internal_length;
|
||||
|
||||
param->param_number= param_count++;
|
||||
param->offset= 0;
|
||||
|
@ -2923,10 +2959,7 @@ static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row)
|
|||
if (field->type == bind->buffer_type)
|
||||
(*bind->fetch_result)(bind, &row);
|
||||
else
|
||||
{
|
||||
my_bool field_is_unsigned= (field->flags & UNSIGNED_FLAG) ? 1: 0;
|
||||
fetch_results(bind, field->type, &row, field_is_unsigned);
|
||||
}
|
||||
fetch_results(bind, field, &row);
|
||||
}
|
||||
if (!((bit<<=1) & 255))
|
||||
{
|
||||
|
@ -2937,6 +2970,14 @@ static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int STDCALL cli_unbuffered_fetch(MYSQL *mysql, char **row)
|
||||
{
|
||||
if (packet_error == net_safe_read(mysql))
|
||||
return 1;
|
||||
|
||||
*row= (mysql->net.read_pos[0] == 254) ? NULL : (mysql->net.read_pos+1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Fetch and return row data to bound buffers, if any
|
||||
|
@ -2948,8 +2989,8 @@ int STDCALL mysql_fetch(MYSQL_STMT *stmt)
|
|||
uchar *row;
|
||||
DBUG_ENTER("mysql_fetch");
|
||||
|
||||
stmt->last_fetched_column= 0; /* reset */
|
||||
if (stmt->result_buffered) /* buffered */
|
||||
stmt->last_fetched_column= 0; /* reset */
|
||||
if (stmt->result_buffered) /* buffered */
|
||||
{
|
||||
MYSQL_RES *res;
|
||||
|
||||
|
@ -2964,22 +3005,22 @@ int STDCALL mysql_fetch(MYSQL_STMT *stmt)
|
|||
row= (uchar *)res->data_cursor->data;
|
||||
res->data_cursor= res->data_cursor->next;
|
||||
}
|
||||
else /* un-buffered */
|
||||
else /* un-buffered */
|
||||
{
|
||||
if (packet_error == net_safe_read(mysql))
|
||||
if((*mysql->methods->unbuffered_fetch)(mysql, ( char **)&row))
|
||||
{
|
||||
set_stmt_errmsg(stmt, mysql->net.last_error, mysql->net.last_errno,
|
||||
mysql->net.sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (mysql->net.read_pos[0] == 254)
|
||||
if (!row)
|
||||
{
|
||||
mysql->status= MYSQL_STATUS_READY;
|
||||
stmt->current_row= 0;
|
||||
goto no_data;
|
||||
}
|
||||
row= mysql->net.read_pos+1;
|
||||
}
|
||||
}
|
||||
|
||||
stmt->current_row= row;
|
||||
DBUG_RETURN(stmt_fetch_row(stmt, row));
|
||||
|
||||
|
@ -2990,107 +3031,55 @@ no_data:
|
|||
|
||||
|
||||
/*
|
||||
Fetch only specified column data to buffers
|
||||
Fetch datat for one specified column data
|
||||
|
||||
SYNOPSIS
|
||||
mysql_fetch_column()
|
||||
stmt Prepared statement handler
|
||||
bind Where date should be placed. Should be filled in as
|
||||
when calling mysql_bind_param()
|
||||
column Column to fetch (first column is 0)
|
||||
ulong offset Offset in result data (to fetch blob in pieces)
|
||||
This is normally 0
|
||||
RETURN
|
||||
0 ok
|
||||
1 error
|
||||
*/
|
||||
|
||||
int STDCALL mysql_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind,
|
||||
my_ulonglong icol,
|
||||
ulong offset)
|
||||
uint column, ulong offset)
|
||||
{
|
||||
uchar *row;
|
||||
my_bool null_data;
|
||||
|
||||
MYSQL_BIND *param= stmt->bind+column;
|
||||
DBUG_ENTER("mysql_fetch_column");
|
||||
|
||||
if (!(row= stmt->current_row))
|
||||
if (!stmt->current_row)
|
||||
goto no_data;
|
||||
|
||||
#ifdef CHECK_EXTRA_ARGUMENTS
|
||||
if (!bind || icol >= stmt->field_count)
|
||||
if (column >= stmt->field_count)
|
||||
{
|
||||
set_stmt_errmsg(stmt, "Invalid column descriptor or offset",1,
|
||||
unknown_sqlstate);
|
||||
set_stmt_errmsg(stmt, "Invalid column descriptor",1, unknown_sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* column '0' == first column */
|
||||
if (stmt->res_buffers)
|
||||
{
|
||||
/*
|
||||
Already buffers are parsed and cached to stmt->bind
|
||||
during mysql_fetch() call.
|
||||
*/
|
||||
MYSQL_BIND *param= stmt->bind+icol;
|
||||
null_data= param->null_field;
|
||||
row= param->inter_buffer;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (stmt->last_fetched_column == icol+1)
|
||||
{
|
||||
/*
|
||||
Data buffer is already parsed during the last call, get
|
||||
the cached information
|
||||
*/
|
||||
if (!stmt->last_fetched_buffer)
|
||||
null_data= 1;
|
||||
else
|
||||
{
|
||||
null_data= 0;
|
||||
row= stmt->last_fetched_buffer;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
Advance the data buffer to icol position and cache
|
||||
the information for subsequent calls
|
||||
*/
|
||||
uint bit= icol > 6 ? 1 : 4;
|
||||
stmt->last_fetched_column= icol+1;
|
||||
|
||||
if (row[icol/8] & (bit << icol & 7))
|
||||
{
|
||||
stmt->last_fetched_buffer= 0;
|
||||
null_data= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint length, i;
|
||||
|
||||
null_data= 0;
|
||||
row+= (stmt->field_count+9)/8; /* skip null bits */
|
||||
|
||||
for (i=0; i < icol; i++)
|
||||
{
|
||||
if (!(length= default_binary_field_length((uint)(stmt->fields[i].
|
||||
type))))
|
||||
length= net_field_length(&row);
|
||||
row+= length;
|
||||
}
|
||||
stmt->last_fetched_buffer= row;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null_data)
|
||||
if (param->null_field)
|
||||
{
|
||||
if (bind->is_null)
|
||||
*bind->is_null= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
MYSQL_FIELD *field= stmt->fields+icol;
|
||||
my_bool field_is_unsigned= (field->flags & UNSIGNED_FLAG) ? 1: 0;
|
||||
|
||||
MYSQL_FIELD *field= stmt->fields+column;
|
||||
uchar *row= param->inter_buffer;
|
||||
bind->offset= offset;
|
||||
if (bind->is_null)
|
||||
*bind->is_null= 0;
|
||||
if (bind->length) /* Set the length if non char/binary types */
|
||||
*bind->length= default_binary_field_length(field->type);
|
||||
*bind->length= *param->length;
|
||||
else
|
||||
bind->length= ¶m_length_is_dummy;
|
||||
fetch_results(bind, field->type, &row, field_is_unsigned);
|
||||
bind->length= ¶m->internal_length; /* Needed for fetch_result() */
|
||||
fetch_results(bind, field, &row);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
|
||||
|
@ -3104,7 +3093,7 @@ no_data:
|
|||
Read all rows of data from server (binary format)
|
||||
*/
|
||||
|
||||
static MYSQL_DATA *read_binary_rows(MYSQL_STMT *stmt)
|
||||
MYSQL_DATA *cli_read_binary_rows(MYSQL_STMT *stmt)
|
||||
{
|
||||
ulong pkt_len;
|
||||
uchar *cp;
|
||||
|
@ -3200,7 +3189,7 @@ int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt)
|
|||
}
|
||||
result->methods= mysql->methods;
|
||||
stmt->result_buffered= 1;
|
||||
if (!(result->data= read_binary_rows(stmt)))
|
||||
if (!(result->data= (*stmt->mysql->methods->read_binary_rows)(stmt)))
|
||||
{
|
||||
my_free((gptr) result,MYF(0));
|
||||
DBUG_RETURN(0);
|
||||
|
@ -3504,7 +3493,18 @@ my_bool STDCALL mysql_next_result(MYSQL *mysql)
|
|||
mysql->affected_rows= ~(my_ulonglong) 0;
|
||||
|
||||
if (mysql->last_used_con->server_status & SERVER_MORE_RESULTS_EXISTS)
|
||||
DBUG_RETURN(mysql_read_query_result(mysql));
|
||||
DBUG_RETURN((*mysql->methods->read_query_result)(mysql));
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql)
|
||||
{
|
||||
return (*mysql->methods->use_result)(mysql);
|
||||
}
|
||||
|
||||
my_bool STDCALL mysql_read_query_result(MYSQL *mysql)
|
||||
{
|
||||
return (*mysql->methods->read_query_result)(mysql);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ MYSQLSHAREdir = $(pkgdatadir)
|
|||
MYSQLBASEdir= $(prefix)
|
||||
|
||||
DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \
|
||||
-DNO_EMBEDDED_ACCESS_CHECKS \
|
||||
-DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \
|
||||
-DDATADIR="\"$(MYSQLDATAdir)\"" \
|
||||
-DSHAREDIR="\"$(MYSQLSHAREdir)\""
|
||||
|
|
|
@ -26,4 +26,7 @@ C_MODE_START
|
|||
extern void lib_connection_phase(NET *net, int phase);
|
||||
extern void init_embedded_mysql(MYSQL *mysql, int client_flag, char *db);
|
||||
extern void *create_embedded_thd(int client_flag, char *db);
|
||||
extern MYSQL_METHODS embedded_methods;
|
||||
void free_old_query(MYSQL *mysql);
|
||||
extern my_bool server_inited;
|
||||
C_MODE_END
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
static int fake_argc= 1;
|
||||
static char *fake_argv[]= {(char *)"", 0};
|
||||
static const char *fake_groups[] = { "server", "embedded", 0 };
|
||||
static char inited, org_my_init_done;
|
||||
|
||||
#if defined (__WIN__)
|
||||
#include "../sql/mysqld.cpp"
|
||||
|
@ -34,33 +33,32 @@ static char inited, org_my_init_done;
|
|||
#include "../sql/mysqld.cc"
|
||||
#endif
|
||||
|
||||
#define SCRAMBLE_LENGTH 8
|
||||
int check_user(THD *thd, enum enum_server_command command,
|
||||
const char *passwd, uint passwd_len, const char *db,
|
||||
bool check_count);
|
||||
C_MODE_START
|
||||
#include <mysql.h>
|
||||
#undef ER
|
||||
#include "errmsg.h"
|
||||
#include <sql_common.h>
|
||||
|
||||
static int check_connections1(THD * thd);
|
||||
static int check_connections2(THD * thd);
|
||||
static bool check_user(THD *thd, enum_server_command command,
|
||||
const char *user, const char *passwd, const char *db,
|
||||
bool check_count);
|
||||
char * get_mysql_home(){ return mysql_home;};
|
||||
char * get_mysql_real_data_home(){ return mysql_real_data_home;};
|
||||
static my_bool org_my_init_done;
|
||||
my_bool server_inited;
|
||||
|
||||
my_bool
|
||||
static my_bool STDCALL
|
||||
emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||
const char *header, ulong header_length,
|
||||
const char *arg, ulong arg_length, my_bool skip_check)
|
||||
{
|
||||
my_bool result= 1;
|
||||
THD *thd=(THD *) mysql->thd;
|
||||
NET *net= &mysql->net;
|
||||
|
||||
/* Check that we are calling the client functions in right order */
|
||||
if (mysql->status != MYSQL_STATUS_READY)
|
||||
{
|
||||
strmov(thd->net.last_error,
|
||||
ER(thd->net.last_errno=CR_COMMANDS_OUT_OF_SYNC));
|
||||
strmov(net->last_error,
|
||||
ER(net->last_errno=CR_COMMANDS_OUT_OF_SYNC));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -70,23 +68,194 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
|||
mysql->field_count= 0;
|
||||
|
||||
thd->store_globals(); // Fix if more than one connect
|
||||
/*
|
||||
We have to call free_old_query before we start to fill mysql->fields
|
||||
for new query. In the case of embedded server we collect field data
|
||||
during query execution (not during data retrieval as it is in remote
|
||||
client). So we have to call free_old_query here
|
||||
*/
|
||||
free_old_query(mysql);
|
||||
|
||||
thd->extra_length= arg_length;
|
||||
thd->extra_data= (char *)arg;
|
||||
if (header)
|
||||
{
|
||||
arg= header;
|
||||
arg_length= header_length;
|
||||
}
|
||||
|
||||
result= dispatch_command(command, thd, (char *) arg, arg_length + 1);
|
||||
|
||||
if (!skip_check)
|
||||
result= thd->net.last_errno ? -1 : 0;
|
||||
|
||||
if ((mysql->net.last_errno= thd->net.last_errno))
|
||||
if ((net->last_errno= thd->net.last_errno))
|
||||
{
|
||||
memcpy(mysql->net.last_error, thd->net.last_error,
|
||||
sizeof(mysql->net.last_error));
|
||||
memcpy(mysql->net.sqlstate, thd->net.sqlstate,
|
||||
sizeof(mysql->net.sqlstate));
|
||||
memcpy(net->last_error, thd->net.last_error, sizeof(net->last_error));
|
||||
memcpy(net->sqlstate, thd->net.sqlstate, sizeof(net->sqlstate));
|
||||
}
|
||||
else
|
||||
{
|
||||
net->last_error[0]= 0;
|
||||
strmov(net->sqlstate, not_error_sqlstate);
|
||||
}
|
||||
mysql->warning_count= ((THD*)mysql->thd)->total_warn_count;
|
||||
return result;
|
||||
}
|
||||
|
||||
static MYSQL_DATA * STDCALL
|
||||
emb_read_rows(MYSQL *mysql, MYSQL_FIELD *mysql_fields __attribute__((unused)),
|
||||
unsigned int fields __attribute__((unused)))
|
||||
{
|
||||
MYSQL_DATA *result= ((THD*)mysql->thd)->data;
|
||||
if (!result)
|
||||
{
|
||||
if (!(result=(MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
{
|
||||
NET *net = &mysql->net;
|
||||
net->last_errno=CR_OUT_OF_MEMORY;
|
||||
strmov(net->sqlstate, unknown_sqlstate);
|
||||
strmov(net->last_error,ER(net->last_errno));
|
||||
return NULL;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
*result->prev_ptr= NULL;
|
||||
((THD*)mysql->thd)->data= NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
static MYSQL_FIELD * STDCALL emb_list_fields(MYSQL *mysql)
|
||||
{
|
||||
return mysql->fields;
|
||||
}
|
||||
|
||||
static my_bool STDCALL emb_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt)
|
||||
{
|
||||
THD *thd= (THD*)mysql->thd;
|
||||
if (mysql->net.last_errno)
|
||||
return 1;
|
||||
stmt->stmt_id= thd->client_stmt_id;
|
||||
stmt->param_count= thd->client_param_count;
|
||||
stmt->field_count= mysql->field_count;
|
||||
|
||||
if (stmt->field_count != 0)
|
||||
{
|
||||
if (!(mysql->server_status & SERVER_STATUS_AUTOCOMMIT))
|
||||
mysql->server_status|= SERVER_STATUS_IN_TRANS;
|
||||
|
||||
stmt->fields= mysql->fields;
|
||||
stmt->mem_root= mysql->field_alloc;
|
||||
mysql->fields= NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Get column lengths of the current row
|
||||
If one uses mysql_use_result, res->lengths contains the length information,
|
||||
else the lengths are calculated from the offset between pointers.
|
||||
**************************************************************************/
|
||||
|
||||
static void STDCALL emb_fetch_lengths(ulong *to, MYSQL_ROW column, unsigned int field_count)
|
||||
{
|
||||
MYSQL_ROW end;
|
||||
|
||||
for (end=column + field_count; column != end ; column++,to++)
|
||||
*to= *column ? *(uint *)((*column) - sizeof(uint)) : 0;
|
||||
}
|
||||
|
||||
static my_bool STDCALL emb_mysql_read_query_result(MYSQL *mysql)
|
||||
{
|
||||
if (mysql->net.last_errno)
|
||||
return -1;
|
||||
|
||||
if (mysql->field_count)
|
||||
mysql->status=MYSQL_STATUS_GET_RESULT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int STDCALL emb_stmt_execute(MYSQL_STMT *stmt)
|
||||
{
|
||||
DBUG_ENTER("emb_stmt_execute");
|
||||
THD *thd= (THD*)stmt->mysql->thd;
|
||||
thd->client_param_count= stmt->param_count;
|
||||
thd->client_params= stmt->params;
|
||||
if (thd->data)
|
||||
{
|
||||
free_rows(thd->data);
|
||||
thd->data= 0;
|
||||
}
|
||||
if (emb_advanced_command(stmt->mysql, COM_EXECUTE,0,0,
|
||||
(const char*)&stmt->stmt_id,sizeof(stmt->stmt_id),1)
|
||||
|| emb_mysql_read_query_result(stmt->mysql))
|
||||
{
|
||||
NET *net= &stmt->mysql->net;
|
||||
set_stmt_errmsg(stmt, net->last_error, net->last_errno, net->sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
MYSQL_DATA *emb_read_binary_rows(MYSQL_STMT *stmt)
|
||||
{
|
||||
return emb_read_rows(stmt->mysql, 0, 0);
|
||||
}
|
||||
|
||||
int STDCALL emb_unbuffered_fetch(MYSQL *mysql, char **row)
|
||||
{
|
||||
MYSQL_DATA *data= ((THD*)mysql->thd)->data;
|
||||
if (!data || !data->data)
|
||||
{
|
||||
*row= NULL;
|
||||
if (data)
|
||||
{
|
||||
free_rows(data);
|
||||
((THD*)mysql->thd)->data= NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*row= (char *)data->data->data;
|
||||
data->data= data->data->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void STDCALL emb_free_embedded_thd(MYSQL *mysql)
|
||||
{
|
||||
THD *thd= (THD*)mysql->thd;
|
||||
if (thd->data)
|
||||
free_rows(thd->data);
|
||||
thread_count--;
|
||||
delete thd;
|
||||
}
|
||||
|
||||
static const char * STDCALL emb_read_statistic(MYSQL *mysql)
|
||||
{
|
||||
THD *thd= (THD*)mysql->thd;
|
||||
return thd->net.last_error;
|
||||
}
|
||||
|
||||
MYSQL_METHODS embedded_methods=
|
||||
{
|
||||
emb_mysql_read_query_result,
|
||||
emb_advanced_command,
|
||||
emb_read_rows,
|
||||
mysql_store_result,
|
||||
emb_fetch_lengths,
|
||||
emb_list_fields,
|
||||
emb_read_prepare_result,
|
||||
emb_stmt_execute,
|
||||
emb_read_binary_rows,
|
||||
emb_unbuffered_fetch,
|
||||
emb_free_embedded_thd,
|
||||
emb_read_statistic
|
||||
};
|
||||
|
||||
C_MODE_END
|
||||
|
||||
void THD::clear_error()
|
||||
|
@ -96,34 +265,6 @@ void THD::clear_error()
|
|||
net.report_error= 0;
|
||||
}
|
||||
|
||||
static bool check_user(THD *thd,enum_server_command command, const char *user,
|
||||
const char *passwd, const char *db, bool check_count)
|
||||
{
|
||||
thd->db=0;
|
||||
|
||||
if (!(thd->user = my_strdup(user, MYF(0))))
|
||||
{
|
||||
send_error(thd,ER_OUT_OF_RESOURCES);
|
||||
return 1;
|
||||
}
|
||||
thd->master_access= ~0L; // No user checking
|
||||
thd->priv_user= thd->user;
|
||||
mysql_log.write(thd,command,
|
||||
(thd->priv_user == thd->user ?
|
||||
(char*) "%s@%s on %s" :
|
||||
(char*) "%s@%s as anonymous on %s"),
|
||||
user,
|
||||
thd->host_or_ip,
|
||||
db ? db : (char*) "");
|
||||
thd->db_access=0;
|
||||
if (db && db[0])
|
||||
return test(mysql_change_db(thd,db));
|
||||
else
|
||||
send_ok(thd); // Ready to handle questions
|
||||
return 0; // ok
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Make a copy of array and the strings array points to
|
||||
*/
|
||||
|
@ -182,9 +323,9 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups)
|
|||
|
||||
|
||||
/* Only call MY_INIT() if it hasn't been called before */
|
||||
if (!inited)
|
||||
if (!server_inited)
|
||||
{
|
||||
inited=1;
|
||||
server_inited=1;
|
||||
org_my_init_done=my_init_done;
|
||||
}
|
||||
if (!org_my_init_done)
|
||||
|
@ -218,7 +359,7 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups)
|
|||
|
||||
error_handler_hook = my_message_sql;
|
||||
|
||||
opt_noacl = 1; // No permissions
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
if (acl_init((THD *)0, opt_noacl))
|
||||
{
|
||||
mysql_server_end();
|
||||
|
@ -226,11 +367,16 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups)
|
|||
}
|
||||
if (!opt_noacl)
|
||||
(void) grant_init((THD *)0);
|
||||
|
||||
#endif
|
||||
|
||||
init_max_user_conn();
|
||||
init_update_queries();
|
||||
|
||||
#ifdef HAVE_DLOPEN
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
if (!opt_noacl)
|
||||
#endif
|
||||
udf_init();
|
||||
#endif
|
||||
|
||||
|
@ -264,6 +410,15 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups)
|
|||
sql_print_error("Warning: Can't create thread to manage maintenance");
|
||||
}
|
||||
|
||||
if (opt_init_file)
|
||||
{
|
||||
if (read_init_file(opt_init_file))
|
||||
{
|
||||
mysql_server_end();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Update mysqld variables from client variables if set
|
||||
The client variables are set also by get_one_option() in mysqld.cc
|
||||
|
@ -297,6 +452,7 @@ void init_embedded_mysql(MYSQL *mysql, int client_flag, char *db)
|
|||
{
|
||||
THD *thd = (THD *)mysql->thd;
|
||||
thd->mysql= mysql;
|
||||
mysql->server_version= server_version;
|
||||
}
|
||||
|
||||
void *create_embedded_thd(int client_flag, char *db)
|
||||
|
@ -323,48 +479,95 @@ void *create_embedded_thd(int client_flag, char *db)
|
|||
|
||||
thd->db= db;
|
||||
thd->db_length= db ? strip_sp(db) : 0;
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
thd->db_access= DB_ACLS;
|
||||
thd->master_access= ~NO_ACCESS;
|
||||
#endif
|
||||
thd->net.query_cache_query= 0;
|
||||
|
||||
thd->data= 0;
|
||||
|
||||
thread_count++;
|
||||
return thd;
|
||||
}
|
||||
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
int check_embedded_connection(MYSQL *mysql)
|
||||
{
|
||||
THD *thd= (THD*)mysql->thd;
|
||||
int result;
|
||||
char scramble_buff[SCRAMBLE_LENGTH];
|
||||
int passwd_len;
|
||||
|
||||
thd->host= mysql->options.client_ip ?
|
||||
mysql->options.client_ip : (char*)my_localhost;
|
||||
thd->ip= thd->host;
|
||||
thd->host_or_ip= thd->host;
|
||||
|
||||
if (acl_check_host(thd->host,thd->ip))
|
||||
{
|
||||
result= ER_HOST_NOT_PRIVILEGED;
|
||||
goto err;
|
||||
}
|
||||
|
||||
thd->user= mysql->user;
|
||||
if (mysql->passwd && mysql->passwd[0])
|
||||
{
|
||||
memset(thd->scramble, 55, SCRAMBLE_LENGTH); // dummy scramble
|
||||
thd->scramble[SCRAMBLE_LENGTH]= 0;
|
||||
scramble(scramble_buff, thd->scramble, mysql->passwd);
|
||||
passwd_len= SCRAMBLE_LENGTH;
|
||||
}
|
||||
else
|
||||
passwd_len= 0;
|
||||
|
||||
if((result= check_user(thd, COM_CONNECT,
|
||||
scramble_buff, passwd_len, thd->db, true)))
|
||||
goto err;
|
||||
|
||||
return 0;
|
||||
err:
|
||||
{
|
||||
NET *net= &mysql->net;
|
||||
memcpy(net->last_error, thd->net.last_error, sizeof(net->last_error));
|
||||
memcpy(net->sqlstate, thd->net.sqlstate, sizeof(net->sqlstate));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
C_MODE_END
|
||||
|
||||
bool Protocol::send_fields(List<Item> *list, uint flag)
|
||||
{
|
||||
List_iterator_fast<Item> it(*list);
|
||||
Item *item;
|
||||
MYSQL_FIELD *field, *client_field;
|
||||
MYSQL_FIELD *client_field;
|
||||
MYSQL *mysql= thd->mysql;
|
||||
MEM_ROOT *field_alloc;
|
||||
|
||||
DBUG_ENTER("send_fields");
|
||||
|
||||
if (!mysql) // bootstrap file handling
|
||||
DBUG_RETURN(0);
|
||||
|
||||
field_count= list->elements;
|
||||
if (!(mysql->result=(MYSQL_RES*) my_malloc(sizeof(MYSQL_RES)+
|
||||
sizeof(ulong) * (field_count + 1),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
goto err;
|
||||
mysql->result->lengths= (ulong *)(mysql->result + 1);
|
||||
|
||||
mysql->field_count=field_count;
|
||||
alloc= &mysql->field_alloc;
|
||||
field= (MYSQL_FIELD *)alloc_root(alloc, sizeof(MYSQL_FIELD) * field_count);
|
||||
if (!field)
|
||||
field_alloc= &mysql->field_alloc;
|
||||
if (!(client_field= thd->mysql->fields=
|
||||
(MYSQL_FIELD *)alloc_root(field_alloc,
|
||||
sizeof(MYSQL_FIELD) * field_count)))
|
||||
goto err;
|
||||
|
||||
client_field= field;
|
||||
while ((item= it++))
|
||||
{
|
||||
Send_field server_field;
|
||||
item->make_field(&server_field);
|
||||
|
||||
client_field->db= strdup_root(alloc, server_field.db_name);
|
||||
client_field->table= strdup_root(alloc, server_field.table_name);
|
||||
client_field->name= strdup_root(alloc, server_field.col_name);
|
||||
client_field->org_table= strdup_root(alloc, server_field.org_table_name);
|
||||
client_field->org_name= strdup_root(alloc, server_field.org_col_name);
|
||||
client_field->db= strdup_root(field_alloc, server_field.db_name);
|
||||
client_field->table= strdup_root(field_alloc, server_field.table_name);
|
||||
client_field->name= strdup_root(field_alloc, server_field.col_name);
|
||||
client_field->org_table= strdup_root(field_alloc, server_field.org_table_name);
|
||||
client_field->org_name= strdup_root(field_alloc, server_field.org_col_name);
|
||||
client_field->length= server_field.length;
|
||||
client_field->type= server_field.type;
|
||||
client_field->flags= server_field.flags;
|
||||
|
@ -385,31 +588,16 @@ bool Protocol::send_fields(List<Item> *list, uint flag)
|
|||
String tmp(buff, sizeof(buff), default_charset_info), *res;
|
||||
|
||||
if (!(res=item->val_str(&tmp)))
|
||||
client_field->def= strdup_root(alloc, "");
|
||||
client_field->def= strdup_root(field_alloc, "");
|
||||
else
|
||||
client_field->def= strdup_root(alloc, tmp.ptr());
|
||||
client_field->def= strdup_root(field_alloc, tmp.ptr());
|
||||
}
|
||||
else
|
||||
client_field->def=0;
|
||||
client_field->max_length= 0;
|
||||
++client_field;
|
||||
}
|
||||
mysql->result->fields = field;
|
||||
|
||||
if (!(mysql->result->data= (MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
goto err;
|
||||
|
||||
init_alloc_root(&mysql->result->data->alloc,8192,0); /* Assume rowlength < 8192 */
|
||||
mysql->result->data->alloc.min_malloc=sizeof(MYSQL_ROWS);
|
||||
mysql->result->data->rows=0;
|
||||
mysql->result->data->fields=field_count;
|
||||
mysql->result->field_count=field_count;
|
||||
mysql->result->data->prev_ptr= &mysql->result->data->data;
|
||||
|
||||
mysql->result->field_alloc= mysql->field_alloc;
|
||||
mysql->result->current_field=0;
|
||||
mysql->result->current_row=0;
|
||||
thd->mysql->field_count= field_count;
|
||||
|
||||
DBUG_RETURN(prepare_for_send(list));
|
||||
err:
|
||||
|
@ -424,21 +612,60 @@ bool Protocol::send_records_num(List<Item> *list, ulonglong records)
|
|||
|
||||
bool Protocol::write()
|
||||
{
|
||||
if (!thd->mysql) // bootstrap file handling
|
||||
return false;
|
||||
|
||||
*next_field= 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Protocol_prep::write()
|
||||
{
|
||||
MYSQL_ROWS *cur;
|
||||
MYSQL_DATA *data= thd->data;
|
||||
|
||||
if (!data)
|
||||
{
|
||||
if (!(data= (MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
return true;
|
||||
|
||||
alloc= &data->alloc;
|
||||
init_alloc_root(alloc,8192,0); /* Assume rowlength < 8192 */
|
||||
alloc->min_malloc=sizeof(MYSQL_ROWS);
|
||||
data->rows=0;
|
||||
data->fields=field_count;
|
||||
data->prev_ptr= &data->data;
|
||||
thd->data= data;
|
||||
}
|
||||
|
||||
data->rows++;
|
||||
if (!(cur= (MYSQL_ROWS *)alloc_root(alloc, sizeof(MYSQL_ROWS)+packet->length())))
|
||||
{
|
||||
my_error(ER_OUT_OF_RESOURCES,MYF(0));
|
||||
return true;
|
||||
}
|
||||
cur->data= (MYSQL_ROW)(((char *)cur) + sizeof(MYSQL_ROWS));
|
||||
memcpy(cur->data, packet->ptr()+1, packet->length()-1);
|
||||
|
||||
*data->prev_ptr= cur;
|
||||
data->prev_ptr= &cur->next;
|
||||
cur->next= 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
send_ok(THD *thd,ha_rows affected_rows,ulonglong id,const char *message)
|
||||
{
|
||||
DBUG_ENTER("send_ok");
|
||||
MYSQL *mysql= current_thd->mysql;
|
||||
if (!mysql) // bootstrap file handling
|
||||
DBUG_VOID_RETURN;
|
||||
mysql->affected_rows= affected_rows;
|
||||
mysql->insert_id= id;
|
||||
if (message)
|
||||
{
|
||||
strmake(thd->net.last_error, message, sizeof(thd->net.last_error)-1);
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -449,13 +676,27 @@ send_eof(THD *thd, bool no_flush)
|
|||
|
||||
void Protocol_simple::prepare_for_resend()
|
||||
{
|
||||
MYSQL_ROWS *cur;
|
||||
MYSQL_DATA *result= thd->mysql->result->data;
|
||||
MYSQL_ROWS *cur;
|
||||
MYSQL_DATA *data= thd->data;
|
||||
|
||||
DBUG_ENTER("send_data");
|
||||
|
||||
alloc= &result->alloc;
|
||||
result->rows++;
|
||||
if (!data)
|
||||
{
|
||||
if (!(data= (MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
goto err;
|
||||
|
||||
alloc= &data->alloc;
|
||||
init_alloc_root(alloc,8192,0); /* Assume rowlength < 8192 */
|
||||
alloc->min_malloc=sizeof(MYSQL_ROWS);
|
||||
data->rows=0;
|
||||
data->fields=field_count;
|
||||
data->prev_ptr= &data->data;
|
||||
thd->data= data;
|
||||
}
|
||||
|
||||
data->rows++;
|
||||
if (!(cur= (MYSQL_ROWS *)alloc_root(alloc, sizeof(MYSQL_ROWS)+(field_count + 1) * sizeof(char *))))
|
||||
{
|
||||
my_error(ER_OUT_OF_RESOURCES,MYF(0));
|
||||
|
@ -463,11 +704,11 @@ void Protocol_simple::prepare_for_resend()
|
|||
}
|
||||
cur->data= (MYSQL_ROW)(((char *)cur) + sizeof(MYSQL_ROWS));
|
||||
|
||||
*result->prev_ptr= cur;
|
||||
result->prev_ptr= &cur->next;
|
||||
*data->prev_ptr= cur;
|
||||
data->prev_ptr= &cur->next;
|
||||
next_field=cur->data;
|
||||
next_mysql_field= thd->mysql->result->fields;
|
||||
|
||||
next_mysql_field= thd->mysql->fields;
|
||||
err:
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -480,15 +721,20 @@ bool Protocol_simple::store_null()
|
|||
|
||||
bool Protocol::net_store_data(const char *from, uint length)
|
||||
{
|
||||
if (!(*next_field=alloc_root(alloc, length + 1)))
|
||||
char *field_buf;
|
||||
if (!thd->mysql) // bootstrap file handling
|
||||
return false;
|
||||
|
||||
if (!(field_buf=alloc_root(alloc, length + sizeof(uint) + 1)))
|
||||
return true;
|
||||
*(uint *)field_buf= length;
|
||||
*next_field= field_buf + sizeof(uint);
|
||||
memcpy(*next_field, from, length);
|
||||
(*next_field)[length]= 0;
|
||||
if (next_mysql_field->max_length < length)
|
||||
next_mysql_field->max_length=length;
|
||||
++next_field;
|
||||
++next_mysql_field;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -509,3 +755,91 @@ bool Protocol::convert_str(const char *from, uint length)
|
|||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool setup_params_data(st_prep_stmt *stmt)
|
||||
{
|
||||
THD *thd= stmt->thd;
|
||||
List<Item> ¶ms= thd->lex.param_list;
|
||||
List_iterator<Item> param_iterator(params);
|
||||
Item_param *param;
|
||||
ulong param_no= 0;
|
||||
MYSQL_BIND *client_param= thd->client_params;
|
||||
|
||||
DBUG_ENTER("setup_params_data");
|
||||
|
||||
for (;(param= (Item_param *)param_iterator++); client_param++)
|
||||
{
|
||||
setup_param_functions(param, client_param->buffer_type);
|
||||
if (!param->long_data_supplied)
|
||||
{
|
||||
if (*client_param->is_null)
|
||||
param->maybe_null= param->null_value= 1;
|
||||
else
|
||||
{
|
||||
uchar *buff= (uchar*)client_param->buffer;
|
||||
param->maybe_null= param->null_value= 0;
|
||||
param->setup_param_func(param,&buff,
|
||||
client_param->length ?
|
||||
*client_param->length :
|
||||
client_param->buffer_length);
|
||||
}
|
||||
}
|
||||
param_no++;
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
bool setup_params_data_withlog(st_prep_stmt *stmt)
|
||||
{
|
||||
THD *thd= stmt->thd;
|
||||
List<Item> ¶ms= thd->lex.param_list;
|
||||
List_iterator<Item> param_iterator(params);
|
||||
Item_param *param;
|
||||
MYSQL_BIND *client_param= thd->client_params;
|
||||
|
||||
DBUG_ENTER("setup_params_data");
|
||||
|
||||
String str, *res, *query= new String(stmt->query->alloced_length());
|
||||
query->copy(*stmt->query);
|
||||
|
||||
ulong param_no= 0;
|
||||
uint32 length= 0;
|
||||
|
||||
for (;(param= (Item_param *)param_iterator++); client_param++)
|
||||
{
|
||||
setup_param_functions(param, client_param->buffer_type);
|
||||
if (param->long_data_supplied)
|
||||
res= param->query_val_str(&str);
|
||||
|
||||
else
|
||||
{
|
||||
if (*client_param->is_null)
|
||||
{
|
||||
param->maybe_null= param->null_value= 1;
|
||||
res= &my_null_string;
|
||||
}
|
||||
else
|
||||
{
|
||||
uchar *buff= (uchar*)client_param->buffer;
|
||||
param->maybe_null= param->null_value= 0;
|
||||
param->setup_param_func(param,&buff,
|
||||
client_param->length ?
|
||||
*client_param->length :
|
||||
client_param->buffer_length);
|
||||
res= param->query_val_str(&str);
|
||||
}
|
||||
}
|
||||
if (query->replace(param->pos_in_query+length, 1, *res))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
length+= res->length()-1;
|
||||
param_no++;
|
||||
}
|
||||
|
||||
if (alloc_query(stmt->thd, (char *)query->ptr(), query->length()+1))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
query->free();
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <sys/stat.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include "client_settings.h"
|
||||
#ifdef HAVE_PWD_H
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
|
@ -46,8 +47,6 @@
|
|||
#define INADDR_NONE -1
|
||||
#endif
|
||||
|
||||
#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | CLIENT_PROTOCOL_41)
|
||||
|
||||
#if defined(MSDOS) || defined(__WIN__)
|
||||
#define ERRNO WSAGetLastError()
|
||||
#define perror(A)
|
||||
|
@ -58,22 +57,6 @@
|
|||
#define closesocket(A) close(A)
|
||||
#endif
|
||||
|
||||
void free_old_query(MYSQL *mysql);
|
||||
my_bool
|
||||
emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||
const char *header, ulong header_length,
|
||||
const char *arg, ulong arg_length, my_bool skip_check);
|
||||
|
||||
/* From client.c */
|
||||
void mysql_read_default_options(struct st_mysql_options *options,
|
||||
const char *filename,const char *group);
|
||||
MYSQL * STDCALL
|
||||
cli_mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
||||
const char *passwd, const char *db,
|
||||
uint port, const char *unix_socket,ulong client_flag);
|
||||
|
||||
void STDCALL cli_mysql_close(MYSQL *mysql);
|
||||
|
||||
#ifdef HAVE_GETPWUID
|
||||
struct passwd *getpwuid(uid_t);
|
||||
char* getlogin(void);
|
||||
|
@ -163,58 +146,35 @@ static inline int mysql_init_charset(MYSQL *mysql)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Get column lengths of the current row
|
||||
If one uses mysql_use_result, res->lengths contains the length information,
|
||||
else the lengths are calculated from the offset between pointers.
|
||||
**************************************************************************/
|
||||
|
||||
static void emb_fetch_lengths(ulong *to, MYSQL_ROW column, uint field_count)
|
||||
{
|
||||
MYSQL_ROW end;
|
||||
|
||||
for (end=column + field_count; column != end ; column++,to++)
|
||||
{
|
||||
*to= *column ? strlen(*column) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** Note that the mysql argument must be initialized with mysql_init()
|
||||
** before calling mysql_real_connect !
|
||||
*/
|
||||
|
||||
static my_bool STDCALL emb_mysql_read_query_result(MYSQL *mysql);
|
||||
static MYSQL_RES * STDCALL emb_mysql_store_result(MYSQL *mysql);
|
||||
static MYSQL_RES * STDCALL emb_mysql_use_result(MYSQL *mysql);
|
||||
|
||||
static MYSQL_METHODS embedded_methods=
|
||||
{
|
||||
emb_mysql_read_query_result,
|
||||
emb_advanced_command,
|
||||
emb_mysql_store_result,
|
||||
emb_mysql_use_result,
|
||||
emb_fetch_lengths
|
||||
};
|
||||
int check_embedded_connection(MYSQL *mysql);
|
||||
|
||||
MYSQL * STDCALL
|
||||
mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
||||
const char *passwd, const char *db,
|
||||
uint port, const char *unix_socket,ulong client_flag)
|
||||
{
|
||||
char *db_name;
|
||||
char *db_name;
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
char name_buff[USERNAME_LENGTH];
|
||||
#endif
|
||||
DBUG_ENTER("mysql_real_connect");
|
||||
DBUG_PRINT("enter",("host: %s db: %s user: %s",
|
||||
host ? host : "(Null)",
|
||||
db ? db : "(Null)",
|
||||
user ? user : "(Null)"));
|
||||
|
||||
if (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION)
|
||||
cli_mysql_real_connect(mysql, host, user,
|
||||
passwd, db, port, unix_socket, client_flag);
|
||||
if ((mysql->options.methods_to_use == MYSQL_OPT_GUESS_CONNECTION) &&
|
||||
host && strcmp(host,LOCAL_HOST))
|
||||
#if defined(EMBEDDED_LIBRARY) || !defined(DBUG_OFF)
|
||||
if (!server_inited)
|
||||
{
|
||||
mysql->net.last_errno=CR_MYSQL_SERVER_INIT_MISSED;
|
||||
strmov(mysql->net.last_error,ER(mysql->net.last_errno));
|
||||
goto error;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION ||
|
||||
(mysql->options.methods_to_use == MYSQL_OPT_GUESS_CONNECTION &&
|
||||
host && strcmp(host,LOCAL_HOST)))
|
||||
cli_mysql_real_connect(mysql, host, user,
|
||||
passwd, db, port, unix_socket, client_flag);
|
||||
|
||||
|
@ -235,6 +195,29 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
|||
if (!db || !db[0])
|
||||
db=mysql->options.db;
|
||||
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
if (!user || !user[0])
|
||||
user=mysql->options.user;
|
||||
|
||||
if (!passwd)
|
||||
{
|
||||
passwd=mysql->options.password;
|
||||
#if !defined(DONT_USE_MYSQL_PWD)
|
||||
if (!passwd)
|
||||
passwd=getenv("MYSQL_PWD"); /* get it from environment */
|
||||
#endif
|
||||
}
|
||||
if (!user || !user[0])
|
||||
{
|
||||
read_user_name(name_buff);
|
||||
if (!name_buff[0])
|
||||
user= name_buff;
|
||||
}
|
||||
|
||||
mysql->user=my_strdup(user,MYF(0));
|
||||
mysql->passwd= passwd ? my_strdup(passwd,MYF(0)) : NULL;
|
||||
#endif /*!NO_EMBEDDED_ACCESS_CHECKS*/
|
||||
|
||||
port=0;
|
||||
unix_socket=0;
|
||||
db_name = db ? my_strdup(db,MYF(MY_WME)) : NULL;
|
||||
|
@ -243,6 +226,11 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
|||
|
||||
init_embedded_mysql(mysql, client_flag, db_name);
|
||||
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
if (check_embedded_connection(mysql))
|
||||
goto error;
|
||||
#endif
|
||||
|
||||
if (mysql_init_charset(mysql))
|
||||
goto error;
|
||||
|
||||
|
@ -266,7 +254,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
|||
goto error;
|
||||
if (mysql->fields)
|
||||
{
|
||||
if (!(res= mysql_use_result(mysql)))
|
||||
if (!(res= (*mysql->methods->use_result)(mysql)))
|
||||
goto error;
|
||||
mysql_free_result(res);
|
||||
}
|
||||
|
@ -277,7 +265,8 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
|||
DBUG_RETURN(mysql);
|
||||
|
||||
error:
|
||||
DBUG_PRINT("error",("message: %u (%s)",mysql->net.last_errno,mysql->net.last_error));
|
||||
DBUG_PRINT("error",("message: %u (%s)", mysql->net.last_errno,
|
||||
mysql->net.last_error));
|
||||
{
|
||||
/* Free alloced memory */
|
||||
my_bool free_me=mysql->free_me;
|
||||
|
@ -289,105 +278,3 @@ error:
|
|||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
** Send a QUIT to the server and close the connection
|
||||
** If handle is alloced by mysql connect free it.
|
||||
*************************************************************************/
|
||||
|
||||
void STDCALL mysql_close(MYSQL *mysql)
|
||||
{
|
||||
DBUG_ENTER("mysql_close");
|
||||
if (mysql->methods != &embedded_methods)
|
||||
{
|
||||
cli_mysql_close(mysql);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
if (mysql) /* Some simple safety */
|
||||
{
|
||||
my_free(mysql->options.user,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.host,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.password,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.unix_socket,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.db,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.my_cnf_file,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.my_cnf_group,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.charset_dir,MYF(MY_ALLOW_ZERO_PTR));
|
||||
my_free(mysql->options.charset_name,MYF(MY_ALLOW_ZERO_PTR));
|
||||
if (mysql->options.init_commands)
|
||||
{
|
||||
DYNAMIC_ARRAY *init_commands= mysql->options.init_commands;
|
||||
char **ptr= (char**)init_commands->buffer;
|
||||
char **end= ptr + init_commands->elements;
|
||||
for (; ptr<end; ptr++)
|
||||
my_free(*ptr,MYF(MY_WME));
|
||||
delete_dynamic(init_commands);
|
||||
my_free((char*)init_commands,MYF(MY_WME));
|
||||
}
|
||||
/* Clear pointers for better safety */
|
||||
bzero((char*) &mysql->options,sizeof(mysql->options));
|
||||
#ifdef HAVE_OPENSSL
|
||||
((VioConnectorFd*)(mysql->connector_fd))->delete();
|
||||
mysql->connector_fd = 0;
|
||||
#endif /* HAVE_OPENSSL */
|
||||
if (mysql->free_me)
|
||||
my_free((gptr) mysql,MYF(0));
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
static my_bool STDCALL emb_mysql_read_query_result(MYSQL *mysql)
|
||||
{
|
||||
if (mysql->net.last_errno)
|
||||
return -1;
|
||||
|
||||
if (mysql->field_count)
|
||||
{
|
||||
mysql->status=MYSQL_STATUS_GET_RESULT;
|
||||
mysql->affected_rows= mysql->result->row_count= mysql->result->data->rows;
|
||||
mysql->result->data_cursor= mysql->result->data->data;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
** Alloc result struct for buffered results. All rows are read to buffer.
|
||||
** mysql_data_seek may be used.
|
||||
**************************************************************************/
|
||||
static MYSQL_RES * STDCALL emb_mysql_store_result(MYSQL *mysql)
|
||||
{
|
||||
MYSQL_RES *result= mysql->result;
|
||||
if (!result)
|
||||
return 0;
|
||||
|
||||
result->methods= mysql->methods;
|
||||
mysql->result= NULL;
|
||||
*result->data->prev_ptr= 0;
|
||||
result->eof= 1;
|
||||
result->lengths= (ulong*)(result + 1);
|
||||
mysql->affected_rows= result->row_count= result->data->rows;
|
||||
result->data_cursor= result->data->data;
|
||||
|
||||
mysql->status=MYSQL_STATUS_READY; /* server is ready */
|
||||
return result;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
** Alloc struct for use with unbuffered reads. Data is fetched by domand
|
||||
** when calling to mysql_fetch_row.
|
||||
** mysql_data_seek is a noop.
|
||||
**
|
||||
** No other queries may be specified with the same MYSQL handle.
|
||||
** There shouldn't be much processing per row because mysql server shouldn't
|
||||
** have to wait for the client (and will not wait more than 30 sec/packet).
|
||||
**************************************************************************/
|
||||
|
||||
static MYSQL_RES * STDCALL emb_mysql_use_result(MYSQL *mysql)
|
||||
{
|
||||
DBUG_ENTER("mysql_use_result");
|
||||
if (mysql->options.separate_thread)
|
||||
DBUG_RETURN(0);
|
||||
|
||||
DBUG_RETURN(emb_mysql_store_result(mysql));
|
||||
}
|
||||
|
|
|
@ -130,7 +130,11 @@ int main(int argc,char *argv[])
|
|||
if (subkeys >= 0)
|
||||
weight=*(float*)&subkeys;
|
||||
|
||||
#ifdef HAVE_SNPRINTF
|
||||
snprintf(buf,MAX_LEN,"%.*s",(int) keylen,info->lastkey+1);
|
||||
#else
|
||||
sprintf(buf,"%.*s",(int) keylen,info->lastkey+1);
|
||||
#endif
|
||||
my_casedn_str(default_charset_info,buf);
|
||||
total++;
|
||||
lengths[keylen]++;
|
||||
|
|
|
@ -68,6 +68,7 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
|
|||
uint keylen, r, doc_cnt;
|
||||
FT_SUPERDOC sdoc, *sptr;
|
||||
TREE_ELEMENT *selem;
|
||||
double gweight=1;
|
||||
MI_INFO *info=aio->info;
|
||||
uchar *keybuff=aio->keybuff;
|
||||
MI_KEYDEF *keyinfo=info->s->keyinfo+aio->keynr;
|
||||
|
@ -89,7 +90,7 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
|
|||
r=_mi_search(info, keyinfo, keybuff, keylen, SEARCH_FIND, key_root);
|
||||
info->update|= HA_STATE_AKTIV; /* for _mi_test_if_changed() */
|
||||
|
||||
while (!r)
|
||||
while (!r && gweight)
|
||||
{
|
||||
|
||||
if (keylen &&
|
||||
|
@ -138,6 +139,10 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
|
|||
|
||||
doc_cnt++;
|
||||
|
||||
gweight=word->weight*GWS_IN_USE;
|
||||
if (gweight < 0 || doc_cnt > 2000000)
|
||||
gweight=0;
|
||||
|
||||
if (_mi_test_if_changed(info) == 0)
|
||||
r=_mi_search_next(info, keyinfo, info->lastkey, info->lastkey_length,
|
||||
SEARCH_BIGGER, key_root);
|
||||
|
@ -145,13 +150,8 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
|
|||
r=_mi_search(info, keyinfo, info->lastkey, info->lastkey_length,
|
||||
SEARCH_BIGGER, key_root);
|
||||
}
|
||||
if (doc_cnt)
|
||||
{
|
||||
word->weight*=GWS_IN_USE;
|
||||
if (word->weight < 0)
|
||||
word->weight=0;
|
||||
word->weight=gweight;
|
||||
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
/* Functions defined in this file */
|
||||
|
||||
static int check_k_link(MI_CHECK *param, MI_INFO *info,uint nr);
|
||||
static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
|
||||
static int chk_index(MI_CHECK *param, MI_INFO *info,MI_KEYDEF *keyinfo,
|
||||
my_off_t page, uchar *buff, ha_rows *keys,
|
||||
ha_checksum *key_checksum, uint level);
|
||||
static uint isam_key_length(MI_INFO *info,MI_KEYDEF *keyinfo);
|
||||
|
@ -1498,6 +1498,7 @@ int mi_sort_index(MI_CHECK *param, register MI_INFO *info, my_string name)
|
|||
File new_file;
|
||||
my_off_t index_pos[MI_MAX_POSSIBLE_KEY];
|
||||
uint r_locks,w_locks;
|
||||
int old_lock;
|
||||
MYISAM_SHARE *share=info->s;
|
||||
MI_STATE_INFO old_state;
|
||||
DBUG_ENTER("sort_index");
|
||||
|
@ -1541,8 +1542,11 @@ int mi_sort_index(MI_CHECK *param, register MI_INFO *info, my_string name)
|
|||
flush_key_blocks(share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
|
||||
share->state.version=(ulong) time((time_t*) 0);
|
||||
old_state=share->state; /* save state if not stored */
|
||||
r_locks=share->r_locks; w_locks=share->w_locks;
|
||||
old_state= share->state; /* save state if not stored */
|
||||
r_locks= share->r_locks;
|
||||
w_locks= share->w_locks;
|
||||
old_lock= info->lock_type;
|
||||
|
||||
/* Put same locks as old file */
|
||||
share->r_locks= share->w_locks= share->tot_locks= 0;
|
||||
(void) _mi_writeinfo(info,WRITEINFO_UPDATE_KEYFILE);
|
||||
|
@ -1553,12 +1557,13 @@ int mi_sort_index(MI_CHECK *param, register MI_INFO *info, my_string name)
|
|||
MYF(0)) ||
|
||||
mi_open_keyfile(share))
|
||||
goto err2;
|
||||
info->lock_type=F_UNLCK; /* Force mi_readinfo to lock */
|
||||
info->lock_type= F_UNLCK; /* Force mi_readinfo to lock */
|
||||
_mi_readinfo(info,F_WRLCK,0); /* Will lock the table */
|
||||
info->lock_type=F_WRLCK;
|
||||
share->r_locks=r_locks; share->w_locks=w_locks;
|
||||
info->lock_type= old_lock;
|
||||
share->r_locks= r_locks;
|
||||
share->w_locks= w_locks;
|
||||
share->tot_locks= r_locks+w_locks;
|
||||
share->state=old_state; /* Restore old state */
|
||||
share->state= old_state; /* Restore old state */
|
||||
|
||||
info->state->key_file_length=param->new_file_pos;
|
||||
info->update= (short) (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED);
|
||||
|
@ -3818,6 +3823,9 @@ void update_key_parts(MI_KEYDEF *keyinfo, ulong *rec_per_key_part,
|
|||
tmp=records;
|
||||
else
|
||||
tmp= (records + (count+1)/2) / (count+1);
|
||||
/* for some weird keys (e.g. FULLTEXT) tmp can be <1 here.
|
||||
let's ensure it is not */
|
||||
set_if_bigger(tmp,1);
|
||||
if (tmp >= (ulonglong) ~(ulong) 0)
|
||||
tmp=(ulonglong) ~(ulong) 0;
|
||||
*rec_per_key_part=(ulong) tmp;
|
||||
|
|
|
@ -28,30 +28,29 @@ ha_checksum mi_checksum(MI_INFO *info, const byte *buf)
|
|||
{
|
||||
const byte *pos;
|
||||
const byte *end;
|
||||
ulong length;
|
||||
switch (rec->type) {
|
||||
case FIELD_BLOB:
|
||||
{
|
||||
ulong length=_mi_calc_blob_length(rec->length-
|
||||
length=_mi_calc_blob_length(rec->length-
|
||||
mi_portable_sizeof_char_ptr,
|
||||
buf);
|
||||
memcpy((char*) &pos, buf+rec->length- mi_portable_sizeof_char_ptr,
|
||||
sizeof(char*));
|
||||
end=pos+length;
|
||||
break;
|
||||
}
|
||||
case FIELD_VARCHAR:
|
||||
{
|
||||
uint length;
|
||||
length=uint2korr(buf);
|
||||
pos=buf+2; end=pos+length;
|
||||
pos=buf+2;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pos=buf; end=buf+rec->length;
|
||||
length=rec->length;
|
||||
pos=buf;
|
||||
break;
|
||||
}
|
||||
for ( ; pos != end ; pos++)
|
||||
crc=((crc << 8) + *((uchar*) pos)) + (crc >> (8*sizeof(ha_checksum)-8));
|
||||
crc=my_checksum(crc, pos ? pos : "", length);
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
@ -59,9 +58,5 @@ ha_checksum mi_checksum(MI_INFO *info, const byte *buf)
|
|||
|
||||
ha_checksum mi_static_checksum(MI_INFO *info, const byte *pos)
|
||||
{
|
||||
ha_checksum crc;
|
||||
const byte *end=pos+info->s->base.reclength;
|
||||
for (crc=0; pos != end; pos++)
|
||||
crc=((crc << 8) + *((uchar*) pos)) + (crc >> (8*sizeof(ha_checksum)-8));
|
||||
return crc;
|
||||
return my_checksum(0, pos, info->s->base.reclength);
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue