Merge chunk from trunk.
This commit is contained in:
commit
6a6e77eeff
@ -1351,3 +1351,5 @@ win/vs71cache.txt
|
||||
win/vs8cache.txt
|
||||
zlib/*.ds?
|
||||
zlib/*.vcproj
|
||||
scripts/make_win_src_distribution_old
|
||||
server-tools/instance-manager/net_serv.cc
|
||||
|
@ -1,55 +1,10 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
function _find_mysql_root () (
|
||||
while [ "x$PWD" != "x/" ]; do
|
||||
# Check if some directories are present
|
||||
if [ -d BUILD -a -d sql -a -d mysys ]; then
|
||||
echo "$PWD"
|
||||
return 0
|
||||
fi
|
||||
cd ..
|
||||
done
|
||||
return 1
|
||||
)
|
||||
|
||||
make -k clean || true
|
||||
/bin/rm -f */.deps/*.P config.cache
|
||||
|
||||
#! /bin/sh
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
warning_flags="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused"
|
||||
compiler_flags="-g -O3 -fno-omit-frame-pointer"
|
||||
. "$path/SETUP.sh"
|
||||
amd64_cflags="-m64 -mtune=athlon64"
|
||||
extra_flags="$amd64_cflags $max_cflags"
|
||||
c_warnings="$c_warnings"
|
||||
cxx_warnings="$cxx_warnings"
|
||||
extra_configs="$amd64_configs $debug_configs $max_configs --enable-thread-safe-client"
|
||||
|
||||
export CC CXX CFLAGS CXXFLAGS LDFLAGS LIBS
|
||||
CC="gcc"
|
||||
CXX="gcc"
|
||||
CFLAGS="$warning_flags $compiler_flags"
|
||||
CXXFLAGS=""
|
||||
LDFLAGS="-O3 -g -static-libgcc"
|
||||
LIBS=-lmtmalloc
|
||||
root=$(_find_mysql_root)
|
||||
|
||||
$root/configure \
|
||||
--prefix=/usr/local/mysql \
|
||||
--localstatedir=/usr/local/mysql/data \
|
||||
--libexecdir=/usr/local/mysql/bin \
|
||||
--with-extra-charsets=complex \
|
||||
--enable-thread-safe-client \
|
||||
--enable-local-infile \
|
||||
--with-zlib-dir=bundled \
|
||||
--with-big-tables \
|
||||
--with-readline \
|
||||
--with-archive-storage-engine \
|
||||
--with-named-curses=-lcurses \
|
||||
--with-big-tables \
|
||||
--with-innodb \
|
||||
--with-berkeley-db \
|
||||
--with-example-storage-engine \
|
||||
--with-blackhole-storage-engine \
|
||||
--with-ndbcluster \
|
||||
--with-federated-storage-engine \
|
||||
--with-csv-storage-engine \
|
||||
--with-ssl \
|
||||
--with-embedded-server \
|
||||
--disable-shared
|
||||
. "$path/FINISH.sh"
|
||||
|
10
BUILD/compile-solaris-amd64-debug
Normal file
10
BUILD/compile-solaris-amd64-debug
Normal file
@ -0,0 +1,10 @@
|
||||
#! /bin/sh
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
amd64_cflags="-m64 -mtune=athlon64"
|
||||
extra_flags="$amd64_cflags $debug_cflags $max_cflags"
|
||||
c_warnings="$c_warnings $debug_extra_warnings"
|
||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$amd64_configs $debug_configs $max_configs --enable-thread-safe-client"
|
||||
|
||||
. "$path/FINISH.sh"
|
52
BUILD/compile-solaris-amd64-forte
Normal file
52
BUILD/compile-solaris-amd64-forte
Normal file
@ -0,0 +1,52 @@
|
||||
#! /bin/sh
|
||||
|
||||
gmake -k clean || true
|
||||
/bin/rm -f */.deps/*.P config.cache
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
# For "optimal" code for this computer add -fast to EXTRA
|
||||
# To compile 64 bit, add -xarch=v9 to EXTRA_64_BIT
|
||||
|
||||
EXTRA_64_BIT="-xarch=amd64"
|
||||
EXTRA="-fast"
|
||||
|
||||
#
|
||||
# The following should not need to be touched
|
||||
#
|
||||
|
||||
export CC CXX CFLAGS CXXFLAGS
|
||||
STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT"
|
||||
ASFLAGS="$EXTRA_64_BIT"
|
||||
CC=cc-5.0
|
||||
CFLAGS="-Xa -xstrconst $STD"
|
||||
CXX=CC
|
||||
CXXFLAGS="-noex $STD"
|
||||
./configure \
|
||||
--prefix=/usr/local/mysql \
|
||||
--localstatedir=/usr/local/mysql/data \
|
||||
--libexecdir=/usr/local/mysql/bin \
|
||||
--with-extra-charsets=complex \
|
||||
--enable-thread-safe-client \
|
||||
--enable-local-infile \
|
||||
--with-zlib-dir=bundled \
|
||||
--with-big-tables \
|
||||
--with-readline \
|
||||
--with-archive-storage-engine \
|
||||
--with-named-curses=-lcurses \
|
||||
--with-big-tables \
|
||||
--with-innodb \
|
||||
--with-example-storage-engine \
|
||||
--with-blackhole-storage-engine \
|
||||
--with-federated-storage-engine \
|
||||
--with-csv-storage-engine \
|
||||
--with-ssl \
|
||||
--enable-assembler
|
||||
|
||||
# Not including:
|
||||
# --with-ndbcluster
|
||||
# --with-berkeley-db
|
||||
|
||||
gmake -j4
|
||||
test $? = 0 && make test
|
54
BUILD/compile-solaris-amd64-forte-debug
Normal file
54
BUILD/compile-solaris-amd64-forte-debug
Normal file
@ -0,0 +1,54 @@
|
||||
#! /bin/sh
|
||||
|
||||
gmake -k clean || true
|
||||
/bin/rm -f */.deps/*.P config.cache
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
# To compile 64 bit, add -xarch=amd64 to EXTRA_64_BIT
|
||||
EXTRA_64_BIT="-xarch=amd64"
|
||||
|
||||
# For "optimal" code for this computer add -fast to EXTRA. Note that
|
||||
# this causes problem with debugging the program since -fast implies
|
||||
# -xO5.
|
||||
EXTRA=""
|
||||
|
||||
#
|
||||
# The following should not need to be touched
|
||||
#
|
||||
|
||||
export CC CXX CFLAGS CXXFLAGS
|
||||
STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT $debug_cflags"
|
||||
ASFLAGS="$EXTRA_64_BIT"
|
||||
CC=cc-5.0
|
||||
CFLAGS="-Xa -xstrconst $STD"
|
||||
CXX=CC
|
||||
CXXFLAGS="-noex $STD"
|
||||
./configure \
|
||||
--prefix=/usr/local/mysql \
|
||||
--localstatedir=/usr/local/mysql/data \
|
||||
--libexecdir=/usr/local/mysql/bin \
|
||||
--with-extra-charsets=complex \
|
||||
--enable-thread-safe-client \
|
||||
--enable-local-infile \
|
||||
--with-zlib-dir=bundled \
|
||||
--with-big-tables \
|
||||
--with-readline \
|
||||
--with-archive-storage-engine \
|
||||
--with-named-curses=-lcurses \
|
||||
--with-big-tables \
|
||||
--with-innodb \
|
||||
--with-example-storage-engine \
|
||||
--with-blackhole-storage-engine \
|
||||
--with-federated-storage-engine \
|
||||
--with-csv-storage-engine \
|
||||
--with-ssl \
|
||||
--with-debug \
|
||||
--enable-assembler
|
||||
|
||||
# Not including:
|
||||
# --with-ndbcluster
|
||||
# --with-berkeley-db
|
||||
|
||||
gmake -j4
|
@ -1,7 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
#shift
|
||||
FROM=$USER@mysql.com
|
||||
if [ -n "$BK_USER" ]
|
||||
then
|
||||
COMMITTER=$BK_USER
|
||||
else
|
||||
COMMITTER=$USER
|
||||
fi
|
||||
FROM=$COMMITTER@mysql.com
|
||||
COMMITS=commits@lists.mysql.com
|
||||
DOCS=docs-commit@mysql.com
|
||||
LIMIT=10000
|
||||
@ -88,8 +94,8 @@ Subject: bk commit into $VERSION tree ($CHANGESET)$BS
|
||||
X-CSetKey: <$CSETKEY>
|
||||
$BH
|
||||
Below is the list of changes that have just been committed into a local
|
||||
$VERSION repository of $USER. When $USER does a push these changes will
|
||||
be propagated to the main repository and, within 24 hours after the
|
||||
$VERSION repository of $COMMITTER. When $COMMITTER does a push these changes
|
||||
will be propagated to the main repository and, within 24 hours after the
|
||||
push, to the public repository.
|
||||
For information on how to access the public repository
|
||||
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
|
||||
|
22
BitKeeper/triggers/post-commit.innodb.pl
Executable file
22
BitKeeper/triggers/post-commit.innodb.pl
Executable file
@ -0,0 +1,22 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
require "$FindBin::Bin/triggers-lib.pl";
|
||||
|
||||
# Don't run unless commit was successful
|
||||
check_status() || exit 0;
|
||||
|
||||
my $cset = latest_cset();
|
||||
|
||||
# Read most recent ChangeSet's changed files. Send merge changes along, since
|
||||
# they'll need to be incorporated in InnoDB's source tree eventually.
|
||||
my $changes = innodb_get_changes('cset', $cset, 'yes')
|
||||
or exit 0;
|
||||
|
||||
innodb_send_changes_email($cset, $changes)
|
||||
or exit 1;
|
||||
|
||||
exit 0;
|
30
BitKeeper/triggers/post-incoming.innodb.pl
Executable file
30
BitKeeper/triggers/post-incoming.innodb.pl
Executable file
@ -0,0 +1,30 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
require "$FindBin::Bin/triggers-lib.pl";
|
||||
|
||||
# Don't run unless push/pull was successful
|
||||
check_status() or exit 0;
|
||||
|
||||
# Don't run if push/pull is in local clones
|
||||
exit 0 if repository_type() eq 'local';
|
||||
|
||||
# For each pushed ChangeSet, check it for InnoDB files and send
|
||||
# diff of entire ChangeSet to InnoDB developers if such changes
|
||||
# exist.
|
||||
|
||||
my $error = 0;
|
||||
|
||||
foreach my $cset (read_bk_csetlist())
|
||||
{
|
||||
my $changes = innodb_get_changes('cset', $cset, 'yes')
|
||||
or next;
|
||||
|
||||
innodb_send_changes_email($cset, $changes)
|
||||
or $error = 1;
|
||||
}
|
||||
|
||||
exit ($error == 0 ? 0 : 1);
|
21
BitKeeper/triggers/pre-commit.innodb.pl
Executable file
21
BitKeeper/triggers/pre-commit.innodb.pl
Executable file
@ -0,0 +1,21 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
require "$FindBin::Bin/triggers-lib.pl";
|
||||
|
||||
die "$0: Script error: \$BK_PENDING is not set in pre-commit trigger\n"
|
||||
unless defined $ENV{BK_PENDING};
|
||||
|
||||
# Read changed files from $BK_PENDING directly. Do not bother user about
|
||||
# merge changes; they don't have any choice, the merge must be done.
|
||||
my $changes = innodb_get_changes('file', $ENV{BK_PENDING}, undef)
|
||||
or exit 0;
|
||||
|
||||
innodb_inform_and_query_user($changes)
|
||||
or exit 1; # Abort commit
|
||||
|
||||
# OK, continue with commit
|
||||
exit 0;
|
360
BitKeeper/triggers/triggers-lib.pl
Normal file
360
BitKeeper/triggers/triggers-lib.pl
Normal file
@ -0,0 +1,360 @@
|
||||
# To use this convenience library in a trigger, simply require it at
|
||||
# at the top of the script. For example:
|
||||
#
|
||||
# #! /usr/bin/perl
|
||||
#
|
||||
# use FindBin;
|
||||
# require "$FindBin::Bin/triggers-lib.pl";
|
||||
#
|
||||
# FindBin is needed, because sometimes a trigger is called from the
|
||||
# RESYNC directory, and the trigger dir is ../BitKeeper/triggers
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Carp;
|
||||
use FindBin;
|
||||
|
||||
|
||||
my $mysql_version = "5.0";
|
||||
|
||||
# These addresses must be kept current in all MySQL versions.
|
||||
# See the wiki page InnoDBandOracle.
|
||||
#my @innodb_to_email = ('dev_innodb_ww@oracle.com');
|
||||
#my @innodb_cc_email = ('dev-innodb@mysql.com');
|
||||
# FIXME: Keep this for testing; remove it once it's been used for a
|
||||
# week or two.
|
||||
my @innodb_to_email = ('tim@mysql.com');
|
||||
my @innodb_cc_email = ();
|
||||
|
||||
# This is for MySQL <= 5.0. Regex which defines the InnoDB files
|
||||
# which should generally not be touched by MySQL developers.
|
||||
my $innodb_files_description = <<EOF;
|
||||
innobase/*
|
||||
mysql-test/t/innodb* (except mysql-test/t/innodb_mysql*)
|
||||
mysql-test/r/innodb* (except mysql-test/r/innodb_mysql*)
|
||||
sql/ha_innodb*
|
||||
EOF
|
||||
my $innodb_files_regex = qr{
|
||||
^
|
||||
(
|
||||
# Case 1: innobase/*
|
||||
innobase/
|
||||
|
|
||||
# Case 2: mysql-test/[tr]/innodb* (except innodb_mysql*)
|
||||
mysql-test/(t|r)/SCCS/s.innodb
|
||||
# The mysql-test/[tr]/innodb_mysql* are OK to edit
|
||||
(?!_mysql)
|
||||
|
|
||||
# Case 3: sql/ha_innodb*
|
||||
sql/SCCS/s.ha_innodb
|
||||
)
|
||||
}x;
|
||||
|
||||
|
||||
# See 'bk help log', and the format of, e.g., $BK_PENDING.
|
||||
# Important: this already contains the terminating newline!
|
||||
my $file_rev_dspec = ':SFILE:|:REV:\n';
|
||||
|
||||
my $bktmp = "$FindBin::Bin/../tmp";
|
||||
|
||||
my $sendmail;
|
||||
foreach ('/usr/sbin/sendmail', 'sendmail') {
|
||||
$sendmail = $_;
|
||||
last if -x $sendmail;
|
||||
}
|
||||
my $from = $ENV{REAL_EMAIL} || $ENV{USER} . '@mysql.com';
|
||||
|
||||
|
||||
# close_or_warn
|
||||
# $fh file handle to be closed
|
||||
# $description description of the file handle
|
||||
# RETURN Return value of close($fh)
|
||||
#
|
||||
# Print a nice warning message if close() isn't successful. See
|
||||
# perldoc perlvar and perldoc -f close for details.
|
||||
|
||||
sub close_or_warn (*$)
|
||||
{
|
||||
my ($fh, $description) = @_;
|
||||
|
||||
my $status = close $fh;
|
||||
if (not $status) {
|
||||
warn "$0: error on close of '$description': ",
|
||||
($! ? "$!" : "exit status " . ($? >> 8)), "\n";
|
||||
}
|
||||
|
||||
return $status;
|
||||
}
|
||||
|
||||
|
||||
# check_status
|
||||
# $warn If true, warn about bad status
|
||||
# RETURN TRUE, if $BK_STATUS is "OK"; FALSE otherwise
|
||||
#
|
||||
# Also checks the undocumented $BK_COMMIT env variable
|
||||
|
||||
sub check_status
|
||||
{
|
||||
my ($warn) = @_;
|
||||
|
||||
my $status = (grep { defined $_ }
|
||||
$ENV{BK_STATUS}, $ENV{BK_COMMIT}, '<undef>')[0];
|
||||
|
||||
unless ($status eq 'OK')
|
||||
{
|
||||
warn "Bad BK_STATUS '$status'\n" if $warn;
|
||||
return undef;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
# repository_location
|
||||
#
|
||||
# RETURN ('HOST', 'ROOT') for the repository being modified
|
||||
|
||||
sub repository_location
|
||||
{
|
||||
if ($ENV{BK_SIDE} eq 'client') {
|
||||
return ($ENV{BK_HOST}, $ENV{BK_ROOT});
|
||||
} else {
|
||||
return ($ENV{BKD_HOST}, $ENV{BKD_ROOT});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# repository_type
|
||||
# RETURN:
|
||||
# 'main' for repo on bk-internal with post-incoming.bugdb trigger
|
||||
# 'team' for repo on bk-internal with post-incoming.queuepush.pl trigger
|
||||
# 'local' otherwise
|
||||
#
|
||||
# This definition may need to be modified if the host name or triggers change.
|
||||
|
||||
sub repository_type
|
||||
{
|
||||
my ($host, $root) = repository_location();
|
||||
|
||||
return 'local'
|
||||
unless uc($host) eq 'BK-INTERNAL.MYSQL.COM'
|
||||
and -e "$root/BitKeeper/triggers/post-incoming.queuepush.pl";
|
||||
|
||||
return 'main' if -e "$root/BitKeeper/triggers/post-incoming.bugdb";
|
||||
|
||||
return 'team';
|
||||
}
|
||||
|
||||
|
||||
# latest_cset
|
||||
# RETURN Key for most recent ChangeSet
|
||||
|
||||
sub latest_cset {
|
||||
chomp(my $retval = `bk changes -r+ -k`);
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
# read_bk_csetlist
|
||||
# RETURN list of cset keys from $BK_CSETLIST file
|
||||
sub read_bk_csetlist
|
||||
{
|
||||
die "$0: script error: \$BK_CSETLIST not set\n"
|
||||
unless defined $ENV{BK_CSETLIST};
|
||||
|
||||
open CSETS, '<', $ENV{BK_CSETLIST}
|
||||
or die "$0: can't read \$BK_CSETLIST='$ENV{BK_CSETLIST}': $!\n";
|
||||
chomp(my @csets = <CSETS>);
|
||||
close_or_warn(CSETS, "\$BK_CSETLIST='$ENV{BK_CSETLIST}'");
|
||||
|
||||
return @csets;
|
||||
}
|
||||
|
||||
|
||||
# innodb_get_changes
|
||||
# $type 'file' or 'cset'
|
||||
# $value file name (e.g., $BK_PENDING) or ChangeSet key
|
||||
# $want_merge_changes flag; if false, merge changes will be ignored
|
||||
# RETURN A string describing the InnoDB changes, or undef if no changes
|
||||
#
|
||||
# The return value does *not* include ChangeSet comments, only per-file
|
||||
# comments.
|
||||
|
||||
sub innodb_get_changes
|
||||
{
|
||||
my ($type, $value, $want_merge_changes) = @_;
|
||||
|
||||
if ($type eq 'file')
|
||||
{
|
||||
open CHANGES, '<', $value
|
||||
or die "$0: can't read '$value': $!\n";
|
||||
}
|
||||
elsif ($type eq 'cset')
|
||||
{
|
||||
open CHANGES, '-|', "bk changes -r'$value' -v -d'$file_rev_dspec'"
|
||||
or die "$0: can't exec 'bk changes': $!\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
croak "$0: script error: invalid type '$type'";
|
||||
}
|
||||
|
||||
my @changes = grep { /$innodb_files_regex/ } <CHANGES>;
|
||||
|
||||
close_or_warn(CHANGES, "($type, '$value')");
|
||||
|
||||
return undef unless @changes;
|
||||
|
||||
|
||||
# Set up a pipeline of 'bk log' commands to weed out unwanted deltas. We
|
||||
# never want deltas which contain no actual changes. We may not want deltas
|
||||
# which are merges.
|
||||
|
||||
my @filters;
|
||||
|
||||
# This tests if :LI: (lines inserted) or :LD: (lines deleted) is
|
||||
# non-zero. That is, did this delta change the file contents?
|
||||
push @filters,
|
||||
"bk log -d'"
|
||||
. "\$if(:LI: -gt 0){$file_rev_dspec}"
|
||||
. "\$if(:LI: -eq 0){\$if(:LD: -gt 0){$file_rev_dspec}}"
|
||||
. "' -";
|
||||
|
||||
push @filters, "bk log -d'\$unless(:MERGE:){$file_rev_dspec}' -"
|
||||
unless $want_merge_changes;
|
||||
|
||||
my $tmpname = "$bktmp/ibchanges.txt";
|
||||
my $pipeline = join(' | ', @filters) . " > $tmpname";
|
||||
open TMP, '|-', $pipeline
|
||||
or die "$0: can't exec [[$pipeline]]: $!\n";
|
||||
|
||||
print TMP @changes;
|
||||
close_or_warn(TMP, "| $pipeline");
|
||||
|
||||
# Use bk log to describe the changes
|
||||
open LOG, "bk log - < $tmpname |"
|
||||
or die "$0: can't exec 'bk log - < $tmpname': $!\n";
|
||||
my @log = <LOG>;
|
||||
close_or_warn(LOG, "bk log - < $tmpname |");
|
||||
|
||||
unlink $tmpname;
|
||||
|
||||
return undef unless @log;
|
||||
|
||||
return join('', @log);
|
||||
}
|
||||
|
||||
|
||||
# Ask user if they really want to commit.
|
||||
# RETURN TRUE = YES, commit; FALSE = NO, do not commit
|
||||
|
||||
sub innodb_inform_and_query_user
|
||||
{
|
||||
my ($description) = @_;
|
||||
|
||||
my $tmpname = "$bktmp/ibquery.txt";
|
||||
|
||||
open MESSAGE, "> $tmpname"
|
||||
or die "$0: can't write message to '$tmpname': $!";
|
||||
|
||||
print MESSAGE <<EOF;
|
||||
This ChangeSet modifies some files which should normally be changed by
|
||||
InnoDB developers only. In general, MySQL developers should not change:
|
||||
|
||||
$innodb_files_description
|
||||
The following InnoDB files were modified:
|
||||
=========================================================
|
||||
$description
|
||||
=========================================================
|
||||
|
||||
If you understand this, you may Commit these changes. The changes
|
||||
will be sent to the InnoDB developers at @{[join ', ', @innodb_to_email]},
|
||||
CC @{[join ', ', @innodb_cc_email]}.
|
||||
EOF
|
||||
|
||||
close_or_warn(MESSAGE, "$tmpname");
|
||||
|
||||
my $status = system('bk', 'prompt', '-w',
|
||||
'-yCommit these changes', '-nDo not Commit', "-f$tmpname");
|
||||
|
||||
unlink $tmpname;
|
||||
|
||||
return ($status == 0 ? 1 : undef);
|
||||
}
|
||||
|
||||
|
||||
# innodb_send_changes_email
|
||||
# $cset The ChangeSet key
|
||||
# $description A (maybe brief) description of the changes
|
||||
# RETURN TRUE = Success, e-mail sent; FALSE = Failure
|
||||
#
|
||||
# Sends a complete diff of changes in $cset by e-mail.
|
||||
|
||||
sub innodb_send_changes_email
|
||||
{
|
||||
my ($cset, $description) = @_;
|
||||
|
||||
# FIXME: Much of this is duplicated in the 'post-commit' Bourne shell
|
||||
# trigger
|
||||
|
||||
my $cset_short = `bk changes -r'$cset' -d':P:::I:'`;
|
||||
my $cset_key = `bk changes -r'$cset' -d':KEY:'`;
|
||||
|
||||
my ($host, $bk_root) = repository_location();
|
||||
my $type = repository_type();
|
||||
(my $treename = $bk_root) =~ s,^.*/,,;
|
||||
|
||||
print "Nofifying InnoDB developers at ",
|
||||
(join ', ', @innodb_to_email, @innodb_cc_email), "\n";
|
||||
|
||||
open SENDMAIL, '|-', "$sendmail -t"
|
||||
or die "Can't exec '$sendmail -t': $!\n";
|
||||
|
||||
my @headers;
|
||||
push @headers, "List-ID: <bk.innodb-$mysql_version>";
|
||||
push @headers, "From: $from";
|
||||
push @headers, "To: " . (join ', ', @innodb_to_email);
|
||||
push @headers, "Cc: " . (join ', ', @innodb_cc_email) if @innodb_cc_email;
|
||||
push @headers,
|
||||
"Subject: InnoDB changes in $type $mysql_version tree ($cset_short)";
|
||||
push @headers, "X-CSetKey: <$cset_key>";
|
||||
|
||||
print SENDMAIL map { "$_\n" } @headers, '';
|
||||
|
||||
if ($type eq 'main')
|
||||
{
|
||||
print SENDMAIL <<EOF;
|
||||
Changes pushed to $treename by $ENV{USER} affect the following
|
||||
files. These changes are in a $mysql_version main tree. They
|
||||
will be available publicly within 24 hours.
|
||||
EOF
|
||||
}
|
||||
elsif ($type eq 'team')
|
||||
{
|
||||
print SENDMAIL <<EOF;
|
||||
Changes added to $treename by $ENV{USER} affect the
|
||||
following files. These changes are in a $mysql_version team tree.
|
||||
EOF
|
||||
}
|
||||
else
|
||||
{
|
||||
print SENDMAIL <<EOF;
|
||||
A local commit by $ENV{USER} affects the following files. These
|
||||
changes are in a clone of a $mysql_version tree.
|
||||
EOF
|
||||
}
|
||||
print SENDMAIL "\n";
|
||||
print SENDMAIL qx(bk changes -r'$cset');
|
||||
print SENDMAIL "$description";
|
||||
print SENDMAIL "The complete ChangeSet diffs follow.\n\n";
|
||||
print SENDMAIL qx(bk rset -r'$cset' -ah | bk gnupatch -h -dup -T);
|
||||
|
||||
close_or_warn(SENDMAIL, "$sendmail -t")
|
||||
or return undef;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
1;
|
@ -13,7 +13,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
EXTRA_DIST = mysql.info INSTALL-BINARY
|
||||
EXTRA_DIST = mysql.info INSTALL-BINARY @extra_docs@
|
||||
|
||||
# make sure that "make install" installs the info page, too
|
||||
# automake only seems to take care of this automatically,
|
||||
|
36
Makefile.am
36
Makefile.am
@ -102,7 +102,7 @@ dist-hook:
|
||||
rm -rf `find $(distdir) -type d -name SCCS -print`
|
||||
rm -f `find $(distdir) -type l -print`
|
||||
mkdir -p $(distdir)/win
|
||||
scripts/mysql_install_db --no-defaults --windows \
|
||||
scripts/mysql_install_db --no-defaults --cross-bootstrap \
|
||||
--basedir=$(top_builddir) \
|
||||
--datadir=$(distdir)/win/data \
|
||||
--srcdir=$(top_srcdir)
|
||||
@ -127,11 +127,11 @@ tags:
|
||||
|
||||
test-ps:
|
||||
cd mysql-test ; \
|
||||
@PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol
|
||||
@PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol
|
||||
|
||||
test-ns:
|
||||
cd mysql-test ; \
|
||||
@PERL@ ./mysql-test-run.pl $(force) $(mem)
|
||||
@PERL@ ./mysql-test-run.pl $(force) $(mem)
|
||||
|
||||
test: test-ns test-ps
|
||||
|
||||
@ -150,25 +150,25 @@ test-force-mem:
|
||||
|
||||
test-bt:
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=normal --report-features
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=normal --report-features
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=ps --ps-protocol
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=ps --ps-protocol
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=funcs1_ps --ps-protocol --suite=funcs_1
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=funcs1_ps --ps-protocol --suite=funcs_1
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=funcs2 --suite=funcs_2
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=funcs2 --suite=funcs_2
|
||||
-if [ -d mysql-test/suite/nist ] ; then \
|
||||
cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --comment=NIST+normal --force --suite=nist ; \
|
||||
cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --comment=NIST+normal --force --suite=nist ; \
|
||||
fi
|
||||
-if [ -d mysql-test/suite/nist ] ; then \
|
||||
cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --comment=NIST+ps --force --suite=nist --ps-protocol ; \
|
||||
cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --comment=NIST+ps --force --suite=nist --ps-protocol ; \
|
||||
fi
|
||||
|
||||
test-bt-debug:
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=debug --report-features
|
||||
@PERL@ ./mysql-test-run.pl --force --comment=debug --report-features
|
||||
|
||||
# Keep these for a while
|
||||
test-pl: test
|
||||
@ -179,15 +179,15 @@ test-force-full-pl: test-force-full
|
||||
|
||||
test-ext-funcs:
|
||||
cd mysql-test ; \
|
||||
@PERL@ ./mysql-test-run.pl --force --suite=funcs_1 ; \
|
||||
@PERL@ ./mysql-test-run.pl --force --suite=funcs_2
|
||||
@PERL@ ./mysql-test-run.pl --force --suite=funcs_1 ; \
|
||||
@PERL@ ./mysql-test-run.pl --force --suite=funcs_2
|
||||
|
||||
test-ext: test-ext-funcs
|
||||
|
||||
test-fast:
|
||||
cd mysql-test ; \
|
||||
@PERL@ ./mysql-test-run.pl $(subset) --force --skip-ndb --skip-innodb --skip-im --skip-rpl ; \
|
||||
@PERL@ ./mysql-test-run.pl $(subset) --force --suite=funcs_1 --do-test=myisam
|
||||
@PERL@ ./mysql-test-run.pl $(subset) --force --skip-ndb --skip-innodb --skip-im --skip-rpl ; \
|
||||
@PERL@ ./mysql-test-run.pl $(subset) --force --suite=funcs_1 --do-test=myisam
|
||||
|
||||
test-fast-view:
|
||||
$(MAKE) subset=--view-protocol test-fast
|
||||
@ -200,8 +200,8 @@ test-fast-prepare:
|
||||
|
||||
test-full-qa:
|
||||
$(MAKE) force=--force test-pl \
|
||||
test-ext test-fast-view \
|
||||
test-fast-cursor
|
||||
test-ext test-fast-view \
|
||||
test-fast-cursor
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
@ -78,11 +78,6 @@ copy include\conf*.h c:\mysql\include
|
||||
copy include\my_global.h c:\mysql\include\my_global.h
|
||||
copy libmysql\libmysql.def c:\mysql\include
|
||||
|
||||
REM Copy test files
|
||||
|
||||
copy libmysqltest\*.* c:\mysql\examples\libmysqltest
|
||||
copy libmysqltest\release\myTest.exe c:\mysql\examples\libmysqltest
|
||||
|
||||
REM Copy share, docs etc
|
||||
|
||||
xcopy share\*.* c:\mysql\share /E /Y
|
||||
|
@ -1,92 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="myTest" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=myTest - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest.mak" CFG="myTest - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "myTest - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "myTest - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "myTest - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# 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
|
||||
# ADD CPP /nologo /G6 /W3 /O2 /I "..\..\include" /D "NDEBUG" /D "DBUG_UFF" /D "_CONSOLE" /D "_MBCS" /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=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 ..\..\lib\opt\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"
|
||||
|
||||
!ELSEIF "$(CFG)" == "myTest - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "debug"
|
||||
# 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 /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=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 ..\..\lib\debug\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"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "myTest - Win32 Release"
|
||||
# Name "myTest - Win32 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Mytest.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
@ -1,92 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="myTest" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=myTest - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest.mak" CFG="myTest - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "myTest - WinIA64 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "myTest - WinIA64 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "myTest - WinIA64 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /I "..\include" /D"NDEBUG" /D"DBUG_UFF" /D"_CONSOLE" /D"_MBCS" /FD /c /O2 /G2 /EHsc /D"_IA64_" /Zi /D"WIN64" /D"WIN32" /D"_AFX_NO_DAO_SUPPORT" /Wp64 /Zm600
|
||||
# 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=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:IA64
|
||||
# ADD LINK32 ..\lib_release\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:IA64 /libpath:"..\lib_release" /incremental:no
|
||||
|
||||
!ELSEIF "$(CFG)" == "myTest - WinIA64 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "debug"
|
||||
# PROP Intermediate_Dir "debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MTd /W3 /Z7 /I "..\include" /D"_DEBUG" /D"_CONSOLE" /D"_MBCS" /FD /c /Od /G2 /EHsc /D"_IA64_" /Zi /D"WIN64" /D"WIN32" /D"_AFX_NO_DAO_SUPPORT" /Wp64 /Zm600
|
||||
# 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=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:IA64
|
||||
# ADD LINK32 ..\lib_debug\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:IA64 /libpath:"..\lib_debug" /incremental:no
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "myTest - WinIA64 Release"
|
||||
# Name "myTest - WinIA64 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Mytest.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
@ -1,92 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="myTest" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=myTest - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest.mak" CFG="myTest - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "myTest - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "myTest - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "myTest - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# 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
|
||||
# ADD CPP /nologo /G6 /W3 /O2 /I "..\include" /D "DBUG_UFF" /D "_CONSOLE" /D "_MBCS" /D "NDEBUG" /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=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"
|
||||
|
||||
!ELSEIF "$(CFG)" == "myTest - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "debug"
|
||||
# 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 /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=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"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "myTest - Win32 Release"
|
||||
# Name "myTest - Win32 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Mytest.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
@ -1,146 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="myTest"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\debug_obj"
|
||||
IntermediateDirectory=".\debug_obj"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="..\include"
|
||||
PreprocessorDefinitions="_DEBUG;_CONSOLE"
|
||||
RuntimeLibrary="5"
|
||||
PrecompiledHeaderFile=".\debug_obj/myTest.pch"
|
||||
AssemblerListingLocation=".\debug_obj/"
|
||||
ObjectFile=".\debug_obj/"
|
||||
ProgramDataBaseFileName=".\debug_obj/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="1"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="libmysql.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\debug/myTest.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories=""
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile=".\debug_obj/myTest.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\debug_obj/myTest.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\release_obj"
|
||||
IntermediateDirectory=".\release_obj"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="..\include"
|
||||
PreprocessorDefinitions="DBUG_UFF;_CONSOLE;NDEBUG"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="4"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
PrecompiledHeaderFile=".\release_obj/myTest.pch"
|
||||
AssemblerListingLocation=".\release_obj/"
|
||||
ObjectFile=".\release_obj/"
|
||||
ProgramDataBaseFileName=".\release_obj/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="libmysql.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\release/myTest.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=".\release_obj/myTest.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\release_obj/myTest.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="Mytest.c">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
@ -1,94 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="myTest" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=myTest - WinIA64 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest_ia64.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "myTest_ia64.mak" CFG="myTest - WinIA64 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "myTest - WinIA64 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "myTest - WinIA64 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "myTest - WinIA64 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "release"
|
||||
# PROP Intermediate_Dir "release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
MTL=midl.exe
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /Zi /O2 /I "..\include" /D "DBUG_UFF" /D "_CONSOLE" /D "_MBCS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /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
|
||||
# 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:IA64
|
||||
# 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 bufferoverflowU.lib /nologo /subsystem:console /libpath:"..\lib_release" /machine:IA64
|
||||
|
||||
!ELSEIF "$(CFG)" == "myTest - WinIA64 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "debug"
|
||||
# PROP Intermediate_Dir "debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
MTL=midl.exe
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MTd /W3 /Zi /Od /I "..\include" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /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
|
||||
# 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:IA64
|
||||
# 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 bufferoverflowU.lib /nologo /subsystem:console /incremental:no /debug /libpath:"..\lib_debug" /machine:IA64
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "myTest - WinIA64 Release"
|
||||
# Name "myTest - WinIA64 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Mytest.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
@ -1,175 +0,0 @@
|
||||
/*C4*/
|
||||
/****************************************************************/
|
||||
/* Author: Jethro Wright, III TS : 3/ 4/1998 9:15 */
|
||||
/* Date: 02/18/1998 */
|
||||
/* mytest.c : do some testing of the libmySQL.DLL.... */
|
||||
/* */
|
||||
/* History: */
|
||||
/* 02/18/1998 jw3 also sprach zarathustra.... */
|
||||
/****************************************************************/
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <mysql.h>
|
||||
|
||||
#define DEFALT_SQL_STMT "SELECT * FROM db"
|
||||
#ifndef offsetof
|
||||
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
|
||||
#endif
|
||||
|
||||
|
||||
/********************************************************
|
||||
**
|
||||
** main :-
|
||||
**
|
||||
********************************************************/
|
||||
|
||||
int
|
||||
main( int argc, char * argv[] )
|
||||
{
|
||||
|
||||
char szSQL[ 200 ], aszFlds[ 25 ][ 25 ], szDB[ 50 ] ;
|
||||
const char *pszT;
|
||||
int i, j, k, l, x ;
|
||||
MYSQL * myData ;
|
||||
MYSQL_RES * res ;
|
||||
MYSQL_FIELD * fd ;
|
||||
MYSQL_ROW row ;
|
||||
|
||||
//....just curious....
|
||||
printf( "sizeof( MYSQL ) == %d\n", (int) sizeof( MYSQL ) ) ;
|
||||
if ( argc == 2 )
|
||||
{
|
||||
strcpy( szDB, argv[ 1 ] ) ;
|
||||
strcpy( szSQL, DEFALT_SQL_STMT ) ;
|
||||
if (!strcmp(szDB,"--debug"))
|
||||
{
|
||||
strcpy( szDB, "mysql" ) ;
|
||||
printf("Some mysql struct information (size and offset):\n");
|
||||
printf("net:\t%3d %3d\n",(int) sizeof(myData->net),
|
||||
(int) offsetof(MYSQL,net));
|
||||
printf("host:\t%3d %3d\n",(int) sizeof(myData->host),
|
||||
(int) offsetof(MYSQL,host));
|
||||
printf("port:\t%3d %3d\n", (int) sizeof(myData->port),
|
||||
(int) offsetof(MYSQL,port));
|
||||
printf("protocol_version:\t%3d %3d\n",
|
||||
(int) sizeof(myData->protocol_version),
|
||||
(int) offsetof(MYSQL,protocol_version));
|
||||
printf("thread_id:\t%3d %3d\n",(int) sizeof(myData->thread_id),
|
||||
(int) offsetof(MYSQL,thread_id));
|
||||
printf("affected_rows:\t%3d %3d\n",(int) sizeof(myData->affected_rows),
|
||||
(int) offsetof(MYSQL,affected_rows));
|
||||
printf("packet_length:\t%3d %3d\n",(int) sizeof(myData->packet_length),
|
||||
(int) offsetof(MYSQL,packet_length));
|
||||
printf("status:\t%3d %3d\n",(int) sizeof(myData->status),
|
||||
(int) offsetof(MYSQL,status));
|
||||
printf("fields:\t%3d %3d\n",(int) sizeof(myData->fields),
|
||||
(int) offsetof(MYSQL,fields));
|
||||
printf("field_alloc:\t%3d %3d\n",(int) sizeof(myData->field_alloc),
|
||||
(int) offsetof(MYSQL,field_alloc));
|
||||
printf("free_me:\t%3d %3d\n",(int) sizeof(myData->free_me),
|
||||
(int) offsetof(MYSQL,free_me));
|
||||
printf("options:\t%3d %3d\n",(int) sizeof(myData->options),
|
||||
(int) offsetof(MYSQL,options));
|
||||
puts("");
|
||||
}
|
||||
}
|
||||
else if ( argc > 2 ) {
|
||||
strcpy( szDB, argv[ 1 ] ) ;
|
||||
strcpy( szSQL, argv[ 2 ] ) ;
|
||||
}
|
||||
else {
|
||||
strcpy( szDB, "mysql" ) ;
|
||||
strcpy( szSQL, DEFALT_SQL_STMT ) ;
|
||||
}
|
||||
//....
|
||||
|
||||
if ( (myData = mysql_init((MYSQL*) 0)) &&
|
||||
mysql_real_connect( myData, NULL, NULL, NULL, NULL, MYSQL_PORT,
|
||||
NULL, 0 ) )
|
||||
{
|
||||
myData->reconnect= 1;
|
||||
if ( mysql_select_db( myData, szDB ) < 0 ) {
|
||||
printf( "Can't select the %s database !\n", szDB ) ;
|
||||
mysql_close( myData ) ;
|
||||
return 2 ;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf( "Can't connect to the mysql server on port %d !\n",
|
||||
MYSQL_PORT ) ;
|
||||
mysql_close( myData ) ;
|
||||
return 1 ;
|
||||
}
|
||||
//....
|
||||
if ( ! mysql_query( myData, szSQL ) ) {
|
||||
res = mysql_store_result( myData ) ;
|
||||
i = (int) mysql_num_rows( res ) ; l = 1 ;
|
||||
printf( "Query: %s\nNumber of records found: %ld\n", szSQL, i ) ;
|
||||
//....we can get the field-specific characteristics here....
|
||||
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
|
||||
strcpy( aszFlds[ x ], fd->name ) ;
|
||||
//....
|
||||
while ( row = mysql_fetch_row( res ) ) {
|
||||
j = mysql_num_fields( res ) ;
|
||||
printf( "Record #%ld:-\n", l++ ) ;
|
||||
for ( k = 0 ; k < j ; k++ )
|
||||
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
|
||||
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
|
||||
puts( "==============================\n" ) ;
|
||||
}
|
||||
mysql_free_result( res ) ;
|
||||
}
|
||||
else printf( "Couldn't execute %s on the server !\n", szSQL ) ;
|
||||
//....
|
||||
puts( "==== Diagnostic info ====" ) ;
|
||||
pszT = mysql_get_client_info() ;
|
||||
printf( "Client info: %s\n", pszT ) ;
|
||||
//....
|
||||
pszT = mysql_get_host_info( myData ) ;
|
||||
printf( "Host info: %s\n", pszT ) ;
|
||||
//....
|
||||
pszT = mysql_get_server_info( myData ) ;
|
||||
printf( "Server info: %s\n", pszT ) ;
|
||||
//....
|
||||
res = mysql_list_processes( myData ) ; l = 1 ;
|
||||
if (res)
|
||||
{
|
||||
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
|
||||
strcpy( aszFlds[ x ], fd->name ) ;
|
||||
while ( row = mysql_fetch_row( res ) ) {
|
||||
j = mysql_num_fields( res ) ;
|
||||
printf( "Process #%ld:-\n", l++ ) ;
|
||||
for ( k = 0 ; k < j ; k++ )
|
||||
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
|
||||
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
|
||||
puts( "==============================\n" ) ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Got error %s when retreiving processlist\n",mysql_error(myData));
|
||||
}
|
||||
//....
|
||||
res = mysql_list_tables( myData, "%" ) ; l = 1 ;
|
||||
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
|
||||
strcpy( aszFlds[ x ], fd->name ) ;
|
||||
while ( row = mysql_fetch_row( res ) ) {
|
||||
j = mysql_num_fields( res ) ;
|
||||
printf( "Table #%ld:-\n", l++ ) ;
|
||||
for ( k = 0 ; k < j ; k++ )
|
||||
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
|
||||
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
|
||||
puts( "==============================\n" ) ;
|
||||
}
|
||||
//....
|
||||
pszT = mysql_stat( myData ) ;
|
||||
puts( pszT ) ;
|
||||
//....
|
||||
mysql_close( myData ) ;
|
||||
return 0 ;
|
||||
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 5.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "myTest"=".\myTest.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
@ -32,7 +32,8 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||
ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc ../mysys/my_conio.c)
|
||||
TARGET_LINK_LIBRARIES(mysql mysqlclient_notls wsock32)
|
||||
|
||||
ADD_EXECUTABLE(mysqltest mysqltest.c ../mysys/my_getsystime.c ../mysys/my_copy.c)
|
||||
ADD_EXECUTABLE(mysqltest mysqltest.c ../mysys/my_getsystime.c
|
||||
../mysys/my_copy.c ../mysys/my_mkdir.c)
|
||||
TARGET_LINK_LIBRARIES(mysqltest mysqlclient_notls regex wsock32)
|
||||
|
||||
ADD_EXECUTABLE(mysqlcheck mysqlcheck.c)
|
||||
|
@ -34,7 +34,8 @@ mysqladmin_SOURCES = mysqladmin.cc
|
||||
mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS)
|
||||
mysqltest_SOURCES= mysqltest.c \
|
||||
$(top_srcdir)/mysys/my_getsystime.c \
|
||||
$(top_srcdir)/mysys/my_copy.c
|
||||
$(top_srcdir)/mysys/my_copy.c \
|
||||
$(top_srcdir)/mysys/my_mkdir.c
|
||||
|
||||
mysqltest_LDADD = $(top_builddir)/regex/libregex.a $(LDADD)
|
||||
mysqlbinlog_SOURCES = mysqlbinlog.cc \
|
||||
|
779
client/mysql.cc
779
client/mysql.cc
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000-2003 MySQL AB
|
||||
/* Copyright (C) 2000-2008 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -283,13 +283,6 @@ static COMMANDS commands[] = {
|
||||
/* Get bash-like expansion for some commands */
|
||||
{ "create table", 0, 0, 0, ""},
|
||||
{ "create database", 0, 0, 0, ""},
|
||||
{ "drop", 0, 0, 0, ""},
|
||||
{ "select", 0, 0, 0, ""},
|
||||
{ "insert", 0, 0, 0, ""},
|
||||
{ "replace", 0, 0, 0, ""},
|
||||
{ "update", 0, 0, 0, ""},
|
||||
{ "delete", 0, 0, 0, ""},
|
||||
{ "explain", 0, 0, 0, ""},
|
||||
{ "show databases", 0, 0, 0, ""},
|
||||
{ "show fields from", 0, 0, 0, ""},
|
||||
{ "show keys from", 0, 0, 0, ""},
|
||||
@ -299,6 +292,718 @@ static COMMANDS commands[] = {
|
||||
{ "set option", 0, 0, 0, ""},
|
||||
{ "lock tables", 0, 0, 0, ""},
|
||||
{ "unlock tables", 0, 0, 0, ""},
|
||||
/* generated 2006-12-28. Refresh occasionally from lexer. */
|
||||
{ "ACTION", 0, 0, 0, ""},
|
||||
{ "ADD", 0, 0, 0, ""},
|
||||
{ "AFTER", 0, 0, 0, ""},
|
||||
{ "AGAINST", 0, 0, 0, ""},
|
||||
{ "AGGREGATE", 0, 0, 0, ""},
|
||||
{ "ALL", 0, 0, 0, ""},
|
||||
{ "ALGORITHM", 0, 0, 0, ""},
|
||||
{ "ALTER", 0, 0, 0, ""},
|
||||
{ "ANALYZE", 0, 0, 0, ""},
|
||||
{ "AND", 0, 0, 0, ""},
|
||||
{ "ANY", 0, 0, 0, ""},
|
||||
{ "AS", 0, 0, 0, ""},
|
||||
{ "ASC", 0, 0, 0, ""},
|
||||
{ "ASCII", 0, 0, 0, ""},
|
||||
{ "ASENSITIVE", 0, 0, 0, ""},
|
||||
{ "AUTO_INCREMENT", 0, 0, 0, ""},
|
||||
{ "AVG", 0, 0, 0, ""},
|
||||
{ "AVG_ROW_LENGTH", 0, 0, 0, ""},
|
||||
{ "BACKUP", 0, 0, 0, ""},
|
||||
{ "BDB", 0, 0, 0, ""},
|
||||
{ "BEFORE", 0, 0, 0, ""},
|
||||
{ "BEGIN", 0, 0, 0, ""},
|
||||
{ "BERKELEYDB", 0, 0, 0, ""},
|
||||
{ "BETWEEN", 0, 0, 0, ""},
|
||||
{ "BIGINT", 0, 0, 0, ""},
|
||||
{ "BINARY", 0, 0, 0, ""},
|
||||
{ "BINLOG", 0, 0, 0, ""},
|
||||
{ "BIT", 0, 0, 0, ""},
|
||||
{ "BLOB", 0, 0, 0, ""},
|
||||
{ "BOOL", 0, 0, 0, ""},
|
||||
{ "BOOLEAN", 0, 0, 0, ""},
|
||||
{ "BOTH", 0, 0, 0, ""},
|
||||
{ "BTREE", 0, 0, 0, ""},
|
||||
{ "BY", 0, 0, 0, ""},
|
||||
{ "BYTE", 0, 0, 0, ""},
|
||||
{ "CACHE", 0, 0, 0, ""},
|
||||
{ "CALL", 0, 0, 0, ""},
|
||||
{ "CASCADE", 0, 0, 0, ""},
|
||||
{ "CASCADED", 0, 0, 0, ""},
|
||||
{ "CASE", 0, 0, 0, ""},
|
||||
{ "CHAIN", 0, 0, 0, ""},
|
||||
{ "CHANGE", 0, 0, 0, ""},
|
||||
{ "CHANGED", 0, 0, 0, ""},
|
||||
{ "CHAR", 0, 0, 0, ""},
|
||||
{ "CHARACTER", 0, 0, 0, ""},
|
||||
{ "CHARSET", 0, 0, 0, ""},
|
||||
{ "CHECK", 0, 0, 0, ""},
|
||||
{ "CHECKSUM", 0, 0, 0, ""},
|
||||
{ "CIPHER", 0, 0, 0, ""},
|
||||
{ "CLIENT", 0, 0, 0, ""},
|
||||
{ "CLOSE", 0, 0, 0, ""},
|
||||
{ "CODE", 0, 0, 0, ""},
|
||||
{ "COLLATE", 0, 0, 0, ""},
|
||||
{ "COLLATION", 0, 0, 0, ""},
|
||||
{ "COLUMN", 0, 0, 0, ""},
|
||||
{ "COLUMNS", 0, 0, 0, ""},
|
||||
{ "COMMENT", 0, 0, 0, ""},
|
||||
{ "COMMIT", 0, 0, 0, ""},
|
||||
{ "COMMITTED", 0, 0, 0, ""},
|
||||
{ "COMPACT", 0, 0, 0, ""},
|
||||
{ "COMPRESSED", 0, 0, 0, ""},
|
||||
{ "CONCURRENT", 0, 0, 0, ""},
|
||||
{ "CONDITION", 0, 0, 0, ""},
|
||||
{ "CONNECTION", 0, 0, 0, ""},
|
||||
{ "CONSISTENT", 0, 0, 0, ""},
|
||||
{ "CONSTRAINT", 0, 0, 0, ""},
|
||||
{ "CONTAINS", 0, 0, 0, ""},
|
||||
{ "CONTINUE", 0, 0, 0, ""},
|
||||
{ "CONVERT", 0, 0, 0, ""},
|
||||
{ "CREATE", 0, 0, 0, ""},
|
||||
{ "CROSS", 0, 0, 0, ""},
|
||||
{ "CUBE", 0, 0, 0, ""},
|
||||
{ "CURRENT_DATE", 0, 0, 0, ""},
|
||||
{ "CURRENT_TIME", 0, 0, 0, ""},
|
||||
{ "CURRENT_TIMESTAMP", 0, 0, 0, ""},
|
||||
{ "CURRENT_USER", 0, 0, 0, ""},
|
||||
{ "CURSOR", 0, 0, 0, ""},
|
||||
{ "DATA", 0, 0, 0, ""},
|
||||
{ "DATABASE", 0, 0, 0, ""},
|
||||
{ "DATABASES", 0, 0, 0, ""},
|
||||
{ "DATE", 0, 0, 0, ""},
|
||||
{ "DATETIME", 0, 0, 0, ""},
|
||||
{ "DAY", 0, 0, 0, ""},
|
||||
{ "DAY_HOUR", 0, 0, 0, ""},
|
||||
{ "DAY_MICROSECOND", 0, 0, 0, ""},
|
||||
{ "DAY_MINUTE", 0, 0, 0, ""},
|
||||
{ "DAY_SECOND", 0, 0, 0, ""},
|
||||
{ "DEALLOCATE", 0, 0, 0, ""},
|
||||
{ "DEC", 0, 0, 0, ""},
|
||||
{ "DECIMAL", 0, 0, 0, ""},
|
||||
{ "DECLARE", 0, 0, 0, ""},
|
||||
{ "DEFAULT", 0, 0, 0, ""},
|
||||
{ "DEFINER", 0, 0, 0, ""},
|
||||
{ "DELAYED", 0, 0, 0, ""},
|
||||
{ "DELAY_KEY_WRITE", 0, 0, 0, ""},
|
||||
{ "DELETE", 0, 0, 0, ""},
|
||||
{ "DESC", 0, 0, 0, ""},
|
||||
{ "DESCRIBE", 0, 0, 0, ""},
|
||||
{ "DES_KEY_FILE", 0, 0, 0, ""},
|
||||
{ "DETERMINISTIC", 0, 0, 0, ""},
|
||||
{ "DIRECTORY", 0, 0, 0, ""},
|
||||
{ "DISABLE", 0, 0, 0, ""},
|
||||
{ "DISCARD", 0, 0, 0, ""},
|
||||
{ "DISTINCT", 0, 0, 0, ""},
|
||||
{ "DISTINCTROW", 0, 0, 0, ""},
|
||||
{ "DIV", 0, 0, 0, ""},
|
||||
{ "DO", 0, 0, 0, ""},
|
||||
{ "DOUBLE", 0, 0, 0, ""},
|
||||
{ "DROP", 0, 0, 0, ""},
|
||||
{ "DUAL", 0, 0, 0, ""},
|
||||
{ "DUMPFILE", 0, 0, 0, ""},
|
||||
{ "DUPLICATE", 0, 0, 0, ""},
|
||||
{ "DYNAMIC", 0, 0, 0, ""},
|
||||
{ "EACH", 0, 0, 0, ""},
|
||||
{ "ELSE", 0, 0, 0, ""},
|
||||
{ "ELSEIF", 0, 0, 0, ""},
|
||||
{ "ENABLE", 0, 0, 0, ""},
|
||||
{ "ENCLOSED", 0, 0, 0, ""},
|
||||
{ "END", 0, 0, 0, ""},
|
||||
{ "ENGINE", 0, 0, 0, ""},
|
||||
{ "ENGINES", 0, 0, 0, ""},
|
||||
{ "ENUM", 0, 0, 0, ""},
|
||||
{ "ERRORS", 0, 0, 0, ""},
|
||||
{ "ESCAPE", 0, 0, 0, ""},
|
||||
{ "ESCAPED", 0, 0, 0, ""},
|
||||
{ "EVENTS", 0, 0, 0, ""},
|
||||
{ "EXECUTE", 0, 0, 0, ""},
|
||||
{ "EXISTS", 0, 0, 0, ""},
|
||||
{ "EXIT", 0, 0, 0, ""},
|
||||
{ "EXPANSION", 0, 0, 0, ""},
|
||||
{ "EXPLAIN", 0, 0, 0, ""},
|
||||
{ "EXTENDED", 0, 0, 0, ""},
|
||||
{ "FALSE", 0, 0, 0, ""},
|
||||
{ "FAST", 0, 0, 0, ""},
|
||||
{ "FETCH", 0, 0, 0, ""},
|
||||
{ "FIELDS", 0, 0, 0, ""},
|
||||
{ "FILE", 0, 0, 0, ""},
|
||||
{ "FIRST", 0, 0, 0, ""},
|
||||
{ "FIXED", 0, 0, 0, ""},
|
||||
{ "FLOAT", 0, 0, 0, ""},
|
||||
{ "FLOAT4", 0, 0, 0, ""},
|
||||
{ "FLOAT8", 0, 0, 0, ""},
|
||||
{ "FLUSH", 0, 0, 0, ""},
|
||||
{ "FOR", 0, 0, 0, ""},
|
||||
{ "FORCE", 0, 0, 0, ""},
|
||||
{ "FOREIGN", 0, 0, 0, ""},
|
||||
{ "FOUND", 0, 0, 0, ""},
|
||||
{ "FRAC_SECOND", 0, 0, 0, ""},
|
||||
{ "FROM", 0, 0, 0, ""},
|
||||
{ "FULL", 0, 0, 0, ""},
|
||||
{ "FULLTEXT", 0, 0, 0, ""},
|
||||
{ "FUNCTION", 0, 0, 0, ""},
|
||||
{ "GEOMETRY", 0, 0, 0, ""},
|
||||
{ "GEOMETRYCOLLECTION", 0, 0, 0, ""},
|
||||
{ "GET_FORMAT", 0, 0, 0, ""},
|
||||
{ "GLOBAL", 0, 0, 0, ""},
|
||||
{ "GRANT", 0, 0, 0, ""},
|
||||
{ "GRANTS", 0, 0, 0, ""},
|
||||
{ "GROUP", 0, 0, 0, ""},
|
||||
{ "HANDLER", 0, 0, 0, ""},
|
||||
{ "HASH", 0, 0, 0, ""},
|
||||
{ "HAVING", 0, 0, 0, ""},
|
||||
{ "HELP", 0, 0, 0, ""},
|
||||
{ "HIGH_PRIORITY", 0, 0, 0, ""},
|
||||
{ "HOSTS", 0, 0, 0, ""},
|
||||
{ "HOUR", 0, 0, 0, ""},
|
||||
{ "HOUR_MICROSECOND", 0, 0, 0, ""},
|
||||
{ "HOUR_MINUTE", 0, 0, 0, ""},
|
||||
{ "HOUR_SECOND", 0, 0, 0, ""},
|
||||
{ "IDENTIFIED", 0, 0, 0, ""},
|
||||
{ "IF", 0, 0, 0, ""},
|
||||
{ "IGNORE", 0, 0, 0, ""},
|
||||
{ "IMPORT", 0, 0, 0, ""},
|
||||
{ "IN", 0, 0, 0, ""},
|
||||
{ "INDEX", 0, 0, 0, ""},
|
||||
{ "INDEXES", 0, 0, 0, ""},
|
||||
{ "INFILE", 0, 0, 0, ""},
|
||||
{ "INNER", 0, 0, 0, ""},
|
||||
{ "INNOBASE", 0, 0, 0, ""},
|
||||
{ "INNODB", 0, 0, 0, ""},
|
||||
{ "INOUT", 0, 0, 0, ""},
|
||||
{ "INSENSITIVE", 0, 0, 0, ""},
|
||||
{ "INSERT", 0, 0, 0, ""},
|
||||
{ "INSERT_METHOD", 0, 0, 0, ""},
|
||||
{ "INT", 0, 0, 0, ""},
|
||||
{ "INT1", 0, 0, 0, ""},
|
||||
{ "INT2", 0, 0, 0, ""},
|
||||
{ "INT3", 0, 0, 0, ""},
|
||||
{ "INT4", 0, 0, 0, ""},
|
||||
{ "INT8", 0, 0, 0, ""},
|
||||
{ "INTEGER", 0, 0, 0, ""},
|
||||
{ "INTERVAL", 0, 0, 0, ""},
|
||||
{ "INTO", 0, 0, 0, ""},
|
||||
{ "IO_THREAD", 0, 0, 0, ""},
|
||||
{ "IS", 0, 0, 0, ""},
|
||||
{ "ISOLATION", 0, 0, 0, ""},
|
||||
{ "ISSUER", 0, 0, 0, ""},
|
||||
{ "ITERATE", 0, 0, 0, ""},
|
||||
{ "INVOKER", 0, 0, 0, ""},
|
||||
{ "JOIN", 0, 0, 0, ""},
|
||||
{ "KEY", 0, 0, 0, ""},
|
||||
{ "KEYS", 0, 0, 0, ""},
|
||||
{ "KILL", 0, 0, 0, ""},
|
||||
{ "LANGUAGE", 0, 0, 0, ""},
|
||||
{ "LAST", 0, 0, 0, ""},
|
||||
{ "LEADING", 0, 0, 0, ""},
|
||||
{ "LEAVE", 0, 0, 0, ""},
|
||||
{ "LEAVES", 0, 0, 0, ""},
|
||||
{ "LEFT", 0, 0, 0, ""},
|
||||
{ "LEVEL", 0, 0, 0, ""},
|
||||
{ "LIKE", 0, 0, 0, ""},
|
||||
{ "LIMIT", 0, 0, 0, ""},
|
||||
{ "LINES", 0, 0, 0, ""},
|
||||
{ "LINESTRING", 0, 0, 0, ""},
|
||||
{ "LOAD", 0, 0, 0, ""},
|
||||
{ "LOCAL", 0, 0, 0, ""},
|
||||
{ "LOCALTIME", 0, 0, 0, ""},
|
||||
{ "LOCALTIMESTAMP", 0, 0, 0, ""},
|
||||
{ "LOCK", 0, 0, 0, ""},
|
||||
{ "LOCKS", 0, 0, 0, ""},
|
||||
{ "LOGS", 0, 0, 0, ""},
|
||||
{ "LONG", 0, 0, 0, ""},
|
||||
{ "LONGBLOB", 0, 0, 0, ""},
|
||||
{ "LONGTEXT", 0, 0, 0, ""},
|
||||
{ "LOOP", 0, 0, 0, ""},
|
||||
{ "LOW_PRIORITY", 0, 0, 0, ""},
|
||||
{ "MASTER", 0, 0, 0, ""},
|
||||
{ "MASTER_CONNECT_RETRY", 0, 0, 0, ""},
|
||||
{ "MASTER_HOST", 0, 0, 0, ""},
|
||||
{ "MASTER_LOG_FILE", 0, 0, 0, ""},
|
||||
{ "MASTER_LOG_POS", 0, 0, 0, ""},
|
||||
{ "MASTER_PASSWORD", 0, 0, 0, ""},
|
||||
{ "MASTER_PORT", 0, 0, 0, ""},
|
||||
{ "MASTER_SERVER_ID", 0, 0, 0, ""},
|
||||
{ "MASTER_SSL", 0, 0, 0, ""},
|
||||
{ "MASTER_SSL_CA", 0, 0, 0, ""},
|
||||
{ "MASTER_SSL_CAPATH", 0, 0, 0, ""},
|
||||
{ "MASTER_SSL_CERT", 0, 0, 0, ""},
|
||||
{ "MASTER_SSL_CIPHER", 0, 0, 0, ""},
|
||||
{ "MASTER_SSL_KEY", 0, 0, 0, ""},
|
||||
{ "MASTER_USER", 0, 0, 0, ""},
|
||||
{ "MATCH", 0, 0, 0, ""},
|
||||
{ "MAX_CONNECTIONS_PER_HOUR", 0, 0, 0, ""},
|
||||
{ "MAX_QUERIES_PER_HOUR", 0, 0, 0, ""},
|
||||
{ "MAX_ROWS", 0, 0, 0, ""},
|
||||
{ "MAX_UPDATES_PER_HOUR", 0, 0, 0, ""},
|
||||
{ "MAX_USER_CONNECTIONS", 0, 0, 0, ""},
|
||||
{ "MEDIUM", 0, 0, 0, ""},
|
||||
{ "MEDIUMBLOB", 0, 0, 0, ""},
|
||||
{ "MEDIUMINT", 0, 0, 0, ""},
|
||||
{ "MEDIUMTEXT", 0, 0, 0, ""},
|
||||
{ "MERGE", 0, 0, 0, ""},
|
||||
{ "MICROSECOND", 0, 0, 0, ""},
|
||||
{ "MIDDLEINT", 0, 0, 0, ""},
|
||||
{ "MIGRATE", 0, 0, 0, ""},
|
||||
{ "MINUTE", 0, 0, 0, ""},
|
||||
{ "MINUTE_MICROSECOND", 0, 0, 0, ""},
|
||||
{ "MINUTE_SECOND", 0, 0, 0, ""},
|
||||
{ "MIN_ROWS", 0, 0, 0, ""},
|
||||
{ "MOD", 0, 0, 0, ""},
|
||||
{ "MODE", 0, 0, 0, ""},
|
||||
{ "MODIFIES", 0, 0, 0, ""},
|
||||
{ "MODIFY", 0, 0, 0, ""},
|
||||
{ "MONTH", 0, 0, 0, ""},
|
||||
{ "MULTILINESTRING", 0, 0, 0, ""},
|
||||
{ "MULTIPOINT", 0, 0, 0, ""},
|
||||
{ "MULTIPOLYGON", 0, 0, 0, ""},
|
||||
{ "MUTEX", 0, 0, 0, ""},
|
||||
{ "NAME", 0, 0, 0, ""},
|
||||
{ "NAMES", 0, 0, 0, ""},
|
||||
{ "NATIONAL", 0, 0, 0, ""},
|
||||
{ "NATURAL", 0, 0, 0, ""},
|
||||
{ "NDB", 0, 0, 0, ""},
|
||||
{ "NDBCLUSTER", 0, 0, 0, ""},
|
||||
{ "NCHAR", 0, 0, 0, ""},
|
||||
{ "NEW", 0, 0, 0, ""},
|
||||
{ "NEXT", 0, 0, 0, ""},
|
||||
{ "NO", 0, 0, 0, ""},
|
||||
{ "NONE", 0, 0, 0, ""},
|
||||
{ "NOT", 0, 0, 0, ""},
|
||||
{ "NO_WRITE_TO_BINLOG", 0, 0, 0, ""},
|
||||
{ "NULL", 0, 0, 0, ""},
|
||||
{ "NUMERIC", 0, 0, 0, ""},
|
||||
{ "NVARCHAR", 0, 0, 0, ""},
|
||||
{ "OFFSET", 0, 0, 0, ""},
|
||||
{ "OLD_PASSWORD", 0, 0, 0, ""},
|
||||
{ "ON", 0, 0, 0, ""},
|
||||
{ "ONE", 0, 0, 0, ""},
|
||||
{ "ONE_SHOT", 0, 0, 0, ""},
|
||||
{ "OPEN", 0, 0, 0, ""},
|
||||
{ "OPTIMIZE", 0, 0, 0, ""},
|
||||
{ "OPTION", 0, 0, 0, ""},
|
||||
{ "OPTIONALLY", 0, 0, 0, ""},
|
||||
{ "OR", 0, 0, 0, ""},
|
||||
{ "ORDER", 0, 0, 0, ""},
|
||||
{ "OUT", 0, 0, 0, ""},
|
||||
{ "OUTER", 0, 0, 0, ""},
|
||||
{ "OUTFILE", 0, 0, 0, ""},
|
||||
{ "PACK_KEYS", 0, 0, 0, ""},
|
||||
{ "PARTIAL", 0, 0, 0, ""},
|
||||
{ "PASSWORD", 0, 0, 0, ""},
|
||||
{ "PHASE", 0, 0, 0, ""},
|
||||
{ "POINT", 0, 0, 0, ""},
|
||||
{ "POLYGON", 0, 0, 0, ""},
|
||||
{ "PRECISION", 0, 0, 0, ""},
|
||||
{ "PREPARE", 0, 0, 0, ""},
|
||||
{ "PREV", 0, 0, 0, ""},
|
||||
{ "PRIMARY", 0, 0, 0, ""},
|
||||
{ "PRIVILEGES", 0, 0, 0, ""},
|
||||
{ "PROCEDURE", 0, 0, 0, ""},
|
||||
{ "PROCESS", 0, 0, 0, ""},
|
||||
{ "PROCESSLIST", 0, 0, 0, ""},
|
||||
{ "PURGE", 0, 0, 0, ""},
|
||||
{ "QUARTER", 0, 0, 0, ""},
|
||||
{ "QUERY", 0, 0, 0, ""},
|
||||
{ "QUICK", 0, 0, 0, ""},
|
||||
{ "RAID0", 0, 0, 0, ""},
|
||||
{ "RAID_CHUNKS", 0, 0, 0, ""},
|
||||
{ "RAID_CHUNKSIZE", 0, 0, 0, ""},
|
||||
{ "RAID_TYPE", 0, 0, 0, ""},
|
||||
{ "READ", 0, 0, 0, ""},
|
||||
{ "READS", 0, 0, 0, ""},
|
||||
{ "REAL", 0, 0, 0, ""},
|
||||
{ "RECOVER", 0, 0, 0, ""},
|
||||
{ "REDUNDANT", 0, 0, 0, ""},
|
||||
{ "REFERENCES", 0, 0, 0, ""},
|
||||
{ "REGEXP", 0, 0, 0, ""},
|
||||
{ "RELAY_LOG_FILE", 0, 0, 0, ""},
|
||||
{ "RELAY_LOG_POS", 0, 0, 0, ""},
|
||||
{ "RELAY_THREAD", 0, 0, 0, ""},
|
||||
{ "RELEASE", 0, 0, 0, ""},
|
||||
{ "RELOAD", 0, 0, 0, ""},
|
||||
{ "RENAME", 0, 0, 0, ""},
|
||||
{ "REPAIR", 0, 0, 0, ""},
|
||||
{ "REPEATABLE", 0, 0, 0, ""},
|
||||
{ "REPLACE", 0, 0, 0, ""},
|
||||
{ "REPLICATION", 0, 0, 0, ""},
|
||||
{ "REPEAT", 0, 0, 0, ""},
|
||||
{ "REQUIRE", 0, 0, 0, ""},
|
||||
{ "RESET", 0, 0, 0, ""},
|
||||
{ "RESTORE", 0, 0, 0, ""},
|
||||
{ "RESTRICT", 0, 0, 0, ""},
|
||||
{ "RESUME", 0, 0, 0, ""},
|
||||
{ "RETURN", 0, 0, 0, ""},
|
||||
{ "RETURNS", 0, 0, 0, ""},
|
||||
{ "REVOKE", 0, 0, 0, ""},
|
||||
{ "RIGHT", 0, 0, 0, ""},
|
||||
{ "RLIKE", 0, 0, 0, ""},
|
||||
{ "ROLLBACK", 0, 0, 0, ""},
|
||||
{ "ROLLUP", 0, 0, 0, ""},
|
||||
{ "ROUTINE", 0, 0, 0, ""},
|
||||
{ "ROW", 0, 0, 0, ""},
|
||||
{ "ROWS", 0, 0, 0, ""},
|
||||
{ "ROW_FORMAT", 0, 0, 0, ""},
|
||||
{ "RTREE", 0, 0, 0, ""},
|
||||
{ "SAVEPOINT", 0, 0, 0, ""},
|
||||
{ "SCHEMA", 0, 0, 0, ""},
|
||||
{ "SCHEMAS", 0, 0, 0, ""},
|
||||
{ "SECOND", 0, 0, 0, ""},
|
||||
{ "SECOND_MICROSECOND", 0, 0, 0, ""},
|
||||
{ "SECURITY", 0, 0, 0, ""},
|
||||
{ "SELECT", 0, 0, 0, ""},
|
||||
{ "SENSITIVE", 0, 0, 0, ""},
|
||||
{ "SEPARATOR", 0, 0, 0, ""},
|
||||
{ "SERIAL", 0, 0, 0, ""},
|
||||
{ "SERIALIZABLE", 0, 0, 0, ""},
|
||||
{ "SESSION", 0, 0, 0, ""},
|
||||
{ "SET", 0, 0, 0, ""},
|
||||
{ "SHARE", 0, 0, 0, ""},
|
||||
{ "SHOW", 0, 0, 0, ""},
|
||||
{ "SHUTDOWN", 0, 0, 0, ""},
|
||||
{ "SIGNED", 0, 0, 0, ""},
|
||||
{ "SIMPLE", 0, 0, 0, ""},
|
||||
{ "SLAVE", 0, 0, 0, ""},
|
||||
{ "SNAPSHOT", 0, 0, 0, ""},
|
||||
{ "SMALLINT", 0, 0, 0, ""},
|
||||
{ "SOME", 0, 0, 0, ""},
|
||||
{ "SONAME", 0, 0, 0, ""},
|
||||
{ "SOUNDS", 0, 0, 0, ""},
|
||||
{ "SPATIAL", 0, 0, 0, ""},
|
||||
{ "SPECIFIC", 0, 0, 0, ""},
|
||||
{ "SQL", 0, 0, 0, ""},
|
||||
{ "SQLEXCEPTION", 0, 0, 0, ""},
|
||||
{ "SQLSTATE", 0, 0, 0, ""},
|
||||
{ "SQLWARNING", 0, 0, 0, ""},
|
||||
{ "SQL_BIG_RESULT", 0, 0, 0, ""},
|
||||
{ "SQL_BUFFER_RESULT", 0, 0, 0, ""},
|
||||
{ "SQL_CACHE", 0, 0, 0, ""},
|
||||
{ "SQL_CALC_FOUND_ROWS", 0, 0, 0, ""},
|
||||
{ "SQL_NO_CACHE", 0, 0, 0, ""},
|
||||
{ "SQL_SMALL_RESULT", 0, 0, 0, ""},
|
||||
{ "SQL_THREAD", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_FRAC_SECOND", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_SECOND", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_MINUTE", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_HOUR", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_DAY", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_WEEK", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_MONTH", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_QUARTER", 0, 0, 0, ""},
|
||||
{ "SQL_TSI_YEAR", 0, 0, 0, ""},
|
||||
{ "SSL", 0, 0, 0, ""},
|
||||
{ "START", 0, 0, 0, ""},
|
||||
{ "STARTING", 0, 0, 0, ""},
|
||||
{ "STATUS", 0, 0, 0, ""},
|
||||
{ "STOP", 0, 0, 0, ""},
|
||||
{ "STORAGE", 0, 0, 0, ""},
|
||||
{ "STRAIGHT_JOIN", 0, 0, 0, ""},
|
||||
{ "STRING", 0, 0, 0, ""},
|
||||
{ "STRIPED", 0, 0, 0, ""},
|
||||
{ "SUBJECT", 0, 0, 0, ""},
|
||||
{ "SUPER", 0, 0, 0, ""},
|
||||
{ "SUSPEND", 0, 0, 0, ""},
|
||||
{ "TABLE", 0, 0, 0, ""},
|
||||
{ "TABLES", 0, 0, 0, ""},
|
||||
{ "TABLESPACE", 0, 0, 0, ""},
|
||||
{ "TEMPORARY", 0, 0, 0, ""},
|
||||
{ "TEMPTABLE", 0, 0, 0, ""},
|
||||
{ "TERMINATED", 0, 0, 0, ""},
|
||||
{ "TEXT", 0, 0, 0, ""},
|
||||
{ "THEN", 0, 0, 0, ""},
|
||||
{ "TIME", 0, 0, 0, ""},
|
||||
{ "TIMESTAMP", 0, 0, 0, ""},
|
||||
{ "TIMESTAMPADD", 0, 0, 0, ""},
|
||||
{ "TIMESTAMPDIFF", 0, 0, 0, ""},
|
||||
{ "TINYBLOB", 0, 0, 0, ""},
|
||||
{ "TINYINT", 0, 0, 0, ""},
|
||||
{ "TINYTEXT", 0, 0, 0, ""},
|
||||
{ "TO", 0, 0, 0, ""},
|
||||
{ "TRAILING", 0, 0, 0, ""},
|
||||
{ "TRANSACTION", 0, 0, 0, ""},
|
||||
{ "TRIGGER", 0, 0, 0, ""},
|
||||
{ "TRIGGERS", 0, 0, 0, ""},
|
||||
{ "TRUE", 0, 0, 0, ""},
|
||||
{ "TRUNCATE", 0, 0, 0, ""},
|
||||
{ "TYPE", 0, 0, 0, ""},
|
||||
{ "TYPES", 0, 0, 0, ""},
|
||||
{ "UNCOMMITTED", 0, 0, 0, ""},
|
||||
{ "UNDEFINED", 0, 0, 0, ""},
|
||||
{ "UNDO", 0, 0, 0, ""},
|
||||
{ "UNICODE", 0, 0, 0, ""},
|
||||
{ "UNION", 0, 0, 0, ""},
|
||||
{ "UNIQUE", 0, 0, 0, ""},
|
||||
{ "UNKNOWN", 0, 0, 0, ""},
|
||||
{ "UNLOCK", 0, 0, 0, ""},
|
||||
{ "UNSIGNED", 0, 0, 0, ""},
|
||||
{ "UNTIL", 0, 0, 0, ""},
|
||||
{ "UPDATE", 0, 0, 0, ""},
|
||||
{ "UPGRADE", 0, 0, 0, ""},
|
||||
{ "USAGE", 0, 0, 0, ""},
|
||||
{ "USE", 0, 0, 0, ""},
|
||||
{ "USER", 0, 0, 0, ""},
|
||||
{ "USER_RESOURCES", 0, 0, 0, ""},
|
||||
{ "USE_FRM", 0, 0, 0, ""},
|
||||
{ "USING", 0, 0, 0, ""},
|
||||
{ "UTC_DATE", 0, 0, 0, ""},
|
||||
{ "UTC_TIME", 0, 0, 0, ""},
|
||||
{ "UTC_TIMESTAMP", 0, 0, 0, ""},
|
||||
{ "VALUE", 0, 0, 0, ""},
|
||||
{ "VALUES", 0, 0, 0, ""},
|
||||
{ "VARBINARY", 0, 0, 0, ""},
|
||||
{ "VARCHAR", 0, 0, 0, ""},
|
||||
{ "VARCHARACTER", 0, 0, 0, ""},
|
||||
{ "VARIABLES", 0, 0, 0, ""},
|
||||
{ "VARYING", 0, 0, 0, ""},
|
||||
{ "WARNINGS", 0, 0, 0, ""},
|
||||
{ "WEEK", 0, 0, 0, ""},
|
||||
{ "WHEN", 0, 0, 0, ""},
|
||||
{ "WHERE", 0, 0, 0, ""},
|
||||
{ "WHILE", 0, 0, 0, ""},
|
||||
{ "VIEW", 0, 0, 0, ""},
|
||||
{ "WITH", 0, 0, 0, ""},
|
||||
{ "WORK", 0, 0, 0, ""},
|
||||
{ "WRITE", 0, 0, 0, ""},
|
||||
{ "X509", 0, 0, 0, ""},
|
||||
{ "XOR", 0, 0, 0, ""},
|
||||
{ "XA", 0, 0, 0, ""},
|
||||
{ "YEAR", 0, 0, 0, ""},
|
||||
{ "YEAR_MONTH", 0, 0, 0, ""},
|
||||
{ "ZEROFILL", 0, 0, 0, ""},
|
||||
{ "ABS", 0, 0, 0, ""},
|
||||
{ "ACOS", 0, 0, 0, ""},
|
||||
{ "ADDDATE", 0, 0, 0, ""},
|
||||
{ "ADDTIME", 0, 0, 0, ""},
|
||||
{ "AES_ENCRYPT", 0, 0, 0, ""},
|
||||
{ "AES_DECRYPT", 0, 0, 0, ""},
|
||||
{ "AREA", 0, 0, 0, ""},
|
||||
{ "ASIN", 0, 0, 0, ""},
|
||||
{ "ASBINARY", 0, 0, 0, ""},
|
||||
{ "ASTEXT", 0, 0, 0, ""},
|
||||
{ "ASWKB", 0, 0, 0, ""},
|
||||
{ "ASWKT", 0, 0, 0, ""},
|
||||
{ "ATAN", 0, 0, 0, ""},
|
||||
{ "ATAN2", 0, 0, 0, ""},
|
||||
{ "BENCHMARK", 0, 0, 0, ""},
|
||||
{ "BIN", 0, 0, 0, ""},
|
||||
{ "BIT_COUNT", 0, 0, 0, ""},
|
||||
{ "BIT_OR", 0, 0, 0, ""},
|
||||
{ "BIT_AND", 0, 0, 0, ""},
|
||||
{ "BIT_XOR", 0, 0, 0, ""},
|
||||
{ "CAST", 0, 0, 0, ""},
|
||||
{ "CEIL", 0, 0, 0, ""},
|
||||
{ "CEILING", 0, 0, 0, ""},
|
||||
{ "BIT_LENGTH", 0, 0, 0, ""},
|
||||
{ "CENTROID", 0, 0, 0, ""},
|
||||
{ "CHAR_LENGTH", 0, 0, 0, ""},
|
||||
{ "CHARACTER_LENGTH", 0, 0, 0, ""},
|
||||
{ "COALESCE", 0, 0, 0, ""},
|
||||
{ "COERCIBILITY", 0, 0, 0, ""},
|
||||
{ "COMPRESS", 0, 0, 0, ""},
|
||||
{ "CONCAT", 0, 0, 0, ""},
|
||||
{ "CONCAT_WS", 0, 0, 0, ""},
|
||||
{ "CONNECTION_ID", 0, 0, 0, ""},
|
||||
{ "CONV", 0, 0, 0, ""},
|
||||
{ "CONVERT_TZ", 0, 0, 0, ""},
|
||||
{ "COUNT", 0, 0, 0, ""},
|
||||
{ "COS", 0, 0, 0, ""},
|
||||
{ "COT", 0, 0, 0, ""},
|
||||
{ "CRC32", 0, 0, 0, ""},
|
||||
{ "CROSSES", 0, 0, 0, ""},
|
||||
{ "CURDATE", 0, 0, 0, ""},
|
||||
{ "CURTIME", 0, 0, 0, ""},
|
||||
{ "DATE_ADD", 0, 0, 0, ""},
|
||||
{ "DATEDIFF", 0, 0, 0, ""},
|
||||
{ "DATE_FORMAT", 0, 0, 0, ""},
|
||||
{ "DATE_SUB", 0, 0, 0, ""},
|
||||
{ "DAYNAME", 0, 0, 0, ""},
|
||||
{ "DAYOFMONTH", 0, 0, 0, ""},
|
||||
{ "DAYOFWEEK", 0, 0, 0, ""},
|
||||
{ "DAYOFYEAR", 0, 0, 0, ""},
|
||||
{ "DECODE", 0, 0, 0, ""},
|
||||
{ "DEGREES", 0, 0, 0, ""},
|
||||
{ "DES_ENCRYPT", 0, 0, 0, ""},
|
||||
{ "DES_DECRYPT", 0, 0, 0, ""},
|
||||
{ "DIMENSION", 0, 0, 0, ""},
|
||||
{ "DISJOINT", 0, 0, 0, ""},
|
||||
{ "ELT", 0, 0, 0, ""},
|
||||
{ "ENCODE", 0, 0, 0, ""},
|
||||
{ "ENCRYPT", 0, 0, 0, ""},
|
||||
{ "ENDPOINT", 0, 0, 0, ""},
|
||||
{ "ENVELOPE", 0, 0, 0, ""},
|
||||
{ "EQUALS", 0, 0, 0, ""},
|
||||
{ "EXTERIORRING", 0, 0, 0, ""},
|
||||
{ "EXTRACT", 0, 0, 0, ""},
|
||||
{ "EXP", 0, 0, 0, ""},
|
||||
{ "EXPORT_SET", 0, 0, 0, ""},
|
||||
{ "FIELD", 0, 0, 0, ""},
|
||||
{ "FIND_IN_SET", 0, 0, 0, ""},
|
||||
{ "FLOOR", 0, 0, 0, ""},
|
||||
{ "FORMAT", 0, 0, 0, ""},
|
||||
{ "FOUND_ROWS", 0, 0, 0, ""},
|
||||
{ "FROM_DAYS", 0, 0, 0, ""},
|
||||
{ "FROM_UNIXTIME", 0, 0, 0, ""},
|
||||
{ "GET_LOCK", 0, 0, 0, ""},
|
||||
{ "GEOMETRYN", 0, 0, 0, ""},
|
||||
{ "GEOMETRYTYPE", 0, 0, 0, ""},
|
||||
{ "GEOMCOLLFROMTEXT", 0, 0, 0, ""},
|
||||
{ "GEOMCOLLFROMWKB", 0, 0, 0, ""},
|
||||
{ "GEOMETRYCOLLECTIONFROMTEXT", 0, 0, 0, ""},
|
||||
{ "GEOMETRYCOLLECTIONFROMWKB", 0, 0, 0, ""},
|
||||
{ "GEOMETRYFROMTEXT", 0, 0, 0, ""},
|
||||
{ "GEOMETRYFROMWKB", 0, 0, 0, ""},
|
||||
{ "GEOMFROMTEXT", 0, 0, 0, ""},
|
||||
{ "GEOMFROMWKB", 0, 0, 0, ""},
|
||||
{ "GLENGTH", 0, 0, 0, ""},
|
||||
{ "GREATEST", 0, 0, 0, ""},
|
||||
{ "GROUP_CONCAT", 0, 0, 0, ""},
|
||||
{ "GROUP_UNIQUE_USERS", 0, 0, 0, ""},
|
||||
{ "HEX", 0, 0, 0, ""},
|
||||
{ "IFNULL", 0, 0, 0, ""},
|
||||
{ "INET_ATON", 0, 0, 0, ""},
|
||||
{ "INET_NTOA", 0, 0, 0, ""},
|
||||
{ "INSTR", 0, 0, 0, ""},
|
||||
{ "INTERIORRINGN", 0, 0, 0, ""},
|
||||
{ "INTERSECTS", 0, 0, 0, ""},
|
||||
{ "ISCLOSED", 0, 0, 0, ""},
|
||||
{ "ISEMPTY", 0, 0, 0, ""},
|
||||
{ "ISNULL", 0, 0, 0, ""},
|
||||
{ "IS_FREE_LOCK", 0, 0, 0, ""},
|
||||
{ "IS_USED_LOCK", 0, 0, 0, ""},
|
||||
{ "LAST_INSERT_ID", 0, 0, 0, ""},
|
||||
{ "ISSIMPLE", 0, 0, 0, ""},
|
||||
{ "LAST_DAY", 0, 0, 0, ""},
|
||||
{ "LCASE", 0, 0, 0, ""},
|
||||
{ "LEAST", 0, 0, 0, ""},
|
||||
{ "LENGTH", 0, 0, 0, ""},
|
||||
{ "LN", 0, 0, 0, ""},
|
||||
{ "LINEFROMTEXT", 0, 0, 0, ""},
|
||||
{ "LINEFROMWKB", 0, 0, 0, ""},
|
||||
{ "LINESTRINGFROMTEXT", 0, 0, 0, ""},
|
||||
{ "LINESTRINGFROMWKB", 0, 0, 0, ""},
|
||||
{ "LOAD_FILE", 0, 0, 0, ""},
|
||||
{ "LOCATE", 0, 0, 0, ""},
|
||||
{ "LOG", 0, 0, 0, ""},
|
||||
{ "LOG2", 0, 0, 0, ""},
|
||||
{ "LOG10", 0, 0, 0, ""},
|
||||
{ "LOWER", 0, 0, 0, ""},
|
||||
{ "LPAD", 0, 0, 0, ""},
|
||||
{ "LTRIM", 0, 0, 0, ""},
|
||||
{ "MAKE_SET", 0, 0, 0, ""},
|
||||
{ "MAKEDATE", 0, 0, 0, ""},
|
||||
{ "MAKETIME", 0, 0, 0, ""},
|
||||
{ "MASTER_POS_WAIT", 0, 0, 0, ""},
|
||||
{ "MAX", 0, 0, 0, ""},
|
||||
{ "MBRCONTAINS", 0, 0, 0, ""},
|
||||
{ "MBRDISJOINT", 0, 0, 0, ""},
|
||||
{ "MBREQUAL", 0, 0, 0, ""},
|
||||
{ "MBRINTERSECTS", 0, 0, 0, ""},
|
||||
{ "MBROVERLAPS", 0, 0, 0, ""},
|
||||
{ "MBRTOUCHES", 0, 0, 0, ""},
|
||||
{ "MBRWITHIN", 0, 0, 0, ""},
|
||||
{ "MD5", 0, 0, 0, ""},
|
||||
{ "MID", 0, 0, 0, ""},
|
||||
{ "MIN", 0, 0, 0, ""},
|
||||
{ "MLINEFROMTEXT", 0, 0, 0, ""},
|
||||
{ "MLINEFROMWKB", 0, 0, 0, ""},
|
||||
{ "MPOINTFROMTEXT", 0, 0, 0, ""},
|
||||
{ "MPOINTFROMWKB", 0, 0, 0, ""},
|
||||
{ "MPOLYFROMTEXT", 0, 0, 0, ""},
|
||||
{ "MPOLYFROMWKB", 0, 0, 0, ""},
|
||||
{ "MONTHNAME", 0, 0, 0, ""},
|
||||
{ "MULTILINESTRINGFROMTEXT", 0, 0, 0, ""},
|
||||
{ "MULTILINESTRINGFROMWKB", 0, 0, 0, ""},
|
||||
{ "MULTIPOINTFROMTEXT", 0, 0, 0, ""},
|
||||
{ "MULTIPOINTFROMWKB", 0, 0, 0, ""},
|
||||
{ "MULTIPOLYGONFROMTEXT", 0, 0, 0, ""},
|
||||
{ "MULTIPOLYGONFROMWKB", 0, 0, 0, ""},
|
||||
{ "NAME_CONST", 0, 0, 0, ""},
|
||||
{ "NOW", 0, 0, 0, ""},
|
||||
{ "NULLIF", 0, 0, 0, ""},
|
||||
{ "NUMGEOMETRIES", 0, 0, 0, ""},
|
||||
{ "NUMINTERIORRINGS", 0, 0, 0, ""},
|
||||
{ "NUMPOINTS", 0, 0, 0, ""},
|
||||
{ "OCTET_LENGTH", 0, 0, 0, ""},
|
||||
{ "OCT", 0, 0, 0, ""},
|
||||
{ "ORD", 0, 0, 0, ""},
|
||||
{ "OVERLAPS", 0, 0, 0, ""},
|
||||
{ "PERIOD_ADD", 0, 0, 0, ""},
|
||||
{ "PERIOD_DIFF", 0, 0, 0, ""},
|
||||
{ "PI", 0, 0, 0, ""},
|
||||
{ "POINTFROMTEXT", 0, 0, 0, ""},
|
||||
{ "POINTFROMWKB", 0, 0, 0, ""},
|
||||
{ "POINTN", 0, 0, 0, ""},
|
||||
{ "POLYFROMTEXT", 0, 0, 0, ""},
|
||||
{ "POLYFROMWKB", 0, 0, 0, ""},
|
||||
{ "POLYGONFROMTEXT", 0, 0, 0, ""},
|
||||
{ "POLYGONFROMWKB", 0, 0, 0, ""},
|
||||
{ "POSITION", 0, 0, 0, ""},
|
||||
{ "POW", 0, 0, 0, ""},
|
||||
{ "POWER", 0, 0, 0, ""},
|
||||
{ "QUOTE", 0, 0, 0, ""},
|
||||
{ "RADIANS", 0, 0, 0, ""},
|
||||
{ "RAND", 0, 0, 0, ""},
|
||||
{ "RELEASE_LOCK", 0, 0, 0, ""},
|
||||
{ "REVERSE", 0, 0, 0, ""},
|
||||
{ "ROUND", 0, 0, 0, ""},
|
||||
{ "ROW_COUNT", 0, 0, 0, ""},
|
||||
{ "RPAD", 0, 0, 0, ""},
|
||||
{ "RTRIM", 0, 0, 0, ""},
|
||||
{ "SEC_TO_TIME", 0, 0, 0, ""},
|
||||
{ "SESSION_USER", 0, 0, 0, ""},
|
||||
{ "SUBDATE", 0, 0, 0, ""},
|
||||
{ "SIGN", 0, 0, 0, ""},
|
||||
{ "SIN", 0, 0, 0, ""},
|
||||
{ "SHA", 0, 0, 0, ""},
|
||||
{ "SHA1", 0, 0, 0, ""},
|
||||
{ "SLEEP", 0, 0, 0, ""},
|
||||
{ "SOUNDEX", 0, 0, 0, ""},
|
||||
{ "SPACE", 0, 0, 0, ""},
|
||||
{ "SQRT", 0, 0, 0, ""},
|
||||
{ "SRID", 0, 0, 0, ""},
|
||||
{ "STARTPOINT", 0, 0, 0, ""},
|
||||
{ "STD", 0, 0, 0, ""},
|
||||
{ "STDDEV", 0, 0, 0, ""},
|
||||
{ "STDDEV_POP", 0, 0, 0, ""},
|
||||
{ "STDDEV_SAMP", 0, 0, 0, ""},
|
||||
{ "STR_TO_DATE", 0, 0, 0, ""},
|
||||
{ "STRCMP", 0, 0, 0, ""},
|
||||
{ "SUBSTR", 0, 0, 0, ""},
|
||||
{ "SUBSTRING", 0, 0, 0, ""},
|
||||
{ "SUBSTRING_INDEX", 0, 0, 0, ""},
|
||||
{ "SUBTIME", 0, 0, 0, ""},
|
||||
{ "SUM", 0, 0, 0, ""},
|
||||
{ "SYSDATE", 0, 0, 0, ""},
|
||||
{ "SYSTEM_USER", 0, 0, 0, ""},
|
||||
{ "TAN", 0, 0, 0, ""},
|
||||
{ "TIME_FORMAT", 0, 0, 0, ""},
|
||||
{ "TIME_TO_SEC", 0, 0, 0, ""},
|
||||
{ "TIMEDIFF", 0, 0, 0, ""},
|
||||
{ "TO_DAYS", 0, 0, 0, ""},
|
||||
{ "TOUCHES", 0, 0, 0, ""},
|
||||
{ "TRIM", 0, 0, 0, ""},
|
||||
{ "UCASE", 0, 0, 0, ""},
|
||||
{ "UNCOMPRESS", 0, 0, 0, ""},
|
||||
{ "UNCOMPRESSED_LENGTH", 0, 0, 0, ""},
|
||||
{ "UNHEX", 0, 0, 0, ""},
|
||||
{ "UNIQUE_USERS", 0, 0, 0, ""},
|
||||
{ "UNIX_TIMESTAMP", 0, 0, 0, ""},
|
||||
{ "UPPER", 0, 0, 0, ""},
|
||||
{ "UUID", 0, 0, 0, ""},
|
||||
{ "VARIANCE", 0, 0, 0, ""},
|
||||
{ "VAR_POP", 0, 0, 0, ""},
|
||||
{ "VAR_SAMP", 0, 0, 0, ""},
|
||||
{ "VERSION", 0, 0, 0, ""},
|
||||
{ "WEEKDAY", 0, 0, 0, ""},
|
||||
{ "WEEKOFYEAR", 0, 0, 0, ""},
|
||||
{ "WITHIN", 0, 0, 0, ""},
|
||||
{ "X", 0, 0, 0, ""},
|
||||
{ "Y", 0, 0, 0, ""},
|
||||
{ "YEARWEEK", 0, 0, 0, ""},
|
||||
/* end sentinel */
|
||||
{ (char *)NULL, 0, 0, 0, ""}
|
||||
};
|
||||
|
||||
@ -595,6 +1300,10 @@ static struct my_option my_long_options[] =
|
||||
{"default-character-set", OPT_DEFAULT_CHARSET,
|
||||
"Set the default character set.", (gptr*) &default_charset,
|
||||
(gptr*) &default_charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"comments", 'c', "Preserve comments. Send comments to the server."
|
||||
" The default is --skip-comments (discard comments), enable with --comments",
|
||||
(gptr*) &preserve_comments, (gptr*) &preserve_comments,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"compress", 'C', "Use compression in server/client protocol.",
|
||||
(gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
|
||||
0, 0, 0},
|
||||
@ -738,9 +1447,9 @@ static struct my_option my_long_options[] =
|
||||
0, 1},
|
||||
{"max_allowed_packet", OPT_MAX_ALLOWED_PACKET,
|
||||
"Max packet length to send to, or receive from server",
|
||||
(gptr*) &opt_max_allowed_packet, (gptr*) &opt_max_allowed_packet, 0, GET_ULONG,
|
||||
REQUIRED_ARG, 16 *1024L*1024L, 4096, (longlong) 2*1024L*1024L*1024L,
|
||||
MALLOC_OVERHEAD, 1024, 0},
|
||||
(gptr*) &opt_max_allowed_packet, (gptr*) &opt_max_allowed_packet, 0,
|
||||
GET_ULONG, REQUIRED_ARG, 16 *1024L*1024L, 4096,
|
||||
(longlong) 2*1024L*1024L*1024L, MALLOC_OVERHEAD, 1024, 0},
|
||||
{"net_buffer_length", OPT_NET_BUFFER_LENGTH,
|
||||
"Buffer for TCP/IP and socket communication",
|
||||
(gptr*) &opt_net_buffer_length, (gptr*) &opt_net_buffer_length, 0, GET_ULONG,
|
||||
@ -748,22 +1457,19 @@ static struct my_option my_long_options[] =
|
||||
{"select_limit", OPT_SELECT_LIMIT,
|
||||
"Automatic limit for SELECT when using --safe-updates",
|
||||
(gptr*) &select_limit,
|
||||
(gptr*) &select_limit, 0, GET_ULONG, REQUIRED_ARG, 1000L, 1, ~0L, 0, 1, 0},
|
||||
(gptr*) &select_limit, 0, GET_ULONG, REQUIRED_ARG, 1000L, 1, ULONG_MAX,
|
||||
0, 1, 0},
|
||||
{"max_join_size", OPT_MAX_JOIN_SIZE,
|
||||
"Automatic limit for rows in a join when using --safe-updates",
|
||||
(gptr*) &max_join_size,
|
||||
(gptr*) &max_join_size, 0, GET_ULONG, REQUIRED_ARG, 1000000L, 1, ~0L, 0, 1,
|
||||
0},
|
||||
(gptr*) &max_join_size, 0, GET_ULONG, REQUIRED_ARG, 1000000L, 1, ULONG_MAX,
|
||||
0, 1, 0},
|
||||
{"secure-auth", OPT_SECURE_AUTH, "Refuse client connecting to server if it"
|
||||
" uses old (pre-4.1.1) protocol", (gptr*) &opt_secure_auth,
|
||||
(gptr*) &opt_secure_auth, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"show-warnings", OPT_SHOW_WARNINGS, "Show warnings after every statement.",
|
||||
(gptr*) &show_warnings, (gptr*) &show_warnings, 0, GET_BOOL, NO_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
{"comments", 'c', "Preserve comments. Send comments to the server."
|
||||
" Comments are discarded by default, enable with --enable-comments",
|
||||
(gptr*) &preserve_comments, (gptr*) &preserve_comments,
|
||||
0, GET_BOOL, 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}
|
||||
};
|
||||
|
||||
@ -793,7 +1499,7 @@ static void usage(int version)
|
||||
if (version)
|
||||
return;
|
||||
printf("\
|
||||
Copyright (C) 2002 MySQL AB\n\
|
||||
Copyright (C) 2000-2008 MySQL AB\n\
|
||||
This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n\
|
||||
and you are welcome to modify and redistribute it under the GPL license\n");
|
||||
printf("Usage: %s [OPTIONS] [database]\n", my_progname);
|
||||
@ -1271,9 +1977,7 @@ static bool add_line(String &buffer,char *line,char *in_string,
|
||||
if (status.add_to_history && line[0] && not_in_history(line))
|
||||
add_history(line);
|
||||
#endif
|
||||
#ifdef USE_MB
|
||||
char *end_of_line=line+(uint) strlen(line);
|
||||
#endif
|
||||
|
||||
for (pos=out=line ; (inchar= (uchar) *pos) ; pos++)
|
||||
{
|
||||
@ -1363,7 +2067,7 @@ static bool add_line(String &buffer,char *line,char *in_string,
|
||||
}
|
||||
}
|
||||
else if (!*ml_comment && !*in_string &&
|
||||
strlen(pos) >= 10 &&
|
||||
(end_of_line - pos) >= 10 &&
|
||||
!my_strnncoll(charset_info, (uchar*) pos, 10,
|
||||
(const uchar*) "delimiter ", 10))
|
||||
{
|
||||
@ -1750,12 +2454,6 @@ static void build_completion_hash(bool rehash, bool write_info)
|
||||
|
||||
if (status.batch || quick || !current_db)
|
||||
DBUG_VOID_RETURN; // We don't need completion in batches
|
||||
|
||||
/* hash SQL commands */
|
||||
while (cmd->name) {
|
||||
add_word(&ht,(char*) cmd->name);
|
||||
cmd++;
|
||||
}
|
||||
if (!rehash)
|
||||
DBUG_VOID_RETURN;
|
||||
|
||||
@ -1765,6 +2463,12 @@ static void build_completion_hash(bool rehash, bool write_info)
|
||||
completion_hash_clean(&ht);
|
||||
free_root(&hash_mem_root,MYF(0));
|
||||
|
||||
/* hash this file's known subset of SQL commands */
|
||||
while (cmd->name) {
|
||||
add_word(&ht,(char*) cmd->name);
|
||||
cmd++;
|
||||
}
|
||||
|
||||
/* hash MySQL functions (to be implemented) */
|
||||
|
||||
/* hash all database names */
|
||||
@ -2146,7 +2850,8 @@ com_charset(String *buffer __attribute__((unused)), char *line)
|
||||
static int
|
||||
com_go(String *buffer,char *line __attribute__((unused)))
|
||||
{
|
||||
char buff[200], time_buff[32], *pos;
|
||||
char buff[200]; /* about 110 chars used so far */
|
||||
char time_buff[52+3+1]; /* time max + space&parens + NUL */
|
||||
MYSQL_RES *result;
|
||||
ulong timer, warnings;
|
||||
uint error= 0;
|
||||
@ -2212,6 +2917,8 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
||||
|
||||
do
|
||||
{
|
||||
char *pos;
|
||||
|
||||
if (quick)
|
||||
{
|
||||
if (!(result=mysql_use_result(&mysql)) && mysql_field_count(&mysql))
|
||||
@ -2233,7 +2940,9 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
||||
if (verbose >= 3 || !opt_silent)
|
||||
mysql_end_timer(timer,time_buff);
|
||||
else
|
||||
time_buff[0]=0;
|
||||
time_buff[0]= '\0';
|
||||
|
||||
/* Every branch must truncate buff . */
|
||||
if (result)
|
||||
{
|
||||
if (!mysql_num_rows(result) && ! quick && !info_flag)
|
||||
@ -3084,7 +3793,10 @@ com_connect(String *buffer, char *line)
|
||||
Two null bytes are needed in the end of buff to allow
|
||||
get_arg to find end of string the second time it's called.
|
||||
*/
|
||||
strmake(buff, line, sizeof(buff)-2);
|
||||
tmp= strmake(buff, line, sizeof(buff)-2);
|
||||
#ifdef EXTRA_DEBUG
|
||||
tmp[1]= 0;
|
||||
#endif
|
||||
tmp= get_arg(buff, 0);
|
||||
if (tmp && *tmp)
|
||||
{
|
||||
@ -3789,6 +4501,11 @@ static ulong start_timer(void)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Write as many as 52+1 bytes to buff, in the form of a legible duration of time.
|
||||
|
||||
len("4294967296 days, 23 hours, 59 minutes, 60.00 seconds") -> 52
|
||||
*/
|
||||
static void nice_time(double sec,char *buff,bool part_second)
|
||||
{
|
||||
ulong tmp;
|
||||
|
@ -465,6 +465,31 @@ Create_file event for file_id: %u\n",ae->file_id);
|
||||
Load_log_processor load_processor;
|
||||
|
||||
|
||||
/**
|
||||
Replace windows-style backslashes by forward slashes so it can be
|
||||
consumed by the mysql client, which requires Unix path.
|
||||
|
||||
@todo This is only useful under windows, so may be ifdef'ed out on
|
||||
other systems. /Sven
|
||||
|
||||
@todo If a Create_file_log_event contains a filename with a
|
||||
backslash (valid under unix), then we have problems under windows.
|
||||
/Sven
|
||||
|
||||
@param[in,out] fname Filename to modify. The filename is modified
|
||||
in-place.
|
||||
*/
|
||||
static void convert_path_to_forward_slashes(char *fname)
|
||||
{
|
||||
while (*fname)
|
||||
{
|
||||
if (*fname == '\\')
|
||||
*fname= '/';
|
||||
fname++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static bool check_database(const char *log_dbname)
|
||||
{
|
||||
return one_database &&
|
||||
@ -582,6 +607,11 @@ int process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
*/
|
||||
if (ce)
|
||||
{
|
||||
/*
|
||||
We must not convert earlier, since the file is used by
|
||||
my_open() in Load_log_processor::append().
|
||||
*/
|
||||
convert_path_to_forward_slashes((char*) ce->fname);
|
||||
ce->print(result_file, print_event_info, TRUE);
|
||||
my_free((char*)ce->fname,MYF(MY_WME));
|
||||
delete ce;
|
||||
@ -622,6 +652,7 @@ Create_file event for file_id: %u\n",exv->file_id);
|
||||
|
||||
if (fname)
|
||||
{
|
||||
convert_path_to_forward_slashes(fname);
|
||||
exlq->print(result_file, print_event_info, fname);
|
||||
my_free(fname, MYF(MY_WME));
|
||||
}
|
||||
|
@ -530,12 +530,14 @@ static int process_all_tables_in_db(char *database)
|
||||
else
|
||||
{
|
||||
while ((row = mysql_fetch_row(res)))
|
||||
{
|
||||
if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
||||
continue;
|
||||
|
||||
handle_request_for_tables(row[0], fixed_name_length(row[0]));
|
||||
}
|
||||
/* Skip tables with an engine of NULL (probably a view). */
|
||||
if (row[1])
|
||||
{
|
||||
if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
||||
continue;
|
||||
|
||||
handle_request_for_tables(row[0], fixed_name_length(row[0]));
|
||||
}
|
||||
}
|
||||
mysql_free_result(res);
|
||||
return 0;
|
||||
|
@ -51,6 +51,10 @@
|
||||
#ifdef HAVE_SYS_WAIT_H
|
||||
#include <sys/wait.h>
|
||||
#endif
|
||||
#ifdef __WIN__
|
||||
#include <direct.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef WEXITSTATUS
|
||||
# ifdef __WIN__
|
||||
@ -277,7 +281,7 @@ enum enum_commands {
|
||||
Q_REPLACE_REGEX, Q_REMOVE_FILE, Q_FILE_EXIST,
|
||||
Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_EXIT, Q_SKIP,
|
||||
Q_CHMOD_FILE, Q_APPEND_FILE, Q_CAT_FILE, Q_DIFF_FILES,
|
||||
Q_SEND_QUIT,
|
||||
Q_SEND_QUIT, Q_CHANGE_USER, Q_MKDIR, Q_RMDIR,
|
||||
|
||||
Q_UNKNOWN, /* Unknown command. */
|
||||
Q_COMMENT, /* Comments, ignored. */
|
||||
@ -366,6 +370,10 @@ const char *command_names[]=
|
||||
"cat_file",
|
||||
"diff_files",
|
||||
"send_quit",
|
||||
"change_user",
|
||||
"mkdir",
|
||||
"rmdir",
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
@ -2741,6 +2749,67 @@ void do_file_exist(struct st_command *command)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
SYNOPSIS
|
||||
do_mkdir
|
||||
command called command
|
||||
|
||||
DESCRIPTION
|
||||
mkdir <dir_name>
|
||||
Create the directory <dir_name>
|
||||
*/
|
||||
|
||||
void do_mkdir(struct st_command *command)
|
||||
{
|
||||
int error;
|
||||
static DYNAMIC_STRING ds_dirname;
|
||||
const struct command_arg mkdir_args[] = {
|
||||
"dirname", ARG_STRING, TRUE, &ds_dirname, "Directory to create"
|
||||
};
|
||||
DBUG_ENTER("do_mkdir");
|
||||
|
||||
check_command_args(command, command->first_argument,
|
||||
mkdir_args, sizeof(mkdir_args)/sizeof(struct command_arg),
|
||||
' ');
|
||||
|
||||
DBUG_PRINT("info", ("creating directory: %s", ds_dirname.str));
|
||||
error= my_mkdir(ds_dirname.str, 0777, MYF(0)) != 0;
|
||||
handle_command_error(command, error);
|
||||
dynstr_free(&ds_dirname);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
/*
|
||||
SYNOPSIS
|
||||
do_rmdir
|
||||
command called command
|
||||
|
||||
DESCRIPTION
|
||||
rmdir <dir_name>
|
||||
Remove the empty directory <dir_name>
|
||||
*/
|
||||
|
||||
void do_rmdir(struct st_command *command)
|
||||
{
|
||||
int error;
|
||||
static DYNAMIC_STRING ds_dirname;
|
||||
const struct command_arg rmdir_args[] = {
|
||||
"dirname", ARG_STRING, TRUE, &ds_dirname, "Directory to remove"
|
||||
};
|
||||
DBUG_ENTER("do_rmdir");
|
||||
|
||||
check_command_args(command, command->first_argument,
|
||||
rmdir_args, sizeof(rmdir_args)/sizeof(struct command_arg),
|
||||
' ');
|
||||
|
||||
DBUG_PRINT("info", ("removing directory: %s", ds_dirname.str));
|
||||
error= rmdir(ds_dirname.str) != 0;
|
||||
handle_command_error(command, error);
|
||||
dynstr_free(&ds_dirname);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Read characters from line buffer or file. This is needed to allow
|
||||
my_ungetc() to buffer MAX_DELIMITER_LENGTH characters for a file
|
||||
@ -3046,6 +3115,69 @@ void do_send_quit(struct st_command *command)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
SYNOPSIS
|
||||
do_change_user
|
||||
command called command
|
||||
|
||||
DESCRIPTION
|
||||
change_user [<user>], [<passwd>], [<db>]
|
||||
<user> - user to change to
|
||||
<passwd> - user password
|
||||
<db> - default database
|
||||
|
||||
Changes the user and causes the database specified by db to become
|
||||
the default (current) database for the the current connection.
|
||||
|
||||
*/
|
||||
|
||||
void do_change_user(struct st_command *command)
|
||||
{
|
||||
MYSQL *mysql = &cur_con->mysql;
|
||||
/* static keyword to make the NetWare compiler happy. */
|
||||
static DYNAMIC_STRING ds_user, ds_passwd, ds_db;
|
||||
const struct command_arg change_user_args[] = {
|
||||
{ "user", ARG_STRING, FALSE, &ds_user, "User to connect as" },
|
||||
{ "password", ARG_STRING, FALSE, &ds_passwd, "Password used when connecting" },
|
||||
{ "database", ARG_STRING, FALSE, &ds_db, "Database to select after connect" },
|
||||
};
|
||||
|
||||
DBUG_ENTER("do_change_user");
|
||||
|
||||
check_command_args(command, command->first_argument,
|
||||
change_user_args,
|
||||
sizeof(change_user_args)/sizeof(struct command_arg),
|
||||
',');
|
||||
|
||||
if (cur_con->stmt)
|
||||
{
|
||||
mysql_stmt_close(cur_con->stmt);
|
||||
cur_con->stmt= NULL;
|
||||
}
|
||||
|
||||
if (!ds_user.length)
|
||||
dynstr_set(&ds_user, mysql->user);
|
||||
|
||||
if (!ds_passwd.length)
|
||||
dynstr_set(&ds_passwd, mysql->passwd);
|
||||
|
||||
if (!ds_db.length)
|
||||
dynstr_set(&ds_db, mysql->db);
|
||||
|
||||
DBUG_PRINT("info",("connection: '%s' user: '%s' password: '%s' database: '%s'",
|
||||
cur_con->name, ds_user.str, ds_passwd.str, ds_db.str));
|
||||
|
||||
if (mysql_change_user(mysql, ds_user.str, ds_passwd.str, ds_db.str))
|
||||
die("change user failed: %s", mysql_error(mysql));
|
||||
|
||||
dynstr_free(&ds_user);
|
||||
dynstr_free(&ds_passwd);
|
||||
dynstr_free(&ds_db);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
SYNOPSIS
|
||||
do_perl
|
||||
@ -3592,7 +3724,7 @@ void do_get_file_name(struct st_command *command,
|
||||
if (*p)
|
||||
*p++= 0;
|
||||
command->last_argument= p;
|
||||
strmake(dest, name, dest_max_len);
|
||||
strmake(dest, name, dest_max_len - 1);
|
||||
}
|
||||
|
||||
|
||||
@ -4986,7 +5118,7 @@ static struct my_option my_long_options[] =
|
||||
"Don't use the memory allocation checking.", 0, 0, 0, GET_NO_ARG, NO_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
{"sleep", 'T', "Sleep always this many seconds on sleep commands.",
|
||||
(gptr*) &opt_sleep, (gptr*) &opt_sleep, 0, GET_INT, REQUIRED_ARG, -1, 0, 0,
|
||||
(gptr*) &opt_sleep, (gptr*) &opt_sleep, 0, GET_INT, REQUIRED_ARG, -1, -1, 0,
|
||||
0, 0, 0},
|
||||
{"socket", 'S', "Socket file to use for connection.",
|
||||
(gptr*) &unix_sock, (gptr*) &unix_sock, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
|
||||
@ -6847,11 +6979,14 @@ int main(int argc, char **argv)
|
||||
case Q_ECHO: do_echo(command); command_executed++; break;
|
||||
case Q_SYSTEM: do_system(command); break;
|
||||
case Q_REMOVE_FILE: do_remove_file(command); break;
|
||||
case Q_MKDIR: do_mkdir(command); break;
|
||||
case Q_RMDIR: do_rmdir(command); break;
|
||||
case Q_FILE_EXIST: do_file_exist(command); break;
|
||||
case Q_WRITE_FILE: do_write_file(command); break;
|
||||
case Q_APPEND_FILE: do_append_file(command); break;
|
||||
case Q_DIFF_FILES: do_diff_files(command); break;
|
||||
case Q_SEND_QUIT: do_send_quit(command); break;
|
||||
case Q_CHANGE_USER: do_change_user(command); break;
|
||||
case Q_CAT_FILE: do_cat_file(command); break;
|
||||
case Q_COPY_FILE: do_copy_file(command); break;
|
||||
case Q_CHMOD_FILE: do_chmod_file(command); break;
|
||||
@ -6908,7 +7043,7 @@ int main(int argc, char **argv)
|
||||
|
||||
if (save_file[0])
|
||||
{
|
||||
strmake(command->require_file, save_file, sizeof(save_file));
|
||||
strmake(command->require_file, save_file, sizeof(save_file) - 1);
|
||||
save_file[0]= 0;
|
||||
}
|
||||
run_query(cur_con, command, flags);
|
||||
|
@ -27,7 +27,7 @@
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include "rlconf.h"
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#if !defined (BUFSIZ)
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -31,7 +31,7 @@
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -27,7 +27,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -21,7 +21,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_STDLIB_H)
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "rlconf.h"
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -27,7 +27,7 @@
|
||||
#define _RLDEFS_H_
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include "config.h"
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include "rlstdc.h"
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
#define _RLWINSIZE_H_
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include "config.h"
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
/* Try to find the definitions of `struct winsize' and TIOGCWINSZ */
|
||||
|
@ -21,7 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#include <config.h>
|
||||
#include "config_readline.h"
|
||||
#ifdef HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h> /* Just for NULL. Yuck. */
|
||||
|
@ -25,7 +25,7 @@
|
||||
#define _RLTCAP_H_
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include "config.h"
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_TERMCAP_H)
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
|
@ -20,7 +20,7 @@
|
||||
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -32,7 +32,7 @@
|
||||
#if defined (VI_MODE)
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
# include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -21,7 +21,7 @@
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
#include <config.h>
|
||||
#include "config_readline.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -199,7 +199,7 @@ do
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Charset '$cs' not available. (Available are: $CHARSETS_AVAILABLE).
|
||||
See the Installation chapter in the Reference Manual.]);
|
||||
See the Installation chapter in the Reference Manual.])
|
||||
esac
|
||||
done
|
||||
|
||||
@ -380,7 +380,7 @@ case $default_charset in
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Charset $cs not available. (Available are: $CHARSETS_AVAILABLE).
|
||||
See the Installation chapter in the Reference Manual.]);
|
||||
See the Installation chapter in the Reference Manual.])
|
||||
esac
|
||||
|
||||
if test "$default_collation" = default; then
|
||||
@ -405,7 +405,7 @@ else
|
||||
Collation $default_collation is not valid for character set $default_charset.
|
||||
Valid collations are: $default_charset_collations.
|
||||
See the Installation chapter in the Reference Manual.
|
||||
]);
|
||||
])
|
||||
fi
|
||||
|
||||
AC_DEFINE_UNQUOTED([MYSQL_DEFAULT_CHARSET_NAME], ["$default_charset"],
|
||||
|
@ -756,7 +756,7 @@ case $SYSTEM_TYPE in
|
||||
esac
|
||||
if test "$CXX_VERSION"
|
||||
then
|
||||
AC_MSG_CHECKING("C++ compiler version");
|
||||
AC_MSG_CHECKING("C++ compiler version")
|
||||
AC_MSG_RESULT("$CXX $CXX_VERSION")
|
||||
fi
|
||||
AC_SUBST(CXX_VERSION)
|
||||
|
@ -126,11 +126,11 @@ AC_MSG_CHECKING(for OpenSSL)
|
||||
AC_MSG_RESULT(no)
|
||||
if test ! -z "$openssl_includes"
|
||||
then
|
||||
AC_MSG_ERROR(Can't have --with-openssl-includes without --with-openssl);
|
||||
AC_MSG_ERROR(Can't have --with-openssl-includes without --with-openssl)
|
||||
fi
|
||||
if test ! -z "$openssl_libs"
|
||||
then
|
||||
AC_MSG_ERROR(Can't have --with-openssl-libs without --with-openssl);
|
||||
AC_MSG_ERROR(Can't have --with-openssl-libs without --with-openssl)
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(openssl_libs)
|
||||
|
52
configure.in
52
configure.in
@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc)
|
||||
AC_CANONICAL_SYSTEM
|
||||
# The Docs Makefile.am parses this line!
|
||||
# remember to also change ndb version below and update version.c in ndb
|
||||
AM_INIT_AUTOMAKE(mysql, 5.0.55)
|
||||
AM_INIT_AUTOMAKE(mysql, 5.0.58)
|
||||
AM_CONFIG_HEADER([include/config.h:config.h.in])
|
||||
|
||||
PROTOCOL_VERSION=10
|
||||
@ -23,14 +23,24 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0
|
||||
# ndb version
|
||||
NDB_VERSION_MAJOR=5
|
||||
NDB_VERSION_MINOR=0
|
||||
NDB_VERSION_BUILD=55
|
||||
NDB_VERSION_BUILD=58
|
||||
NDB_VERSION_STATUS=""
|
||||
|
||||
# Set all version vars based on $VERSION. How do we do this more elegant ?
|
||||
# Remember that regexps needs to quote [ and ] since this is run through m4
|
||||
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"`
|
||||
MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"`
|
||||
MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION | sed -e 's|[[^0-9.]].*$||;s|$|.|' | sed -e 's/[[^0-9.]]//g; s/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'`
|
||||
# We take some made up examples
|
||||
#
|
||||
# VERSION 5.1.40sp1-alpha 5.0.34a
|
||||
# MYSQL_NO_DASH_VERSION 5.1.40sp1 5.0.34a
|
||||
# MYSQL_NUMERIC_VERSION 5.1.40 5.0.34
|
||||
# MYSQL_BASE_VERSION 5.1 5.0
|
||||
# MYSQL_VERSION_ID 50140 50034
|
||||
#
|
||||
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
|
||||
MYSQL_NUMERIC_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
|
||||
MYSQL_BASE_VERSION=`echo $MYSQL_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
|
||||
MYSQL_VERSION_ID=`echo $MYSQL_NUMERIC_VERSION | \
|
||||
awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
|
||||
|
||||
# Add previous major version for debian package upgrade path
|
||||
MYSQL_PREVIOUS_BASE_VERSION=4.1
|
||||
@ -216,7 +226,7 @@ CC_VERSION=`$CC --version | sed 1q`
|
||||
esac
|
||||
if test $? -eq "0"
|
||||
then
|
||||
AC_MSG_CHECKING("C Compiler version");
|
||||
AC_MSG_CHECKING("C Compiler version")
|
||||
AC_MSG_RESULT("$CC $CC_VERSION")
|
||||
else
|
||||
CC_VERSION=""
|
||||
@ -852,6 +862,7 @@ AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open))
|
||||
AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
|
||||
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
|
||||
AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt]))
|
||||
# See if we need a library for address lookup.
|
||||
AC_SEARCH_LIBS(inet_aton, [socket nsl resolv])
|
||||
|
||||
# For the sched_yield() function on Solaris
|
||||
@ -1400,7 +1411,7 @@ See the Installation chapter in the Reference Manual for more information.])
|
||||
AC_MSG_RESULT("no need to check headers")
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING("for pthread_create in -lpthread");
|
||||
AC_MSG_CHECKING("for pthread_create in -lpthread")
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lpthread"
|
||||
AC_TRY_LINK( [#include <pthread.h>],
|
||||
@ -1460,7 +1471,7 @@ then
|
||||
then
|
||||
AC_MSG_RESULT("yes")
|
||||
else
|
||||
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.]);
|
||||
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.])
|
||||
fi
|
||||
AC_MSG_RESULT("yes")
|
||||
elif test -f /usr/local/lib/libpthread.a -o -f /usr/local/lib/libpthread.so
|
||||
@ -1476,7 +1487,7 @@ then
|
||||
then
|
||||
AC_MSG_RESULT("yes")
|
||||
else
|
||||
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.]);
|
||||
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.])
|
||||
fi
|
||||
AC_MSG_RESULT("yes")
|
||||
# Hack for SCO UnixWare 7.1.x
|
||||
@ -1620,7 +1631,7 @@ else
|
||||
AC_MSG_RESULT("$with_posix_threads")
|
||||
if test "$with_posix_threads" = "no"
|
||||
then
|
||||
AC_MSG_CHECKING("for pthread_create in -lpthread");
|
||||
AC_MSG_CHECKING("for pthread_create in -lpthread")
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lpthread"
|
||||
AC_TRY_LINK(
|
||||
@ -1631,7 +1642,7 @@ else
|
||||
if test "$with_posix_threads" = "no"
|
||||
then
|
||||
LIBS=" $ac_save_LIBS -lpthreads"
|
||||
AC_MSG_CHECKING("for pthread_create in -lpthreads");
|
||||
AC_MSG_CHECKING("for pthread_create in -lpthreads")
|
||||
AC_TRY_LINK(
|
||||
[#include <pthread.h>],
|
||||
[ pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
||||
@ -1641,7 +1652,7 @@ else
|
||||
then
|
||||
# This is for FreeBSD
|
||||
LIBS="$ac_save_LIBS -pthread"
|
||||
AC_MSG_CHECKING("for pthread_create in -pthread");
|
||||
AC_MSG_CHECKING("for pthread_create in -pthread")
|
||||
AC_TRY_LINK(
|
||||
[#include <pthread.h>],
|
||||
[ pthread_create((pthread_t*) 0,(pthread_attr_t*) 0, 0, 0); ],
|
||||
@ -1941,7 +1952,7 @@ if test "$ac_cv_conv_longlong_to_float" != "yes"
|
||||
then
|
||||
AC_MSG_ERROR([Your compiler cannot convert a longlong value to a float!
|
||||
If you are using gcc 2.8.# you should upgrade to egcs 1.0.3 or newer and try
|
||||
again]);
|
||||
again])
|
||||
fi
|
||||
fi
|
||||
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
|
||||
@ -2102,7 +2113,7 @@ CFLAGS="$ORG_CFLAGS"
|
||||
AC_CHECK_FUNC(fseeko,
|
||||
[if test "$large_file_support" = no -a "$TARGET_LINUX" = "true";
|
||||
then
|
||||
AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!");
|
||||
AC_MSG_ERROR("Found fseeko symbol but large_file_support is not enabled!")
|
||||
fi]
|
||||
)
|
||||
|
||||
@ -2466,10 +2477,15 @@ AC_ARG_WITH(docs,
|
||||
if test "$with_docs" = "yes"
|
||||
then
|
||||
docs_dirs="Docs"
|
||||
if test -f "$srcdir/Docs/manual.chm" ; then
|
||||
extra_docs="manual.chm"
|
||||
fi
|
||||
else
|
||||
docs_dirs=""
|
||||
extra_docs=""
|
||||
fi
|
||||
AC_SUBST(docs_dirs)
|
||||
AC_SUBST(extra_docs)
|
||||
|
||||
# Shall we build the man pages?
|
||||
AC_ARG_WITH(man,
|
||||
@ -2673,12 +2689,14 @@ thread_dirs=
|
||||
|
||||
dnl This probably should be cleaned up more - for now the threaded
|
||||
dnl client is just using plain-old libs.
|
||||
sql_client_dirs="strings regex mysys libmysql client"
|
||||
sql_client_dirs=
|
||||
linked_client_targets="linked_libmysql_sources"
|
||||
|
||||
if test "$THREAD_SAFE_CLIENT" != "no"
|
||||
if test "$THREAD_SAFE_CLIENT" = "no"
|
||||
then
|
||||
sql_client_dirs="libmysql_r $sql_client_dirs"
|
||||
sql_client_dirs="strings regex mysys dbug extra libmysql client"
|
||||
else
|
||||
sql_client_dirs="strings regex mysys dbug extra libmysql libmysql_r client"
|
||||
linked_client_targets="$linked_client_targets linked_libmysql_r_sources"
|
||||
AC_CONFIG_FILES(libmysql_r/Makefile)
|
||||
AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should be client be thread safe])
|
||||
|
@ -44,6 +44,9 @@ TARGET_LINK_LIBRARIES(my_print_defaults strings mysys debug dbug taocrypt wsock3
|
||||
ADD_EXECUTABLE(perror perror.c)
|
||||
TARGET_LINK_LIBRARIES(perror strings mysys debug dbug wsock32)
|
||||
|
||||
ADD_EXECUTABLE(resolveip resolveip.c)
|
||||
TARGET_LINK_LIBRARIES(resolveip strings mysys debug dbug wsock32)
|
||||
|
||||
ADD_EXECUTABLE(replace replace.c)
|
||||
TARGET_LINK_LIBRARIES(replace strings mysys debug dbug wsock32)
|
||||
|
||||
|
@ -21,13 +21,15 @@
|
||||
#include <m_ctype.h>
|
||||
#include <my_sys.h>
|
||||
#include <m_string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#ifndef HAVE_BROKEN_NETINET_INCLUDES
|
||||
#include <netinet/in.h>
|
||||
#ifndef WIN32
|
||||
# include <sys/types.h>
|
||||
# include <sys/socket.h>
|
||||
# ifndef HAVE_BROKEN_NETINET_INCLUDES
|
||||
# include <netinet/in.h>
|
||||
# endif
|
||||
# include <arpa/inet.h>
|
||||
# include <netdb.h>
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
#include <my_net.h>
|
||||
#include <my_getopt.h>
|
||||
|
||||
@ -116,11 +118,21 @@ int main(int argc, char **argv)
|
||||
|
||||
while (argc--)
|
||||
{
|
||||
#ifndef WIN32
|
||||
struct in_addr addr;
|
||||
#endif
|
||||
ip = *argv++;
|
||||
|
||||
if (my_isdigit(&my_charset_latin1,ip[0]))
|
||||
/* Not compatible with IPv6! Probably should use getnameinfo(). */
|
||||
#ifdef WIN32
|
||||
taddr = inet_addr(ip);
|
||||
if(taddr != INADDR_NONE)
|
||||
{
|
||||
taddr = inet_addr(ip);
|
||||
#else
|
||||
if (inet_aton(ip, &addr) != 0)
|
||||
{
|
||||
taddr= addr.s_addr;
|
||||
#endif
|
||||
if (taddr == htonl(INADDR_BROADCAST))
|
||||
{
|
||||
puts("Broadcast");
|
||||
|
@ -219,6 +219,7 @@ double my_strtod(const char *str, char **end, int *error);
|
||||
double my_atof(const char *nptr);
|
||||
|
||||
extern char *llstr(longlong value,char *buff);
|
||||
extern char *ullstr(longlong value,char *buff);
|
||||
#ifndef HAVE_STRTOUL
|
||||
extern long strtol(const char *str, char **ptr, int base);
|
||||
extern ulong strtoul(const char *str, char **ptr, int base);
|
||||
|
@ -67,7 +67,8 @@ extern void my_print_variables(const struct my_option *options);
|
||||
extern void my_getopt_register_get_addr(gptr* (*func_addr)(const char *, uint,
|
||||
const struct my_option *));
|
||||
|
||||
ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp);
|
||||
ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp,
|
||||
bool *fixed);
|
||||
my_bool getopt_compare_strings(const char *s, const char *t, uint length);
|
||||
|
||||
C_MODE_END
|
||||
|
@ -109,36 +109,31 @@
|
||||
The macros below are used to allow build of Universal/fat binaries of
|
||||
MySQL and MySQL applications under darwin.
|
||||
*/
|
||||
#ifdef TARGET_FAT_BINARY
|
||||
# undef SIZEOF_CHARP
|
||||
# undef SIZEOF_INT
|
||||
# undef SIZEOF_LONG
|
||||
# undef SIZEOF_LONG_LONG
|
||||
# undef SIZEOF_OFF_T
|
||||
# undef SIZEOF_SHORT
|
||||
|
||||
#if defined(__i386__)
|
||||
# undef WORDS_BIGENDIAN
|
||||
# define SIZEOF_CHARP 4
|
||||
# define SIZEOF_INT 4
|
||||
# define SIZEOF_LONG 4
|
||||
# define SIZEOF_LONG_LONG 8
|
||||
# define SIZEOF_OFF_T 8
|
||||
# define SIZEOF_SHORT 2
|
||||
|
||||
#elif defined(__ppc__)
|
||||
# define WORDS_BIGENDIAN
|
||||
# define SIZEOF_CHARP 4
|
||||
# define SIZEOF_INT 4
|
||||
# define SIZEOF_LONG 4
|
||||
# define SIZEOF_LONG_LONG 8
|
||||
# define SIZEOF_OFF_T 8
|
||||
# define SIZEOF_SHORT 2
|
||||
|
||||
#else
|
||||
# error Building FAT binary for an unknown architecture.
|
||||
#endif
|
||||
#endif /* TARGET_FAT_BINARY */
|
||||
#if defined(__APPLE__) && defined(__MACH__)
|
||||
# undef SIZEOF_CHARP
|
||||
# undef SIZEOF_SHORT
|
||||
# undef SIZEOF_INT
|
||||
# undef SIZEOF_LONG
|
||||
# undef SIZEOF_LONG_LONG
|
||||
# undef SIZEOF_OFF_T
|
||||
# undef WORDS_BIGENDIAN
|
||||
# define SIZEOF_SHORT 2
|
||||
# define SIZEOF_INT 4
|
||||
# define SIZEOF_LONG_LONG 8
|
||||
# define SIZEOF_OFF_T 8
|
||||
# if defined(__i386__) || defined(__ppc__)
|
||||
# define SIZEOF_CHARP 4
|
||||
# define SIZEOF_LONG 4
|
||||
# elif defined(__x86_64__) || defined(__ppc64__)
|
||||
# define SIZEOF_CHARP 8
|
||||
# define SIZEOF_LONG 8
|
||||
# else
|
||||
# error Building FAT binary for an unknown architecture.
|
||||
# endif
|
||||
# if defined(__ppc__) || defined(__ppc64__)
|
||||
# define WORDS_BIGENDIAN
|
||||
# endif
|
||||
#endif /* defined(__APPLE__) && defined(__MACH__) */
|
||||
|
||||
|
||||
/*
|
||||
|
@ -531,6 +531,12 @@ typedef int (*qsort2_cmp)(const void *, const void *, const void *);
|
||||
#define my_b_tell(info) ((info)->pos_in_file + \
|
||||
(uint) (*(info)->current_pos - (info)->request_pos))
|
||||
|
||||
#define my_b_get_buffer_start(info) (info)->request_pos
|
||||
#define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \
|
||||
(char*) my_b_get_buffer_start(info)
|
||||
#define my_b_get_pos_in_file(info) (info)->pos_in_file
|
||||
|
||||
|
||||
/* tell write offset in the SEQ_APPEND cache */
|
||||
my_off_t my_b_append_tell(IO_CACHE* info);
|
||||
my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */
|
||||
|
@ -387,12 +387,16 @@ typedef struct st_udf_args
|
||||
|
||||
typedef struct st_udf_init
|
||||
{
|
||||
my_bool maybe_null; /* 1 if function can return NULL */
|
||||
unsigned int decimals; /* for real functions */
|
||||
unsigned long max_length; /* For string functions */
|
||||
char *ptr; /* free pointer for function data */
|
||||
my_bool const_item; /* 0 if result is independent of arguments */
|
||||
my_bool maybe_null; /* 1 if function can return NULL */
|
||||
unsigned int decimals; /* for real functions */
|
||||
unsigned long max_length; /* For string functions */
|
||||
char *ptr; /* free pointer for function data */
|
||||
my_bool const_item; /* 1 if function always returns the same value */
|
||||
} UDF_INIT;
|
||||
/*
|
||||
TODO: add a notion for determinism of the UDF.
|
||||
See Item_udf_func::update_used_tables ()
|
||||
*/
|
||||
|
||||
/* Constants when using compression */
|
||||
#define NET_HEADER_SIZE 4 /* standard header size */
|
||||
|
@ -125,9 +125,6 @@ TARGET_LINK_LIBRARIES(mysqlclient)
|
||||
ADD_DEPENDENCIES(mysqlclient_notls GenError)
|
||||
TARGET_LINK_LIBRARIES(mysqlclient_notls)
|
||||
|
||||
ADD_EXECUTABLE(myTest mytest.c)
|
||||
TARGET_LINK_LIBRARIES(myTest libmysql)
|
||||
|
||||
IF(EMBED_MANIFESTS)
|
||||
MYSQL_EMBED_MANIFEST("myTest" "asInvoker")
|
||||
ENDIF(EMBED_MANIFESTS)
|
||||
|
@ -31,7 +31,7 @@ include $(srcdir)/Makefile.shared
|
||||
libmysqlclient_la_SOURCES = $(target_sources)
|
||||
libmysqlclient_la_LIBADD = $(target_libadd) $(yassl_las)
|
||||
libmysqlclient_la_LDFLAGS = $(target_ldflags)
|
||||
EXTRA_DIST = Makefile.shared libmysql.def dll.c mytest.c CMakeLists.txt
|
||||
EXTRA_DIST = Makefile.shared libmysql.def dll.c CMakeLists.txt
|
||||
noinst_HEADERS = client_settings.h
|
||||
|
||||
# This is called from the toplevel makefile
|
||||
|
@ -1,175 +0,0 @@
|
||||
/*C4*/
|
||||
/****************************************************************/
|
||||
/* Author: Jethro Wright, III TS : 3/ 4/1998 9:15 */
|
||||
/* Date: 02/18/1998 */
|
||||
/* mytest.c : do some testing of the libmySQL.DLL.... */
|
||||
/* */
|
||||
/* History: */
|
||||
/* 02/18/1998 jw3 also sprach zarathustra.... */
|
||||
/****************************************************************/
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <mysql.h>
|
||||
|
||||
#define DEFALT_SQL_STMT "SELECT * FROM db"
|
||||
#ifndef offsetof
|
||||
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
|
||||
#endif
|
||||
|
||||
|
||||
/********************************************************
|
||||
**
|
||||
** main :-
|
||||
**
|
||||
********************************************************/
|
||||
|
||||
int
|
||||
main( int argc, char * argv[] )
|
||||
{
|
||||
|
||||
char szSQL[ 200 ], aszFlds[ 25 ][ 25 ], szDB[ 50 ] ;
|
||||
const char *pszT;
|
||||
int i, j, k, l, x ;
|
||||
MYSQL * myData ;
|
||||
MYSQL_RES * res ;
|
||||
MYSQL_FIELD * fd ;
|
||||
MYSQL_ROW row ;
|
||||
|
||||
//....just curious....
|
||||
printf( "sizeof( MYSQL ) == %d\n", (int) sizeof( MYSQL ) ) ;
|
||||
if ( argc == 2 )
|
||||
{
|
||||
strcpy( szDB, argv[ 1 ] ) ;
|
||||
strcpy( szSQL, DEFALT_SQL_STMT ) ;
|
||||
if (!strcmp(szDB,"--debug"))
|
||||
{
|
||||
strcpy( szDB, "mysql" ) ;
|
||||
printf("Some mysql struct information (size and offset):\n");
|
||||
printf("net:\t%3d %3d\n",(int) sizeof(myData->net),
|
||||
(int) offsetof(MYSQL,net));
|
||||
printf("host:\t%3d %3d\n",(int) sizeof(myData->host),
|
||||
(int) offsetof(MYSQL,host));
|
||||
printf("port:\t%3d %3d\n", (int) sizeof(myData->port),
|
||||
(int) offsetof(MYSQL,port));
|
||||
printf("protocol_version:\t%3d %3d\n",
|
||||
(int) sizeof(myData->protocol_version),
|
||||
(int) offsetof(MYSQL,protocol_version));
|
||||
printf("thread_id:\t%3d %3d\n",(int) sizeof(myData->thread_id),
|
||||
(int) offsetof(MYSQL,thread_id));
|
||||
printf("affected_rows:\t%3d %3d\n",(int) sizeof(myData->affected_rows),
|
||||
(int) offsetof(MYSQL,affected_rows));
|
||||
printf("packet_length:\t%3d %3d\n",(int) sizeof(myData->packet_length),
|
||||
(int) offsetof(MYSQL,packet_length));
|
||||
printf("status:\t%3d %3d\n",(int) sizeof(myData->status),
|
||||
(int) offsetof(MYSQL,status));
|
||||
printf("fields:\t%3d %3d\n",(int) sizeof(myData->fields),
|
||||
(int) offsetof(MYSQL,fields));
|
||||
printf("field_alloc:\t%3d %3d\n",(int) sizeof(myData->field_alloc),
|
||||
(int) offsetof(MYSQL,field_alloc));
|
||||
printf("free_me:\t%3d %3d\n",(int) sizeof(myData->free_me),
|
||||
(int) offsetof(MYSQL,free_me));
|
||||
printf("options:\t%3d %3d\n",(int) sizeof(myData->options),
|
||||
(int) offsetof(MYSQL,options));
|
||||
puts("");
|
||||
}
|
||||
}
|
||||
else if ( argc > 2 ) {
|
||||
strcpy( szDB, argv[ 1 ] ) ;
|
||||
strcpy( szSQL, argv[ 2 ] ) ;
|
||||
}
|
||||
else {
|
||||
strcpy( szDB, "mysql" ) ;
|
||||
strcpy( szSQL, DEFALT_SQL_STMT ) ;
|
||||
}
|
||||
//....
|
||||
|
||||
if ( (myData = mysql_init((MYSQL*) 0)) &&
|
||||
mysql_real_connect( myData, NULL, NULL, NULL, NULL, MYSQL_PORT,
|
||||
NULL, 0 ) )
|
||||
{
|
||||
myData->reconnect= 1;
|
||||
if ( mysql_select_db( myData, szDB ) < 0 ) {
|
||||
printf( "Can't select the %s database !\n", szDB ) ;
|
||||
mysql_close( myData ) ;
|
||||
return 2 ;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf( "Can't connect to the mysql server on port %d !\n",
|
||||
MYSQL_PORT ) ;
|
||||
mysql_close( myData ) ;
|
||||
return 1 ;
|
||||
}
|
||||
//....
|
||||
if ( ! mysql_query( myData, szSQL ) ) {
|
||||
res = mysql_store_result( myData ) ;
|
||||
i = (int) mysql_num_rows( res ) ; l = 1 ;
|
||||
printf( "Query: %s\nNumber of records found: %ld\n", szSQL, i ) ;
|
||||
//....we can get the field-specific characteristics here....
|
||||
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
|
||||
strcpy( aszFlds[ x ], fd->name ) ;
|
||||
//....
|
||||
while ( row = mysql_fetch_row( res ) ) {
|
||||
j = mysql_num_fields( res ) ;
|
||||
printf( "Record #%ld:-\n", l++ ) ;
|
||||
for ( k = 0 ; k < j ; k++ )
|
||||
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
|
||||
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
|
||||
puts( "==============================\n" ) ;
|
||||
}
|
||||
mysql_free_result( res ) ;
|
||||
}
|
||||
else printf( "Couldn't execute %s on the server !\n", szSQL ) ;
|
||||
//....
|
||||
puts( "==== Diagnostic info ====" ) ;
|
||||
pszT = mysql_get_client_info() ;
|
||||
printf( "Client info: %s\n", pszT ) ;
|
||||
//....
|
||||
pszT = mysql_get_host_info( myData ) ;
|
||||
printf( "Host info: %s\n", pszT ) ;
|
||||
//....
|
||||
pszT = mysql_get_server_info( myData ) ;
|
||||
printf( "Server info: %s\n", pszT ) ;
|
||||
//....
|
||||
res = mysql_list_processes( myData ) ; l = 1 ;
|
||||
if (res)
|
||||
{
|
||||
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
|
||||
strcpy( aszFlds[ x ], fd->name ) ;
|
||||
while ( row = mysql_fetch_row( res ) ) {
|
||||
j = mysql_num_fields( res ) ;
|
||||
printf( "Process #%ld:-\n", l++ ) ;
|
||||
for ( k = 0 ; k < j ; k++ )
|
||||
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
|
||||
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
|
||||
puts( "==============================\n" ) ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Got error %s when retreiving processlist\n",mysql_error(myData));
|
||||
}
|
||||
//....
|
||||
res = mysql_list_tables( myData, "%" ) ; l = 1 ;
|
||||
for ( x = 0 ; fd = mysql_fetch_field( res ) ; x++ )
|
||||
strcpy( aszFlds[ x ], fd->name ) ;
|
||||
while ( row = mysql_fetch_row( res ) ) {
|
||||
j = mysql_num_fields( res ) ;
|
||||
printf( "Table #%ld:-\n", l++ ) ;
|
||||
for ( k = 0 ; k < j ; k++ )
|
||||
printf( " Fld #%d (%s): %s\n", k + 1, aszFlds[ k ],
|
||||
(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
|
||||
puts( "==============================\n" ) ;
|
||||
}
|
||||
//....
|
||||
pszT = mysql_stat( myData ) ;
|
||||
puts( pszT ) ;
|
||||
//....
|
||||
mysql_close( myData ) ;
|
||||
return 0 ;
|
||||
|
||||
}
|
@ -73,6 +73,7 @@ void embedded_get_error(MYSQL *mysql, MYSQL_DATA *data)
|
||||
net->last_errno= ei->last_errno;
|
||||
strmake(net->last_error, ei->info, sizeof(net->last_error));
|
||||
memcpy(net->sqlstate, ei->sqlstate, sizeof(net->sqlstate));
|
||||
mysql->server_status= ei->server_status;
|
||||
my_free((gptr) data, MYF(0));
|
||||
}
|
||||
|
||||
@ -1027,6 +1028,7 @@ void net_send_error_packet(THD *thd, uint sql_errno, const char *err)
|
||||
ei->last_errno= sql_errno;
|
||||
strmake(ei->info, err, sizeof(ei->info)-1);
|
||||
strmov(ei->sqlstate, mysql_errno_to_sqlstate(sql_errno));
|
||||
ei->server_status= thd->server_status;
|
||||
thd->cur_data= 0;
|
||||
}
|
||||
|
||||
|
@ -454,7 +454,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
|
||||
|
||||
if ((!(param->testflag & T_SILENT)))
|
||||
printf ("- check data record references index: %d\n",key+1);
|
||||
if (keyinfo->flag & HA_FULLTEXT)
|
||||
if (keyinfo->flag & (HA_FULLTEXT | HA_SPATIAL))
|
||||
full_text_keys++;
|
||||
if (share->state.key_root[key] == HA_OFFSET_ERROR &&
|
||||
(info->state->records == 0 || keyinfo->flag & HA_FULLTEXT))
|
||||
|
@ -53,11 +53,13 @@ DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #31070: crash during conversion of charsets
|
||||
# Bug #32726: crash with cast in order by clause and cp932 charset
|
||||
#
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
select cast(a as char(1)) from t1;
|
||||
select a sounds like a from t1;
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
drop table t1;
|
||||
|
||||
DROP DATABASE d1;
|
||||
|
4
mysql-test/include/have_local_infile.inc
Normal file
4
mysql-test/include/have_local_infile.inc
Normal file
@ -0,0 +1,4 @@
|
||||
--require r/have_local_infile.require
|
||||
disable_query_log;
|
||||
show variables like 'local_infile';
|
||||
enable_query_log;
|
26
mysql-test/include/ndb_wait_connected.inc
Normal file
26
mysql-test/include/ndb_wait_connected.inc
Normal file
@ -0,0 +1,26 @@
|
||||
# Check that mysqld has reconnected to ndbd after
|
||||
# restart of ndbd
|
||||
#
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
let $mysql_errno= 1;
|
||||
let $counter= 600;
|
||||
while ($mysql_errno)
|
||||
{
|
||||
--error 0,157
|
||||
CREATE TABLE ndb_wait_connected (a int primary key);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
if (!$counter)
|
||||
{
|
||||
die Failed waiting for mysqld to reconnect to ndbd;
|
||||
}
|
||||
dec $counter;
|
||||
--sleep 0.1
|
||||
}
|
||||
}
|
||||
DROP TABLE ndb_wait_connected;
|
||||
--enable_query_log
|
||||
--enable_result_log
|
||||
|
||||
|
@ -434,8 +434,8 @@ execute stmt1 ;
|
||||
let $1= 3 ;
|
||||
while ($1)
|
||||
{
|
||||
prepare stmt1 from ' SELECT a as ccc from t1 where a+1=
|
||||
(SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) ';
|
||||
prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1=
|
||||
(SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) ';
|
||||
execute stmt1 ;
|
||||
deallocate prepare stmt1 ;
|
||||
dec $1 ;
|
||||
|
5
mysql-test/include/show_binlog_events2.inc
Normal file
5
mysql-test/include/show_binlog_events2.inc
Normal file
@ -0,0 +1,5 @@
|
||||
--let $binlog_start=98
|
||||
--replace_result $binlog_start <binlog_start>
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
--eval show binlog events from $binlog_start
|
@ -481,14 +481,9 @@ sub command_line_setup () {
|
||||
$opt_suite= "main"; # Special default suite
|
||||
my $opt_comment;
|
||||
|
||||
$opt_master_myport= 9306;
|
||||
$opt_slave_myport= 9308;
|
||||
$opt_ndbcluster_port= 9310;
|
||||
$opt_ndbcluster_port_slave= 9311;
|
||||
$im_port= 9312;
|
||||
$im_mysqld1_port= 9313;
|
||||
$im_mysqld2_port= 9314;
|
||||
|
||||
# Magic number -69.4 results in traditional test ports starting from 9306.
|
||||
set_mtr_build_thread_ports(-69.4);
|
||||
|
||||
# If so requested, we try to avail ourselves of a unique build thread number.
|
||||
if ( $ENV{'MTR_BUILD_THREAD'} ) {
|
||||
if ( lc($ENV{'MTR_BUILD_THREAD'}) eq 'auto' ) {
|
||||
@ -1322,6 +1317,7 @@ sub set_mtr_build_thread_ports($) {
|
||||
}
|
||||
|
||||
# Up to two masters, up to three slaves
|
||||
# A magic value in command_line_setup depends on these equations.
|
||||
$opt_master_myport= $mtr_build_thread * 10 + 10000; # and 1
|
||||
$opt_slave_myport= $opt_master_myport + 2; # and 3 4
|
||||
$opt_ndbcluster_port= $opt_master_myport + 5;
|
||||
@ -3769,12 +3765,11 @@ sub mysqld_arguments ($$$$) {
|
||||
|
||||
|
||||
# When mysqld is run by a root user(euid is 0), it will fail
|
||||
# to start unless we specify what user to run as. If not running
|
||||
# as root it will be ignored, see BUG#30630
|
||||
# to start unless we specify what user to run as, see BUG#30630
|
||||
my $euid= $>;
|
||||
if (!$glob_win32 and $euid == 0 and
|
||||
grep(/^--user/, @$extra_opt, @opt_extra_mysqld_opt) == 0) {
|
||||
mtr_add_arg($args, "%s--user=root");
|
||||
mtr_add_arg($args, "%s--user=root", $prefix);
|
||||
}
|
||||
|
||||
if ( $opt_valgrind_mysqld )
|
||||
|
@ -24,12 +24,18 @@ show binlog events;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
|
||||
f n Query 1 n use `test`; create table bug16206 (a int) engine= bdb
|
||||
f n Query 1 n use `test`; BEGIN
|
||||
f n Query 1 n use `test`; insert into bug16206 values(0)
|
||||
f n Query 1 n use `test`; COMMIT
|
||||
f n Query 1 n use `test`; BEGIN
|
||||
f n Query 1 n use `test`; insert into bug16206 values(1)
|
||||
f n Query 1 n use `test`; COMMIT
|
||||
f n Query 1 n use `test`; BEGIN
|
||||
f n Query 1 n use `test`; insert into bug16206 values(2)
|
||||
f n Query 1 n use `test`; COMMIT
|
||||
f n Query 1 n use `test`; BEGIN
|
||||
f n Query 1 n use `test`; insert into bug16206 values(3)
|
||||
f n Query 1 n use `test`; COMMIT
|
||||
drop table bug16206;
|
||||
set autocommit=0;
|
||||
End of 5.0 tests
|
||||
|
@ -567,4 +567,19 @@ master-bin.000001 36585 Rotate 1 36629 master-bin.000002;pos=4
|
||||
drop table t1;
|
||||
set global binlog_cache_size=@bcs;
|
||||
set session autocommit = @ac;
|
||||
drop table if exists t1;
|
||||
reset master;
|
||||
create table t1 (a bigint unsigned, b bigint(20) unsigned);
|
||||
prepare stmt from "insert into t1 values (?,?)";
|
||||
set @a= 9999999999999999;
|
||||
set @b= 14632475938453979136;
|
||||
execute stmt using @a, @b;
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
show binlog events from 0;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 98 Server version, Binlog ver: 4
|
||||
master-bin.000001 98 Query 1 219 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned)
|
||||
master-bin.000001 219 Query 1 343 use `test`; insert into t1 values (9999999999999999,14632475938453979136)
|
||||
master-bin.000001 343 Query 1 419 use `test`; drop table t1
|
||||
End of 5.0 tests
|
||||
|
15
mysql-test/r/binlog_start_comment.result
Normal file
15
mysql-test/r/binlog_start_comment.result
Normal file
@ -0,0 +1,15 @@
|
||||
reset master;
|
||||
drop table if exists t1,t2;
|
||||
create table t1 (word varchar(20)) -- create table t1;
|
||||
create table t2 (word varchar(20)) -- create table t2;
|
||||
load data infile '../std_data_ln/words.dat' into table t1 -- load data to t1;
|
||||
insert into t2 values ("Ada");
|
||||
flush logs;
|
||||
select * from t2;
|
||||
word
|
||||
Ada
|
||||
flush logs;
|
||||
select * from t2;
|
||||
word
|
||||
Ada
|
||||
drop table t1,t2;
|
@ -115,8 +115,8 @@ master-bin.000001 # Query 1 # use `test`; insert into t1 values(1)
|
||||
master-bin.000001 # Query 1 # use `test`; insert ignore into t1 values(1)
|
||||
master-bin.000001 # Query 1 # use `test`; replace into t1 values(100)
|
||||
master-bin.000001 # Query 1 # use `test`; create table t2 (a varchar(200)) engine=blackhole
|
||||
master-bin.000001 # Begin_load_query 1 # ;file_id=1;block_len=581
|
||||
master-bin.000001 # Execute_load_query 1 # use `test`; load data infile '../std_data_ln/words.dat' into table t2 ;file_id=1
|
||||
master-bin.000001 # Begin_load_query 1 # ;file_id=#;block_len=581
|
||||
master-bin.000001 # Execute_load_query 1 # use `test`; load data infile '../std_data_ln/words.dat' into table t2 ;file_id=#
|
||||
master-bin.000001 # Query 1 # use `test`; alter table t1 add b int
|
||||
master-bin.000001 # Query 1 # use `test`; alter table t1 drop b
|
||||
master-bin.000001 # Query 1 # use `test`; create table t3 like t1
|
||||
|
@ -64,6 +64,10 @@ select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
|
@ -2,6 +2,80 @@ drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
drop table if exists t4;
|
||||
SET @test_character_set= 'cp932';
|
||||
SET @test_collation= 'cp932_japanese_ci';
|
||||
SET @safe_character_set_server= @@character_set_server;
|
||||
SET @safe_collation_server= @@collation_server;
|
||||
SET character_set_server= @test_character_set;
|
||||
SET collation_server= @test_collation;
|
||||
CREATE DATABASE d1;
|
||||
USE d1;
|
||||
CREATE TABLE t1 (c CHAR(10), KEY(c));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c char(10) cp932_japanese_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
|
||||
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
|
||||
want3results
|
||||
aaa
|
||||
aaaa
|
||||
aaaaa
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c1 varchar(15) cp932_japanese_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
|
||||
SELECT c1 as want3results from t1 where c1 like 'l%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want3results from t1 where c1 like 'lo%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want1result from t1 where c1 like 'loc%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'loca%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locat%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locati%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locatio%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select cast(a as char(1)) from t1;
|
||||
cast(a as char(1))
|
||||
|
||||
|
||||
select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
SET collation_server= @safe_collation_server;
|
||||
set names cp932;
|
||||
set character_set_database = cp932;
|
||||
CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932;
|
||||
|
@ -64,6 +64,10 @@ select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
|
@ -64,6 +64,10 @@ select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
|
@ -64,6 +64,10 @@ select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
|
@ -2599,6 +2599,10 @@ select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
select 1 from t1 order by cast(a as char(1));
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
|
@ -18,7 +18,8 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t2 values (@v)/*!*/;
|
||||
insert into t2 values (@v)
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
|
@ -255,3 +255,8 @@ CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
|
||||
INSERT DELAYED INTO t2 VALUES(1);
|
||||
ERROR HY000: Table storage engine for 't2' doesn't have this option
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT DELAYED INTO t1 SET b= b();
|
||||
ERROR 42S22: Unknown column 'b' in 'field list'
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
@ -234,43 +234,6 @@ ERROR 42S22: Unknown column 't2.x' in 'order clause'
|
||||
DELETE FROM t1 ORDER BY (SELECT x);
|
||||
ERROR 42S22: Unknown column 'x' in 'field list'
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
a INT
|
||||
);
|
||||
CREATE TABLE t2 (
|
||||
a INT
|
||||
);
|
||||
CREATE DATABASE db1;
|
||||
CREATE TABLE db1.t1 (
|
||||
a INT
|
||||
);
|
||||
INSERT INTO db1.t1 (a) SELECT * FROM t1;
|
||||
CREATE DATABASE db2;
|
||||
CREATE TABLE db2.t1 (
|
||||
a INT
|
||||
);
|
||||
INSERT INTO db2.t1 (a) SELECT * FROM t2;
|
||||
DELETE FROM t1 alias USING t1, t2 alias WHERE t1.a = alias.a;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alias USING t1, t2 alias WHERE t1.a = alias.a' at line 1
|
||||
DELETE FROM alias USING t1, t2 alias WHERE t1.a = alias.a;
|
||||
DELETE FROM t1, alias USING t1, t2 alias WHERE t1.a = alias.a;
|
||||
DELETE FROM t1, t2 USING t1, t2 alias WHERE t1.a = alias.a;
|
||||
ERROR 42S02: Unknown table 't2' in MULTI DELETE
|
||||
DELETE FROM db1.t1 alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a' at line 1
|
||||
DELETE FROM alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
|
||||
ERROR 42S02: Unknown table 'alias' in MULTI DELETE
|
||||
DELETE FROM db2.alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a;
|
||||
DELETE FROM t1 USING t1 WHERE a = 1;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
DELETE FROM t1 alias USING t1 alias WHERE a = 2;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alias USING t1 alias WHERE a = 2' at line 1
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
DROP TABLE t1, t2;
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
|
@ -87,3 +87,23 @@ Warnings:
|
||||
Note 1003 select '1' AS `f1`,'1' AS `f2` from `test`.`t1` having 1
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
CREATE TABLE t1(c INT);
|
||||
INSERT INTO t1 VALUES (),();
|
||||
CREATE TABLE t2 (b INT,
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b));
|
||||
INSERT INTO t2 VALUES (),(),();
|
||||
EXPLAIN SELECT 1 FROM
|
||||
(SELECT 1 FROM t2,t1 WHERE b < c GROUP BY 1 LIMIT 1) AS d2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
X X X X X X X X X const row not found
|
||||
X X X X X X X X X
|
||||
X X X X X X X X X Range checked for each record (index map: 0xFFFFFFFFFF)
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
|
@ -1934,6 +1934,117 @@ select * from federated.t2;
|
||||
a
|
||||
1
|
||||
drop table federated.t1, federated.t2;
|
||||
create table t1 (a varchar(256));
|
||||
drop view if exists v1;
|
||||
create view v1 as select a from t1;
|
||||
create table t1
|
||||
(a varchar(256)) engine=federated
|
||||
connection='mysql://root@127.0.0.1:SLAVE_PORT/test/v1';
|
||||
select 1 from t1 order by a;
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
drop table t1;
|
||||
drop view v1;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
@ -271,7 +271,7 @@ group_concat(distinct s1 order by s2)
|
||||
c,b,a
|
||||
select group_concat(distinct s1 order by s2) from t1;
|
||||
group_concat(distinct s1 order by s2)
|
||||
c,b,a,c
|
||||
c,b,a
|
||||
drop table t1;
|
||||
create table t1 (a int, c int);
|
||||
insert into t1 values (1, 2), (2, 3), (2, 4), (3, 5);
|
||||
@ -870,4 +870,65 @@ select group_concat(f1) from t1;
|
||||
group_concat(f1)
|
||||
,
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (2, 3);
|
||||
SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a ORDER BY b)
|
||||
1,2
|
||||
SELECT GROUP_CONCAT(DISTINCT a ORDER BY b DESC) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a ORDER BY b DESC)
|
||||
2,1
|
||||
SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a)
|
||||
1,2
|
||||
SELECT GROUP_CONCAT(DISTINCT a + 1 ORDER BY 3 - b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a + 1 ORDER BY 3 - b)
|
||||
3,2
|
||||
SELECT GROUP_CONCAT(DISTINCT a + 1 ORDER BY b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a + 1 ORDER BY b)
|
||||
2,3
|
||||
SELECT GROUP_CONCAT(a ORDER BY 3 - b) FROM t1;
|
||||
GROUP_CONCAT(a ORDER BY 3 - b)
|
||||
2,2,1
|
||||
CREATE TABLE t2 (a INT, b INT, c INT, d INT);
|
||||
INSERT INTO t2 VALUES (1,1, 1,1), (1,1, 2,2), (1,2, 2,1), (2,1, 1,2);
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY c, d) FROM t2;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY c, d)
|
||||
11,21,12
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY d, c) FROM t2;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY d, c)
|
||||
11,12,21
|
||||
CREATE TABLE t3 (a INT, b INT, c INT);
|
||||
INSERT INTO t3 VALUES (1, 1, 1), (2, 1, 2), (3, 2, 1);
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY b, c) FROM t3;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY b, c)
|
||||
11,21,32
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY c, b) FROM t3;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY c, b)
|
||||
11,32,21
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY a, b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY a, b)
|
||||
11,22,23
|
||||
SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT b, a ORDER BY a, b)
|
||||
11,22,32
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY b, a) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY b, a)
|
||||
11,22,23
|
||||
SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY a, b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT b, a ORDER BY a, b)
|
||||
11,22,32
|
||||
SELECT GROUP_CONCAT(DISTINCT a ORDER BY a, b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a ORDER BY a, b)
|
||||
1,2
|
||||
SELECT GROUP_CONCAT(DISTINCT b ORDER BY b, a) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT b ORDER BY b, a)
|
||||
1,2,3
|
||||
SELECT GROUP_CONCAT(DISTINCT a, b ORDER BY a) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT a, b ORDER BY a)
|
||||
11,23,22
|
||||
SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY b) FROM t1;
|
||||
GROUP_CONCAT(DISTINCT b, a ORDER BY b)
|
||||
11,22,32
|
||||
DROP TABLE t1, t2, t3;
|
||||
End of 5.0 tests
|
||||
|
@ -1407,4 +1407,16 @@ SELECT COUNT(*), a FROM t1;
|
||||
COUNT(*) a
|
||||
4 1
|
||||
DROP TABLE t1;
|
||||
set SQL_MODE=ONLY_FULL_GROUP_BY;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4);
|
||||
CREATE VIEW v1 AS SELECT a,(a + 1) AS y FROM t1;
|
||||
EXPLAIN EXTENDED SELECT y FROM v1 GROUP BY v1.y;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
|
||||
Warnings:
|
||||
Note 1003 select (`test`.`t1`.`a` + 1) AS `y` from `test`.`t1` group by (`test`.`t1`.`a` + 1)
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
SET SQL_MODE=DEFAULT;
|
||||
End of 5.0 tests
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user