diff options
author | unknown <monty@narttu.mysql.fi> | 2003-02-26 01:03:47 +0200 |
---|---|---|
committer | unknown <monty@narttu.mysql.fi> | 2003-02-26 01:03:47 +0200 |
commit | a7e3ba1df50e4be9148baa2396a0d19f4fe73b8e (patch) | |
tree | c9b14451b3f66dc4b11dc35d49edd35f23787e07 | |
parent | 829af501690380ce88d2db88de279e3f04e9b856 (diff) | |
parent | bebafeba4480537414e11dbe8ce08414077e5c78 (diff) | |
download | mariadb-git-a7e3ba1df50e4be9148baa2396a0d19f4fe73b8e.tar.gz |
Merge with 4.0.11
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
BUILD/FINISH.sh:
Auto merged
client/mysqldump.c:
Auto merged
include/my_base.h:
Auto merged
include/my_pthread.h:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/ut/ut0mem.c:
Auto merged
myisam/myisamchk.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/bigint.result:
Auto merged
mysql-test/r/handler.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/innodb_handler.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/t/bigint.test:
Auto merged
mysql-test/t/handler.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/innodb_handler.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/share/czech/errmsg.txt:
Auto merged
sql/share/danish/errmsg.txt:
Auto merged
sql/share/dutch/errmsg.txt:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/share/estonian/errmsg.txt:
Auto merged
sql/share/french/errmsg.txt:
Auto merged
sql/share/greek/errmsg.txt:
Auto merged
sql/share/hungarian/errmsg.txt:
Auto merged
sql/share/italian/errmsg.txt:
Auto merged
sql/share/japanese/errmsg.txt:
Auto merged
sql/share/korean/errmsg.txt:
Auto merged
sql/share/norwegian-ny/errmsg.txt:
Auto merged
sql/share/norwegian/errmsg.txt:
Auto merged
sql/share/polish/errmsg.txt:
Auto merged
sql/share/portuguese/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/share/russian/errmsg.txt:
Auto merged
sql/share/slovak/errmsg.txt:
Auto merged
sql/share/spanish/errmsg.txt:
Auto merged
sql/share/swedish/errmsg.txt:
Auto merged
sql/share/ukrainian/errmsg.txt:
Auto merged
sql/table.h:
Auto merged
77 files changed, 1391 insertions, 149 deletions
diff --git a/.bzrignore b/.bzrignore index 28264672c82..c34c46116c5 100644 --- a/.bzrignore +++ b/.bzrignore @@ -486,6 +486,8 @@ repl-tests/test-repl/sum-wlen-slave.master.re repl-tests/test-repl/sum-wlen-slave.master.reje scripts/fill_func_tables scripts/fill_func_tables.sql +scripts/fill_help_tables +scripts/fill_help_tables.sql scripts/make_binary_distribution scripts/msql2mysql scripts/mysql_config @@ -570,6 +572,9 @@ strings/ctype_autoconf.c strings/ctype_extra_sources.c support-files/MacOSX/Description.plist support-files/MacOSX/Info.plist +support-files/MacOSX/StartupParameters.plist +support-files/MacOSX/postinstall +support-files/MacOSX/preinstall support-files/binary-configure support-files/my-huge.cnf support-files/my-large.cnf @@ -596,5 +601,3 @@ vio/test-ssl vio/test-sslclient vio/test-sslserver vio/viotest-ssl -scripts/fill_help_tables.sql -scripts/fill_help_tables diff --git a/BUILD/FINISH.sh b/BUILD/FINISH.sh index 2c2b4925c3d..32a4efefdfb 100644 --- a/BUILD/FINISH.sh +++ b/BUILD/FINISH.sh @@ -11,7 +11,7 @@ done commands="\ $make -k clean || true -/bin/rm -f */.deps/*.P config.cache innobase/config.cache bdb/build_unix/config.cache +/bin/rm -rf */.deps/*.P config.cache innobase/config.cache bdb/build_unix/config.cache bdb/dist/autom4te.cache autom4te.cache innobase/autom4te.cache; aclocal || (echo \"Can't execute aclocal\" && exit 1) autoheader || (echo \"Can't execute autoheader\" && exit 1) diff --git a/BUILD/compile-pentium-debug-max b/BUILD/compile-pentium-debug-max index 1684686ce8c..f71b849384f 100755 --- a/BUILD/compile-pentium-debug-max +++ b/BUILD/compile-pentium-debug-max @@ -3,7 +3,7 @@ path=`dirname $0` . "$path/SETUP.sh" -extra_flags="$pentium_cflags $debug_cflags" +extra_flags="$pentium_cflags $debug_cflags -DBIG_TABLES" c_warnings="$c_warnings $debug_extra_warnings" cxx_warnings="$cxx_warnings $debug_extra_warnings" extra_configs="$pentium_configs $debug_configs" diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index e06e7ccef50..c28491c9e33 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -18,6 +18,7 @@ bk@admin.bk davida@isil.mysql.com gluh@gluh.(none) gluh@gluh.mysql.r18.ru +greg@mysql.com guilhem@mysql.com gweir@work.mysql.com heikki@donna.mysql.fi diff --git a/Build-tools/Bootstrap b/Build-tools/Bootstrap new file mode 100755 index 00000000000..969ab748e80 --- /dev/null +++ b/Build-tools/Bootstrap @@ -0,0 +1,369 @@ +#!/usr/bin/perl -w +# +# Bootstrap +# +# Script to export a given BK source tree into a separate directory +# and create the source distribution to be used for all binary builds +# +# Use the "--help" option for more info! +# +# written by Lenz Grimmer <lenz@mysql.com> +# + +use Getopt::Long; +Getopt::Long::Configure ("bundling"); + +# Include helper functions +$LOGGER= "$ENV{HOME}/bin/logger.pm"; +if (-f $LOGGER) +{ + do "$LOGGER"; +} +else +{ + die "ERROR: $LOGGER cannot be found!\n"; +} + +# Some predefined settings +$build_command= "BUILD/compile-pentium-max"; +chomp ($LOGFILE= `pwd`); +$LOGFILE.= "/Bootstrap.log"; +chomp ($opt_directory= `pwd`); +$opt_docdir= $opt_directory . "/mysqldoc"; +$opt_changelog= undef; +$opt_delete= undef; +$opt_dry_run= undef; +$opt_export_only= undef; +$opt_help= $opt_verbose= 0; +$opt_log= undef; +$opt_mail= ""; +$opt_suffix= ""; +$opt_test= undef; +$opt_skip_check= undef; +$opt_skip_manual= undef; +$version= "unknown"; + +GetOptions( + "changelog|c:s", + "directory|d=s", + "delete", + "docdir=s", + "dry-run", + "export-only|e", + "help|h", + "log|l:s", + "mail|m=s", + "revision|r=s", + "revision|r=s", + "skip-check|s", + "skip-manual", + "suffix=s", + "test|t", + "verbose|v" +) || print_help(""); + +# +# Override predefined Log file name +# +if (defined $opt_log) +{ + if ($opt_log ne "") + { + if ($opt_log =~ /^\/.*/) + { + $LOGFILE= $opt_log; + } + else + { + chomp ($LOGFILE= `pwd`); + $LOGFILE.= "/" . $opt_log; + } + } +} + +print_help("") if ($opt_help); +defined($REPO=$ARGV[0]) || print_help("Please enter the BK repository to be used!"); + +&logger("Starting build"); +&abort("The directory \"$REPO\" could not be found!") if (!-d $REPO); +&logger("Using $REPO as the BK parent repository"); +system ("bk help > /dev/null") == 0 or &abort("Cannot execute BitKeeper binary!"); +system ("bk root $REPO > /dev/null 2>&1") == 0 or &abort("$REPO does not seem to be a valid BK repository!"); + +if (($opt_directory ne ".") && (!-d $opt_directory && !$opt_dry_run)) +{ + &abort("Could not find target directory \"$opt_directory\"!"); +} + +&logger("Logging to $LOGFILE") if (defined $opt_log); + +# +# Use a temporary name until we know the version number +# +$target_dir= $opt_directory . "/mysql-" . $$ . "-" . time() . ".tmp"; +&logger("Using temporary directory $target_dir"); +&abort("Target directory $target_dir already exists!") if (-d $target_dir && !$opt_dry_run); + +# +# Export the BK tree +# +$command= "bk export "; +$command.= "-r " . $opt_revision . " " if $opt_revision; +$command.= "-v " if ($opt_verbose || defined $opt_log); +$command.= $REPO . " " . $target_dir; +&logger("Exporting $REPO"); +&run_command($command, "Could not create $target_dir!"); + +# +# Make sure we can write all files +# +$command= "find $target_dir -type f -print0 | xargs --null chmod u+w"; +&run_command($command, "Failed to fix file permissions!"); + +# +# Try to obtain version number from newly extracted configure.in +# +$CONF="$target_dir/configure.in"; +&abort("Could not find \"$CONF\" to determine version!") if (!-f $CONF && !$opt_dry_run); + +# +# The following can only be done, if the tree has actually been +# exported - it cannot be performed in a dry run. +# +if (!$opt_dry_run) +{ + open (CONF, $CONF) or &abort("Unable to open \"$CONF\": $!"); + @conf= <CONF>; + close CONF; + + foreach (@conf) + { + m/^AM_INIT_AUTOMAKE\(mysql, ([1-9]\.[0-9]{1,2}\.[0-9]{1,2}.*)\)/; + $version= $1; + } + &logger("Found version string: $version"); + + # + # Add suffix to version string and write out the modified file + # + if ($opt_suffix) + { + $opt_suffix= "-" . &ymd() if ($opt_suffix eq "YMD"); + + &logger("Replacing $version with $version$opt_suffix"); + foreach (@conf) + { + s/^AM_INIT_AUTOMAKE.*/AM_INIT_AUTOMAKE\(mysql, $version$opt_suffix\)/; + } + open(CONF,">$CONF") or &abort("Unable to open \"$CONF\": $!"); + print CONF @conf; + close(CONF); + } +} + +# +# Rename directory according to the version number found in configure.in +# of the extracted tree (plus suffix, if requested) +# +$temp_name= $target_dir; +$target_dir= $opt_directory . "/mysql-" . $version . $opt_suffix . "-build"; +if (-d $target_dir) +{ + &logger("Target directory $target_dir already exists!"); + if ($opt_delete) + { + &logger("Deleting $target_dir..."); + $command= "rm "; + $command.= "-v " if ($opt_verbose || defined $opt_log); + $command.= "$target_dir"; + &run_command($command, "Could not delete $target_dir!"); + } + else + { + &logger("Renaming $target_dir to $target_dir.old." . $$); + $command= "mv "; + $command.= "-v " if ($opt_verbose || defined $opt_log); + $command.= "$target_dir $target_dir.old." . $$; + &run_command($command, "Could not rename $target_dir!"); + } +} + +&logger("Renaming temporary directory to $target_dir"); +$command= "mv "; +$command.= "-v " if ($opt_verbose || defined $opt_log); +$command.= "$temp_name $target_dir"; +&run_command($command, "Could not rename $temp_name!"); + +# +# Add a ChangeLog (make dist will pick it up automatically) +# +if (defined $opt_changelog) +{ + # + # Use some magic to obtain the correct ChangeSet number that identifies + # the last tagged ChangeSet (this relies heavily on our current tagging + # practice!) + # + my $revision= ""; + if ($opt_changelog eq "last") + { + if (!$opt_revision) + { + $revision= `bk changes -t -d':REV:' -n $REPO | head -1`; + } + else + { + $revision= `bk changes -r..$opt_revision -t -d':REV:' -n $REPO | head -2 | tail -1`; + } + chomp($revision); + $opt_changelog= $revision; + } + + $msg= "Adding $target_dir/ChangeLog"; + $msg.= " (down to revision $opt_changelog)" if $opt_changelog ne ""; + &logger($msg); + $command= "bk changes -v"; + $command.= " -r" if ($opt_changelog ne "" || $opt_revision); + $command.= $opt_changelog if $opt_changelog ne ""; + $command.= ".." if ($opt_changelog ne "" && !$opt_revision); + $command.= ".." . $opt_revision if $opt_revision; + $command.= " " . $REPO . " > $target_dir/ChangeLog"; + &logger($command); + # We cannot use run_command here because of output redirection + if (!$opt_dry_run) + { + system($command) == 0 or &abort("Could not create $target_dir/ChangeLog!"); + } +} + +# +# Add the latest manual from the mysqldoc tree +# +if (!$opt_skip_manual) +{ + $msg= "Adding manual.texi"; + &logger($msg); + $command= "install -m 644 $opt_docdir/Docs/{manual,reservedwords}.texi"; + $command.= " $target_dir/Docs/"; + &run_command($command, "Could not update the manual in $target_dir/Docs/!"); +} + +# +# Abort here, if we just wanted to export the tree +# +if ($opt_export_only) +{ + &logger("SUCCESS: Export finished successfully."); + exit 0; +} + +# +# Enter the target directory first +# +&logger("Entering $target_dir"); +if (!$opt_dry_run) +{ + chdir($target_dir) or &abort("Cannot chdir to $target_dir: $!"); +} + +# +# Now build the source distribution +# +&logger("Compiling"); +$command= $build_command; +&run_command($command, "Compilation failed!"); + +# +# Testing the built binary by running "make test" (optional) +# +if ($opt_test) +{ + &logger ("Running test suite"); + $command= "make test"; + &run_command($command, "\"make test\" failed!"); +} + +# +# Pack it all up +# +&logger("Creating source distribution"); +$command= "make dist"; +&run_command($command, "make dist failed!"); + +# +# Run "make distcheck" to verify the source archive +# +if (!$opt_skip_check) +{ + &logger ("Checking source distribution"); + $command= "make distcheck"; + &run_command($command, "make distcheck failed!"); +} + +# +# All done when we came down here +# +&logger("SUCCESS: Build finished successfully.") if (!$opt_dry_run); +exit 0; + +# +# Print the help text message (with an optional message on top) +# +sub print_help +{ + my $message= $_[0]; + if ($message ne "") + { + print "\n"; + print "ERROR: $message\n"; + } + print <<EOF; + +Usage: Bootstrap [options] <bk repository> + +Checks out (exports) a clear-text version of the given local BitKeeper +repository, creates and adds a Changelog file (if requested), adds the +latest manual.texi from the mysqldoc tree and builds a source distribution +(*.tar.gz) file. Optionally, the test suite can be run before the source +archive is being created. + +Options: + +-c, --changelog[=<rev>] Add a ChangeLog [down to revision <rev>] + This will automatically be included in the source + distribution. To get a ChangeLog down to the last + tagged Changeset, simply use "last" as the revision + number. +--delete Delete an already existing distribution directory + in the target directory instead of renaming it. +-d, --directory=<dir> Specify the target directory + (default is "$opt_directory") +--docdir=<dir> Use the MySQL documentation BK tree located in in <dir> + (default is "$opt_docdir") +--dry-run Dry run without executing +-e, --export-only Just export (and add the ChangeLog, if requested), + do not build or test the source distribution +-h, --help Print this help message +-l, --log[=<filename>] Write a log file [to <filename>] + (default is "$LOGFILE") +-m, --mail=<address> Mail a failure report to the given address (and + include a log file snippet, if logging is enabled) + Note that the \@-Sign needs to be quoted! + Example: --mail=user\\\@domain.com +-r, --revision=<rev> Export the tree as of revision <rev> + (default is up to the latest revision) +-s, --skip-check Skip checking the distribution with "make distcheck" +--skip-manual Skip updating the manual from the mysqldoc tree +--suffix=<suffix> Append <suffix> to the version number in configure.in. + Using the special suffix "YMD" will add the current + date as the suffix (e.g. "-20020518"). +-t, --test Run the test suite after build +-v, --verbose Be verbose + +Example: + + Bootstrap -c last -v -l -- mysql-4.0 + +EOF + exit 1; +} diff --git a/Build-tools/Do-pkg b/Build-tools/Do-pkg new file mode 100755 index 00000000000..67c0e612828 --- /dev/null +++ b/Build-tools/Do-pkg @@ -0,0 +1,207 @@ +#!/usr/bin/perl -w +# +# Do-pkg - convert a binary distribution into a Mac OS X PKG and put it +# inside a Disk Image (.dmg) +# +# Use the "--help" option for more info! +# +# written by Lenz Grimmer <lenz@mysql.com> +# + +use Getopt::Long; +Getopt::Long::Configure ("bundling"); + +$opt_dry_run= undef; +$opt_help= undef; +$opt_log= undef; +$opt_mail= ""; +$opt_suffix= undef; +$opt_verbose= undef; +$opt_version= undef; + +GetOptions( + "dry-run", + "help|h", + "log|l:s", + "mail|m=s", + "suffix=s", + "verbose|v", + "version=s", +) || &print_help; + +# Include helper functions +chomp($PWD= `pwd`); +$LOGGER= "$PWD/logger.pm"; +if (-f $LOGGER) +{ + do "$LOGGER"; +} +else +{ + die "ERROR: $LOGGER cannot be found!\n"; +} + +$PM= "/Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker"; +$TMP= "/tmp/PKGBUILD"; +$PKGROOT= "$TMP/PMROOT"; +$PKGDEST= "$TMP/PKG"; +$RESOURCE_DIR= "$TMP/Resources"; +$SUFFIX= $opt_suffix; +$VERSION= $opt_version; +($MAJOR, $MINOR, $RELEASE)= split(/\./, $VERSION); +$NAME= "mysql$SUFFIX-$VERSION"; +chomp($HOST= `hostname`); +chomp($ID= `whoami`); +$HOST=~ /^([^.-]*)/; +$HOST= $1; +$LOGFILE= "$PWD/Logs/$HOST-$MAJOR.$MINOR$SUFFIX.log"; +$BUILDDIR= "$PWD/$HOST"; +$SUPFILEDIR= <$BUILDDIR/mysql*-$VERSION/support-files/MacOSX>; +$TAR= <$BUILDDIR/$NAME-apple-darwin*-powerpc.tar.gz>; +$INFO= <$SUPFILEDIR/Info.plist>; +$DESC= <$SUPFILEDIR/Description.plist>; +@RESOURCES= qw/ ReadMe.txt postinstall preinstall /; + +&print_help("") if ($opt_help || !$opt_suffix || !$opt_version); + +# +# Override predefined Log file name +# +if (defined $opt_log) +{ + if ($opt_log ne "") + { + if ($opt_log =~ /^\/.*/) + { + $LOGFILE= $opt_log; + } + else + { + $LOGFILE= $PWD . "/" . $opt_log; + } + } +} + +# Creating the UFS disk image requires root privileges +die("You must be root to run this script!") if ($ID ne "root" && !$opt_dry_run); + +foreach $file ($TAR, $INFO, $DESC) +{ + &abort("Unable to find $file!") if (!-f $file); +} + +# Remove old temporary build directories first +&logger("Cleaning up temporary build directories"); +&run_command("rm -rf $TMP", "Could not clean up $TMP!"); +&logger("Creating temp directories"); +foreach $dir ($TMP, $PKGROOT, $PKGDEST, $RESOURCE_DIR) +{ + if (!-d $dir) + { + &run_command("mkdir $dir", "Could not make directory $dir!"); + } +} + +foreach $resfile (@RESOURCES) +{ + $command= "cp $SUPFILEDIR/$resfile $RESOURCE_DIR"; + &run_command($command, "Error while copying $SUPFILEDIR/$resfile to $RESOURCE_DIR"); +} + +# Extract the binary tarball and create the "mysql" symlink +&logger("Extracting $TAR to $PKGROOT"); +&run_command("gnutar zxf $TAR -C $PKGROOT", "Unable to extract $TAR!"); +&run_command("cd $PKGROOT ; ln -s mysql* ./mysql", "Unable to create symlink!"); +&run_command("chown -R root.wheel $PKGROOT/*", "Cannot chown $PKGROOT!"); + +# Now build the PGK using PackageMaker +# The "|| true" is a nasty hack to work around a problem with Package Maker +# returning a non-zero value, even though the package was created correctly +&logger("Running PackageMaker"); +$command= "$PM -build -p $PKGDEST/$NAME.pkg -f $PKGROOT -r $RESOURCE_DIR -i $INFO -d $DESC || true"; +&run_command($command, "Error while building package!"); + +&logger("Removing $PKGROOT"); +&run_command("rm -rf $PKGROOT", "Unable to remove $PKGROOT!"); + +# Determine the size of the Disk image to be created and add a 5% safety +# margin for filesystem overhead +&logger("Determining required disk image size for $PKGDEST"); +if (! $opt_dry_run) +{ + chomp($_= `du -sk $PKGDEST`); + @size= split(); + $size= int($size[0]+($size[0]*0.05)); + &logger("Disk image size: $size KB"); +} + +&abort("Zero bytes? Something is wrong here!") if ($size == 0); + +# Now create and mount the disk image +$TMPNAME= $NAME . ".tmp"; +&logger("Creating temporary Disk image $TMPNAME.dmg"); +$command= "hdiutil create $TMPNAME -size ${size}k -ov -fs UFS -volname $NAME"; +&run_command($command, "Unable to create disk image $TMPNAME.dmg!"); +&logger("Attaching Disk image $TMPNAME.dmg"); +&run_command("hdid $TMPNAME.dmg", "Unable to attach $TMPNAME.dmg!"); + +# Install the PKG into the .dmg +chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f3 -d" "`) if (!$opt_dry_run); +&logger("Copying $PKGDEST/$NAME.pkg to Disk image /Volumes/$NAME"); +&run_command("ditto $PKGDEST /Volumes/$NAME", "Could not copy $PKGDEST to /Volumes/$NAME!"); +&run_command("ditto $RESOURCE_DIR/ReadMe.txt /Volumes/$NAME", "Could not copy $RESOURCE_DIR/ReadMe.txt to /Volumes/$NAME!"); +chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f1 -d" "`) if (!$opt_dry_run); +&abort("/Volumes/$NAME not attached!") if (!$mountpoint && !$opt_dry_run); +&logger("Unmounting $mountpoint"); +&run_command("hdiutil detach $mountpoint", "Unable to detach $mountpoint"); +&run_command("rm -f $NAME.dmg", "Unable to remove $NAME.dmg!") if (-f "$NAME.dmg"); +&logger("Compressing disk image"); +$command= "hdiutil convert $TMPNAME.dmg -format UDZO -imagekey zlib-level=9 -o $NAME.dmg"; +&run_command($command, "Unable to compress disk image!"); + +# Final cleanups +&logger("Removing $TMPNAME.dmg"); +&run_command("rm -f $TMPNAME.dmg", "Unable to remove $TMPNAME.dmg!"); +&logger("Removing $TMP"); +&run_command("rm -rf $TMP", "Unable to remove $TMP!"); + +&logger("SUCCESS: $NAME.dmg created.") if (!$opt_dry_run); +exit 0; + +sub print_help +{ + my $message= $_[0]; + if ($message ne "") + { + print "\n"; + print "ERROR: $message\n"; + } + print <<EOF; + +Usage: Do-pkg <options> --suffix=<suffix> --version=<version> + +Creates a Mac OS X installation package (PKG) and stores it inside +a Disk Image (.dmg) file. You need to create a binary distribution +tarball with scripts/make_binary_distribution first! + +NOTE: You need to run this script with root privileges (required + to create the disk image) + +Options: + + --dry-run Dry run without executing +-h, --help Print this help +-l, --log[=<filename>] Write a log file [to <filename>] + (default is "$LOGFILE") +-m, --mail=<address> Mail a failure report to the given address + (and include a log file snippet, if logging + is enabled) + Note that the \@-Sign needs to be quoted! + Example: --mail=user\\\@domain.com + --suffix=<suffix> The package suffix (e.g. "-standard" or "-pro) + --version=<version> The MySQL version number (e.g. 4.0.11-gamma) +-v, --verbose Verbose execution + +EOF + exit 1; +} diff --git a/Build-tools/logger.pm b/Build-tools/logger.pm new file mode 100644 index 00000000000..becde95df18 --- /dev/null +++ b/Build-tools/logger.pm @@ -0,0 +1,106 @@ +# Helper functions + +# +# Create a log entry +# +sub logger +{ + my $message=$_[0]; + print timestamp() . " " . $message . "\n" if $opt_verbose; + if (defined $opt_log && !$opt_dry_run) + { + open LOG, ">>$LOGFILE" or die "Can't open logfile $LOGFILE!"; + print LOG timestamp() . " " . $message . "\n"; + close LOG; + } +} + +# +# run_command(<command>,<error message>) +# Execute the given command or die with the respective error message +# Just print out the command when doing a dry run +# +sub run_command +{ + my $command= $_[0]; + my $errormsg= $_[1]; + if ($opt_dry_run) + { + print "$command\n"; + } + else + { + &logger($command); + $command.= " >> $LOGFILE 2>&1" if defined $opt_log; + $command.= " > /dev/null" if (!$opt_verbose && !$opt_log); + system($command) == 0 or &abort("$errormsg\n"); + } +} + +# +# abort(<message>) +# Exit with giving out the given error message or by sending +# it via email to the given mail address (including a log file snippet, +# if available) +# +sub abort +{ + my $message= $_[0]; + my $messagefile; + $message= "ERROR: " . $message; + &logger($message); + + if ($opt_mail && !$opt_dry_run) + { + $messagefile= "/tmp/message.$$"; + $subject= "Bootstrap of $REPO failed"; + open(TMP,">$messagefile"); + print TMP "$message\n\n"; + close TMP; + if (defined $opt_log) + { + system("tail -n 40 $LOGFILE >> $messagefile"); + } + system("mail -s \"$subject\" $opt_mail < $messagefile"); + unlink($messagefile); + } + + exit 1; +} + +# Create a time stamp for logging purposes +sub timestamp +{ + return &ymd() . " " . &hms(); +} + +# +# return the current time as a string (HH:MM:SS) +# +sub hms +{ + my @ta= localtime(time()); + my $h= $ta[2]; + $h= "0" . "$h" if ($h <= 9); + my $m= $ta[1]; + $m= "0" . "$m" if ($m <= 9); + my $s= $ta[0]; + $s="0" . "$s" if ($s <= 9); + + return "$h:$m:$s"; +} + +# +# return the current date as a string (YYYYMMDD) +# +sub ymd +{ + my @ta=localtime(time()); + my $d=$ta[3]; + $d="0" . "$d" if ($d <= 9); + my $m=$ta[4]+1; + $m="0" . "$m" if ($m <= 9); + my $y=1900+$ta[5]; + + return "$y$m$d"; +} diff --git a/Docs/Makefile.am b/Docs/Makefile.am index 7d1d2ee8cbd..af771a5728d 100644 --- a/Docs/Makefile.am +++ b/Docs/Makefile.am @@ -22,7 +22,7 @@ targets = manual.txt mysql.info manual.html BUILT_SOURCES = $(targets) manual_toc.html include.texi EXTRA_DIST = $(noinst_SCRIPTS) $(BUILT_SOURCES) mysqld_error.txt \ - INSTALL-BINARY mirrors.texi + INSTALL-BINARY reservedwords.texi all: $(targets) txt_files diff --git a/configure.in b/configure.in index c8fe87fa0af..bddbfcc8619 100644 --- a/configure.in +++ b/configure.in @@ -987,8 +987,8 @@ case $SYSTEM_TYPE in # Fixes for HPUX 11.0 compiler if test "$ac_cv_prog_gcc" = "no" then - CFLAGS="$CFLAGS +DD64 -DHAVE_BROKEN_INLINE" - CXXFLAGS="$CXXFLAGS +DD64 +O2" + CFLAGS="$CFLAGS -DHAVE_BROKEN_INLINE" + CXXFLAGS="$CXXFLAGS +O2" MAX_C_OPTIMIZE="" MAX_CXX_OPTIMIZE="" fi @@ -2274,7 +2274,9 @@ AC_ARG_WITH(extra-charsets, AC_MSG_CHECKING("character sets") -if test "$extra_charsets" = none; then +if test "$extra_charsets" = no; then + CHARSETS="" +elif test "$extra_charsets" = none; then CHARSETS="" elif test "$extra_charsets" = complex; then CHARSETS="$CHARSETS_COMPLEX" @@ -2669,7 +2671,6 @@ AC_OUTPUT(Makefile extra/Makefile mysys/Makefile isam/Makefile dnl include/Makefile sql-bench/Makefile tools/Makefile dnl tests/Makefile Docs/Makefile support-files/Makefile dnl support-files/MacOSX/Makefile mysql-test/Makefile dnl - netware/Makefile dnl include/mysql_version.h dnl , , [ test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h diff --git a/include/my_base.h b/include/my_base.h index f167ae3d30e..b806436fe0e 100644 --- a/include/my_base.h +++ b/include/my_base.h @@ -49,6 +49,21 @@ /* The following is parameter to ha_rkey() how to use key */ +/* We define a complete-field prefix of a key value as a prefix where the +last included field in the prefix contains the full field, not just some bytes +from the start of the field. A partial-field prefix is allowed to +contain only a few first bytes from the last included field. + +Below HA_READ_KEY_EXACT, ..., HA_READ_BEFORE_KEY can take a +complete-field prefix of a key value as the search key. HA_READ_PREFIX +and HA_READ_PREFIX_LAST could also take a partial-field prefix, but +currently (4.0.10) they are only used with complete-field prefixes. MySQL uses +a padding trick to implement LIKE 'abc%' queries. + +NOTE that in InnoDB HA_READ_PREFIX_LAST will NOT work with a partial-field +prefix because InnoDB currently strips spaces from the end of varchar +fields! */ + enum ha_rkey_function { HA_READ_KEY_EXACT, /* Find first record else error */ HA_READ_KEY_OR_NEXT, /* Record or next record */ diff --git a/include/my_pthread.h b/include/my_pthread.h index ad4bb21ce00..5176d0f8f86 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -444,6 +444,11 @@ int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, struct timespec *abstime); #endif +#if defined(HPUX10) +#define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B) +void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size); +#endif + #if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) #undef pthread_mutex_trylock #define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a)) diff --git a/innobase/ibuf/ibuf0ibuf.c b/innobase/ibuf/ibuf0ibuf.c index 668e9419c24..5cd066afc27 100644 --- a/innobase/ibuf/ibuf0ibuf.c +++ b/innobase/ibuf/ibuf0ibuf.c @@ -2488,7 +2488,9 @@ ibuf_merge_or_delete_for_page( ulint old_bits; ulint new_bits; dulint max_trx_id; + ibool corruption_noticed = FALSE; mtr_t mtr; + char err_buf[500]; if (srv_force_recovery >= SRV_FORCE_NO_IBUF_MERGE) { @@ -2540,7 +2542,38 @@ ibuf_merge_or_delete_for_page( block = buf_block_align(page); rw_lock_x_lock_move_ownership(&(block->lock)); - ut_a(fil_page_get_type(page) == FIL_PAGE_INDEX); + if (fil_page_get_type(page) != FIL_PAGE_INDEX) { + + corruption_noticed = TRUE; + + ut_print_timestamp(stderr); + + mtr_start(&mtr); + + fprintf(stderr, +" InnoDB: Dump of the ibuf bitmap page:\n"); + + bitmap_page = ibuf_bitmap_get_map_page(space, page_no, + &mtr); + buf_page_print(bitmap_page); + + mtr_commit(&mtr); + + fprintf(stderr, "\nInnoDB: Dump of the page:\n"); + + buf_page_print(page); + + fprintf(stderr, +"InnoDB: Error: corruption in the tablespace. Bitmap shows insert\n" +"InnoDB: buffer records to page n:o %lu though the page\n" +"InnoDB: type is %lu, which is not an index page!\n" +"InnoDB: We try to resolve the problem by skipping the insert buffer\n" +"InnoDB: merge for this page. Please run CHECK TABLE on your tables\n" +"InnoDB: to determine if they are corrupt after this.\n\n" +"InnoDB: Please make a detailed bug report and send it to\n" +"InnoDB: mysql@lists.mysql.com\n\n", + page_no, fil_page_get_type(page)); + } } n_inserts = 0; @@ -2583,8 +2616,14 @@ loop: goto reset_bit; } + + if (corruption_noticed) { + rec_sprintf(err_buf, 450, ibuf_rec); + + fprintf(stderr, +"InnoDB: Discarding record\n %s\n from the insert buffer!\n\n", err_buf); - if (page) { + } else if (page) { /* Now we have at pcur a record which should be inserted to the index page; NOTE that the call below copies pointers to fields in ibuf_rec, and we must diff --git a/innobase/page/page0cur.c b/innobase/page/page0cur.c index 0e65dc8b1de..d3a40668c4b 100644 --- a/innobase/page/page0cur.c +++ b/innobase/page/page0cur.c @@ -121,6 +121,53 @@ page_cur_try_search_shortcut( #endif /******************************************************************** +Checks if the nth field in a record is a character type field which extends +the nth field in tuple, i.e., the field is longer or equal in length and has +common first characters. */ +static +ibool +page_cur_rec_field_extends( +/*=======================*/ + /* out: TRUE if rec field extends tuple + field */ + dtuple_t* tuple, /* in: data tuple */ + rec_t* rec, /* in: record */ + ulint n) /* in: compare nth field */ +{ + dtype_t* type; + dfield_t* dfield; + byte* rec_f; + ulint rec_f_len; + + dfield = dtuple_get_nth_field(tuple, n); + + type = dfield_get_type(dfield); + + rec_f = rec_get_nth_field(rec, n, &rec_f_len); + + if (type->mtype == DATA_VARCHAR + || type->mtype == DATA_CHAR + || type->mtype == DATA_FIXBINARY + || type->mtype == DATA_BINARY + || type->mtype == DATA_BLOB + || type->mtype == DATA_VARMYSQL + || type->mtype == DATA_MYSQL) { + + if (dfield_get_len(dfield) != UNIV_SQL_NULL + && rec_f_len != UNIV_SQL_NULL + && rec_f_len >= dfield_get_len(dfield) + && 0 == cmp_data_data_slow(type, dfield_get_data(dfield), + dfield_get_len(dfield), + rec_f, dfield_get_len(dfield))) { + + return(TRUE); + } + } + + return(FALSE); +} + +/******************************************************************** Searches the right position for a page cursor. */ void @@ -239,16 +286,8 @@ page_cur_search_with_match( } else if (cmp == -1) { if (mode == PAGE_CUR_LE_OR_EXTENDS - && dfield_get_len(dtuple_get_nth_field(tuple, - cur_matched_fields)) - == cur_matched_bytes - && rec_get_nth_field_len(mid_rec, - cur_matched_fields) - != UNIV_SQL_NULL) { - - /* This means current dfield is not SQL - NULL, and the current rec field extends it */ - + && page_cur_rec_field_extends(tuple, mid_rec, + cur_matched_fields)) { low = mid; low_matched_fields = cur_matched_fields; low_matched_bytes = cur_matched_bytes; @@ -296,16 +335,8 @@ page_cur_search_with_match( } else if (cmp == -1) { if (mode == PAGE_CUR_LE_OR_EXTENDS - && dfield_get_len(dtuple_get_nth_field(tuple, - cur_matched_fields)) - == cur_matched_bytes - && rec_get_nth_field_len(mid_rec, - cur_matched_fields) - != UNIV_SQL_NULL) { - - /* This means current dfield is not SQL - NULL, and the current rec field extends it */ - + && page_cur_rec_field_extends(tuple, mid_rec, + cur_matched_fields)) { low_rec = mid_rec; low_matched_fields = cur_matched_fields; low_matched_bytes = cur_matched_bytes; diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c index 34f951b0c8a..1fc329fe2ca 100644 --- a/innobase/row/row0sel.c +++ b/innobase/row/row0sel.c @@ -1926,7 +1926,19 @@ row_sel_convert_mysql_key_to_innobase( if (key_ptr > key_end) { /* The last field in key was not a complete - field but a prefix of it */ + field but a prefix of it. + + Print a warning about this! HA_READ_PREFIX_LAST + does not currently work in InnoDB with partial-field + key value prefixes. Since MySQL currently uses a + padding trick to calculate LIKE 'abc%' type queries + there should never be partial-field prefixes + in searches. */ + + ut_print_timestamp(stderr); + + fprintf(stderr, + " InnoDB: Warning: using a partial-field key prefix in search\n"); ut_ad(dfield_get_len(dfield) != UNIV_SQL_NULL); diff --git a/innobase/ut/ut0mem.c b/innobase/ut/ut0mem.c index a5991d5683d..23deed0fa55 100644 --- a/innobase/ut/ut0mem.c +++ b/innobase/ut/ut0mem.c @@ -81,7 +81,7 @@ ut_malloc_low( fprintf(stderr, " InnoDB: Fatal error: cannot allocate %lu bytes of\n" "InnoDB: memory with malloc! Total allocated memory\n" - "InnoDB: by InnoDB %lu bytes. Operating system errno: %d\n" + "InnoDB: by InnoDB %lu bytes. Operating system errno: %lu\n" "InnoDB: Cannot continue operation!\n" "InnoDB: Check if you should increase the swap file or\n" "InnoDB: ulimits of your operating system.\n" @@ -89,7 +89,13 @@ ut_malloc_low( "InnoDB: a big enough maximum process size.\n" "InnoDB: We now intentionally generate a seg fault so that\n" "InnoDB: on Linux we get a stack trace.\n", - n, ut_total_allocated_memory, errno); + n, ut_total_allocated_memory, +#ifdef __WIN__ + (ulint)GetLastError() +#else + (ulint)errno +#endif + ); /* Flush stderr to make more probable that the error message gets in the error file before we generate a seg diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c index 0a5aa889a1a..104b344a9e2 100644 --- a/myisam/myisamchk.c +++ b/myisam/myisamchk.c @@ -962,11 +962,11 @@ static int myisamchk(MI_CHECK *param, my_string filename) uint key; /* We can't update the index in mi_sort_records if we have a - prefix compressed index + prefix compressed or fulltext index */ my_bool update_index=1; for (key=0 ; key < share->base.keys; key++) - if (share->keyinfo[key].flag & HA_BINARY_PACK_KEY) + if (share->keyinfo[key].flag & (HA_BINARY_PACK_KEY|HA_FULLTEXT)) update_index=0; error=mi_sort_records(param,info,filename,param->opt_sort_key, @@ -1417,6 +1417,13 @@ static int mi_sort_records(MI_CHECK *param, param->error_printed=0; DBUG_RETURN(-1); } + if (keyinfo->flag & HA_FULLTEXT) + { + mi_check_print_error(param,"Can't sort table '%s' on FULLTEXT key %d", + name,sort_key+1); + param->error_printed=0; + DBUG_RETURN(-1); + } if (!(param->testflag & T_SILENT)) { printf("- Sorting records for MyISAM-table '%s'\n",name); diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 60c352e5e52..db1fab7a50d 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -1120,7 +1120,7 @@ run_testcase () slave_opt_file=$TESTDIR/$tname-slave.opt master_init_script=$TESTDIR/$tname-master.sh slave_init_script=$TESTDIR/$tname-slave.sh - slave_master_info_file=$TESTDIR/$tname-slave-master-info.opt + slave_master_info_file=$TESTDIR/$tname.slave-mi echo $tname > $CURRENT_TEST SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0` if [ $USE_MANAGER = 1 ] ; then diff --git a/mysql-test/r/bigint.result b/mysql-test/r/bigint.result index 2037085dfdb..e49e39bbbf6 100644 --- a/mysql-test/r/bigint.result +++ b/mysql-test/r/bigint.result @@ -8,6 +8,9 @@ select 9223372036854775807,-009223372036854775808; select +9999999999999999999,-9999999999999999999; +9999999999999999999 -9999999999999999999 10000000000000000000 -10000000000000000000 +select cast(9223372036854775808 as unsigned)+1; +cast(9223372036854775808 as unsigned)+1 +9223372036854775809 select 9223372036854775808+1; 9223372036854775808+1 9223372036854775808 diff --git a/mysql-test/r/handler.result b/mysql-test/r/handler.result index 9d3383efd8f..d8381ccc626 100644 --- a/mysql-test/r/handler.result +++ b/mysql-test/r/handler.result @@ -131,7 +131,6 @@ a b handler t2 read next; a b 18 eee -alter table t1 type=MyISAM; handler t2 read next; a b 19 fff @@ -144,4 +143,8 @@ create table t1 (a int); insert into t1 values (17); handler t2 read first; Unknown table 't2' in HANDLER +handler t1 open as t2; +alter table t1 type=MyISAM; +handler t2 read first; +Unknown table 't2' in HANDLER drop table t1; diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 47ed1f99b0e..5bc21501eca 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -1057,6 +1057,12 @@ create table t2 (b varchar(10) not null unique) type=innodb; select t1.a from t1,t2 where t1.a=t2.b; a drop table t1,t2; +create table t1 (a int not null, b int, primary key (a)) type = innodb; +create table t2 (a int not null, b int, primary key (a)) type = innodb; +insert into t1 values (10, 20); +insert into t2 values (10, 20); +update t1, t2 set t1.b = 150, t2.b = t1.b where t2.a = t1.a and t1.a = 10; +drop table t1,t2; CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB; CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE ) TYPE=INNODB; insert into t1 set id=1; diff --git a/mysql-test/r/innodb_handler.result b/mysql-test/r/innodb_handler.result index dc6a265fb29..4ce104506f1 100644 --- a/mysql-test/r/innodb_handler.result +++ b/mysql-test/r/innodb_handler.result @@ -129,11 +129,14 @@ a b handler t2 read next; a b 18 eee -alter table t1 type=innodb; -handler t2 read next; -a b -19 fff handler t2 read last; 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 '' at line 1 handler t2 close; +handler t1 open as t2; +handler t2 read first; +a b +17 ddd +alter table t1 type=innodb; +handler t2 read first; +Unknown table 't2' in HANDLER drop table if exists t1; diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result index 7114c251e03..30a0cd01c51 100644 --- a/mysql-test/r/query_cache.result +++ b/mysql-test/r/query_cache.result @@ -555,3 +555,14 @@ Table 'test.t1' doesn't exist drop table t2; select * from t1 where id=2; Table 'test.t1' doesn't exist +create table t1 (word char(20) not null); +select * from t1; +word +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 1 +load data infile '../../std_data/words.dat' into table t1; +show status like "Qcache_queries_in_cache"; +Variable_name Value +Qcache_queries_in_cache 0 +drop table t1; diff --git a/mysql-test/t/bigint.test b/mysql-test/t/bigint.test index f627614c049..f583045cea9 100644 --- a/mysql-test/t/bigint.test +++ b/mysql-test/t/bigint.test @@ -11,6 +11,13 @@ drop table if exists t1; select 0,256,00000000000000065536,2147483647,-2147483648,2147483648,+4294967296; select 9223372036854775807,-009223372036854775808; select +9999999999999999999,-9999999999999999999; +select cast(9223372036854775808 as unsigned)+1; + +# +# We need to do a REPLACE here as the atof() function returns different +# values on True64 and HPUX11 +# +--replace_result 9223372036854775800 9223372036854775808 select 9223372036854775808+1; # # In 3.23 we have to disable the test of column to bigint as diff --git a/mysql-test/t/handler.test b/mysql-test/t/handler.test index 657185f5e2d..30746f10c62 100644 --- a/mysql-test/t/handler.test +++ b/mysql-test/t/handler.test @@ -65,15 +65,13 @@ handler t2 read a=(19) where b="yyy"; handler t2 read first; handler t2 read next; -alter table t1 type=MyISAM; handler t2 read next; --error 1064 handler t2 read last; - handler t2 close; # -# DROP TABLE +# DROP TABLE / ALTER TABLE # handler t1 open as t2; drop table t1; @@ -81,5 +79,9 @@ create table t1 (a int); insert into t1 values (17); --error 1109 handler t2 read first; +handler t1 open as t2; +alter table t1 type=MyISAM; +--error 1109 +handler t2 read first; drop table t1; diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index 109a34e3068..b8ba55d9230 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -698,6 +698,12 @@ create table t1 (a varchar(10) not null) type=myisam; create table t2 (b varchar(10) not null unique) type=innodb; select t1.a from t1,t2 where t1.a=t2.b; drop table t1,t2; +create table t1 (a int not null, b int, primary key (a)) type = innodb; +create table t2 (a int not null, b int, primary key (a)) type = innodb; +insert into t1 values (10, 20); +insert into t2 values (10, 20); +update t1, t2 set t1.b = 150, t2.b = t1.b where t2.a = t1.a and t1.a = 10; +drop table t1,t2; # # Test of multi-table-delete with foreign key constraints diff --git a/mysql-test/t/innodb_handler.test b/mysql-test/t/innodb_handler.test index 49178a6b6b7..32c8741577c 100644 --- a/mysql-test/t/innodb_handler.test +++ b/mysql-test/t/innodb_handler.test @@ -65,15 +65,15 @@ handler t2 read a=(19) where b="yyy"; handler t2 read first; handler t2 read next; -# -# We alter the table even if it's still in use by to test the Innodb -# delayed-drop code. This will generate a warning in the master.err log. -# -alter table t1 type=innodb; -handler t2 read next; --error 1064 handler t2 read last; - handler t2 close; + +handler t1 open as t2; +handler t2 read first; +alter table t1 type=innodb; +--error 1109 +handler t2 read first; + drop table if exists t1; diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test index 5f2cf8b5f56..47ea2d06d0a 100644 --- a/mysql-test/t/query_cache.test +++ b/mysql-test/t/query_cache.test @@ -388,7 +388,6 @@ select * from mysql.db; enable_result_log; show status like "Qcache_queries_in_cache"; - # # simple rename test # @@ -401,3 +400,14 @@ select * from t1 where id=2; drop table t2; -- error 1146 select * from t1 where id=2; + +# +# Load data invalidation test +# + +create table t1 (word char(20) not null); +select * from t1; +show status like "Qcache_queries_in_cache"; +load data infile '../../std_data/words.dat' into table t1; +show status like "Qcache_queries_in_cache"; +drop table t1;
\ No newline at end of file diff --git a/mysql-test/t/rpl000015-slave-master-info.opt b/mysql-test/t/rpl000015.slave-mi index 28bc753dd56..28bc753dd56 100644 --- a/mysql-test/t/rpl000015-slave-master-info.opt +++ b/mysql-test/t/rpl000015.slave-mi diff --git a/mysql-test/t/rpl_rotate_logs-slave-master-info.opt b/mysql-test/t/rpl_rotate_logs.slave-mi index 80190bf6d29..80190bf6d29 100644 --- a/mysql-test/t/rpl_rotate_logs-slave-master-info.opt +++ b/mysql-test/t/rpl_rotate_logs.slave-mi diff --git a/mysys/my_pthread.c b/mysys/my_pthread.c index 0de7041fae7..7ad4852558e 100644 --- a/mysys/my_pthread.c +++ b/mysys/my_pthread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (C) 2000-2003 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 @@ -393,6 +393,7 @@ int pthread_signal(int sig, void (*func)()) #undef pthread_cond_wait #undef pthread_cond_timedwait #undef pthread_cond_t +#undef pthread_attr_getstacksize /***************************************************************************** ** Patches for AIX and DEC OSF/1 3.2 @@ -465,6 +466,15 @@ int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, } #endif +#if defined(HPUX10) + +void my_pthread_attr_getstacksize(pthread_attr_t *connection_attrib, + size_t *stack_size) +{ + *stack_size= pthread_attr_getstacksize(*connection_attrib); +} +#endif + #ifdef HAVE_POSIX1003_4a_MUTEX /* diff --git a/mysys/thr_alarm.c b/mysys/thr_alarm.c index 6697b9d3360..add5335a7af 100644 --- a/mysys/thr_alarm.c +++ b/mysys/thr_alarm.c @@ -402,6 +402,8 @@ void end_thr_alarm(void) void thr_alarm_kill(pthread_t thread_id) { uint i; + if (alarm_aborted) + return; pthread_mutex_lock(&LOCK_alarm); for (i=0 ; i < alarm_queue.elements ; i++) { diff --git a/netware/mw/mwasmnlm b/netware/mw/mwasmnlm new file mode 100644 index 00000000000..c3501112aa5 --- /dev/null +++ b/netware/mw/mwasmnlm @@ -0,0 +1,5 @@ +#! /bin/sh + +args=" $*" + +wine --debugmsg -all -- mwasmnlm $args diff --git a/netware/mw/mwccnlm b/netware/mw/mwccnlm new file mode 100644 index 00000000000..9e989485bd9 --- /dev/null +++ b/netware/mw/mwccnlm @@ -0,0 +1,7 @@ +#! /bin/sh + +# mwccnlm is having a hard time understanding "-I./../include" +# convert it to "-I../include" +args=" "`echo $* | sed -e 's/-I.\/../-I../g'` + +wine --debugmsg -all -- mwccnlm $args diff --git a/netware/mw/mwenv b/netware/mw/mwenv new file mode 100644 index 00000000000..b82dbdc0c7f --- /dev/null +++ b/netware/mw/mwenv @@ -0,0 +1,12 @@ +#! /bin/sh + +export MYDEV="F:/mysql" + +export MWCNWx86Includes="$MYDEV/libc/include" +export MWNWx86Libraries="$MYDEV/libc/imports;$MYDEV/mw/lib" +export MWNWx86LibraryFiles="libcpre.o;libc.imp;netware.imp;mwcrtl.lib;mwcpp.lib" + +export WINEPATH="$MYDEV/mw/bin" + +export PATH="$PATH:$HOME/mysql/mysql-4.0/netware/mw" + diff --git a/netware/mw/mwldnlm b/netware/mw/mwldnlm new file mode 100644 index 00000000000..7ad2872ccbb --- /dev/null +++ b/netware/mw/mwldnlm @@ -0,0 +1,5 @@ +#! /bin/sh + +args=" $*" + +wine --debugmsg -all -- mwldnlm $args diff --git a/netware/mysql_test_run.c b/netware/mysql_test_run.c index 7392a96cc73..f19cee32e92 100644 --- a/netware/mysql_test_run.c +++ b/netware/mysql_test_run.c @@ -760,7 +760,7 @@ void run_test(char *test) // create files snprintf(master_opt_file, PATH_MAX, "%s/%s-master.opt", test_dir, test); snprintf(slave_opt_file, PATH_MAX, "%s/%s-slave.opt", test_dir, test); - snprintf(slave_master_info_file, PATH_MAX, "%s/%s-slave-master-info.opt", test_dir, test); + snprintf(slave_master_info_file, PATH_MAX, "%s/%s.slave-mi", test_dir, test); snprintf(reject_file, PATH_MAX, "%s/%s%s", result_dir, test, REJECT_SUFFIX); snprintf(out_file, PATH_MAX, "%s/%s%s", result_dir, test, OUT_SUFFIX); snprintf(err_file, PATH_MAX, "%s/%s%s", result_dir, test, ERR_SUFFIX); diff --git a/netware/nwbootstrap b/netware/nwbootstrap new file mode 100755 index 00000000000..3e4b03de0f5 --- /dev/null +++ b/netware/nwbootstrap @@ -0,0 +1,145 @@ +#! /bin/sh + +# show executed commands +# set -x + +# stop on errors +set -e + +BD=`pwd` + +build=0 +build_debug=0 +skip_linux=0 + +# parse arguments +for arg do + case "$arg" in + --build) build=1 ;; + --build-debug) build_debug=1 ;; + --skip-linux) skip_linux=1 ;; + *) echo "$0: unrecognized option: $arg" ;; + esac +done + +# run the auto tools +autotools() +{ + for package in $BD $BD/innobase + do + echo "cd $package" + cd $package + rm -f config.cache + echo "aclocal" + aclocal + echo "autoheader" + autoheader + echo "libtoolize --force" + libtoolize --force + echo "aclocal" + aclocal + echo "automake --add-missing --force-missing" + automake --add-missing --force-missing + echo "autoconf" + autoconf + done + + cd $BD +} + +# check the source direcotry +echo "looking for \"$BD/sql/mysqld.cc\"..." +if test ! -r ./sql/mysqld.cc +then + echo "./netware/nwbootstrap must be started from the top source directory" + exit 1 +fi + +# clean +# make -j 2 -k distclean +rm -f NEW-RPMS/* +rm -f */.deps/*.P + +# make files writeable +chmod -R u+rw,g+rw . + +# skip linux? +if test $skip_linux -ne 1 +then + echo "starting linux build..." + + echo "autotools..." + autotools + + echo "configuring for linux..." + ./configure --without-docs --without-innodb + + echo "building for linux..." + make clean all + + echo "copying required linux binaries..." + rm -f */*.linux + cp extra/comp_err extra/comp_err.linux + cp libmysql/conf_to_src libmysql/conf_to_src.linux + cp libmysql/conf_to_src libmysql_r/conf_to_src.linux + cp sql/gen_lex_hash sql/gen_lex_hash.linux + cp strings/conf_to_src strings/conf_to_src.linux + + echo "cleaning linux build..." + make clean distclean +fi + +echo "starting netware build..." + +# remove stale Makefile.in.bk files +rm -rf Makefile.in.bk + +# start mw enviornment +chmod +x ./netware/nwconfigure +chmod +x ./netware/mw/mwenv +chmod +x ./netware/mw/mwasmnlm +chmod +x ./netware/mw/mwccnlm +chmod +x ./netware/mw/mwldnlm + +. ./netware/mw/mwenv + +# link nwconfigure +rm -f ./nwconfigure +ln ./netware/nwconfigure ./nwconfigure + +# save old builds from previous run +if test -e *.tar.gz +then + rm -f *.tar.gz.old + rename .tar.gz .tar.gz.old *.tar.gz +fi + +echo "autotools..." +autotools + +# debug build +if test $build_debug -eq 1 +then + echo "configuring for netware (debug)..." + ./nwconfigure --with-debug=full + + echo "building for netware (debug)..." + make clean bin-dist + + # mark the debug build + rename .tar.gz -debug.tar.gz *.tar.gz +fi + +# release build +if test $build -eq 1 +then + echo "configuring for netware..." + ./nwconfigure + + echo "building for netware..." + make clean bin-dist +fi + +echo "done" + + diff --git a/netware/nwconfigure b/netware/nwconfigure new file mode 100644 index 00000000000..aeb68ada5b8 --- /dev/null +++ b/netware/nwconfigure @@ -0,0 +1,23 @@ +#! /bin/sh +CMD="\ + AR='mwldnlm' \ + AR_FLAGS='-type library -o' \ + AS='mwasmnlm' \ + CC='mwccnlm -gccincludes' \ + CFLAGS='-dialect c -proc 686 -bool on -relax_pointers -DUSE_OLD_FUNCTIONS' \ + CXX='mwccnlm -gccincludes' \ + CXXFLAGS='-dialect c++ -proc 686 -bool on -relax_pointers' \ + LD='mwldnlm' \ + LDFLAGS='-entry _LibCPrelude -exit _LibCPostlude -flags pseudopreemption' \ + RANLIB=: \ + STRIP=: \ + ./configure --host=i686-pc-netware $* \ + --without-docs \ + --enable-local-infile \ + --with-extra-charsets=all \ + --prefix=N:/mysql \ + " +#rm -f config.cache config.log config.status +echo $CMD +eval $CMD + diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index 1bdf5b86fdf..78eb1343f47 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -183,7 +183,7 @@ done $CP mysql-test/include/*.inc $BASE/mysql-test/include $CP mysql-test/std_data/*.dat mysql-test/std_data/*.001 $BASE/mysql-test/std_data -$CP mysql-test/t/*test mysql-test/t/*.opt mysql-test/t/*.sh $BASE/mysql-test/t +$CP mysql-test/t/*test mysql-test/t/*.opt mysql-test/t/*.slave-mi mysql-test/t/*.sh $BASE/mysql-test/t $CP mysql-test/r/*result mysql-test/r/*.require $BASE/mysql-test/r if [ $BASE_SYSTEM != "netware" ] ; then diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh index 1a694247461..ec76aa479f3 100644 --- a/scripts/mysqlhotcopy.sh +++ b/scripts/mysqlhotcopy.sh @@ -37,7 +37,7 @@ WARNING: THIS PROGRAM IS STILL IN BETA. Comments/patches welcome. # Documentation continued at end of file -my $VERSION = "1.17"; +my $VERSION = "1.18"; my $opt_tmpdir = $ENV{TMPDIR} || "/tmp"; @@ -173,6 +173,7 @@ my $dbh = DBI->connect("dbi:mysql:$dsn;mysql_read_default_group=mysqlhotcopy", # --- check that checkpoint table exists if specified --- if ( $opt{checkpoint} ) { + $opt{checkpoint} = quote_names( $opt{checkpoint} ); eval { $dbh->do( qq{ select time_stamp, src, dest, msg from $opt{checkpoint} where 1 != 1} ); }; @@ -183,6 +184,8 @@ if ( $opt{checkpoint} ) { # --- check that log_pos table exists if specified --- if ( $opt{record_log_pos} ) { + $opt{record_log_pos} = quote_names( $opt{record_log_pos} ); + eval { $dbh->do( qq{ select host, time_stamp, log_file, log_pos, master_host, master_log_file, master_log_pos from $opt{record_log_pos} where 1 != 1} ); }; @@ -309,7 +312,7 @@ foreach my $rdb ( @db_desc ) { $rdb->{files} = [ @db_files ]; $rdb->{index} = [ @index_files ]; - my @hc_tables = map { "`$db`.`$_`" } @dbh_tables; + my @hc_tables = map { quote_names("$db.$_") } @dbh_tables; $rdb->{tables} = [ @hc_tables ]; $rdb->{raid_dirs} = [ get_raid_dirs( $rdb->{files} ) ]; @@ -569,7 +572,7 @@ sub copy_files { my @non_raid = map { "'$_'" } grep { ! m:/\d{2}/[^/]+$: } @$files; # add files to copy and the destination directory - safe_system( @cp, @non_raid, "'$target'" ); + safe_system( @cp, @non_raid, "'$target'" ) if (@non_raid); foreach my $rd ( @$raid_dirs ) { my @raid = map { "'$_'" } grep { m:$rd/: } @$files; @@ -758,6 +761,16 @@ sub get_list_of_tables { return @dbh_tables; } +sub quote_names { + my ( $name ) = @_; + # given a db.table name, add quotes + + my ($db, $table, @cruft) = split( /\./, $name ); + die "Invalid db.table name '$name'" if (@cruft || !defined $db || !defined $table ); + + return "`$db`.`$table`"; +} + __END__ =head1 DESCRIPTION diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 10f51598c0a..982bf897c43 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -267,6 +267,9 @@ bool opt_large_files= sizeof(my_off_t) > 4; #define GET_HA_ROWS GET_ULONG #endif +#ifdef HAVE_LIBWRAP +char *libwrapName= NULL; +#endif /* Variables to store startup options @@ -1883,14 +1886,13 @@ struct utsname char nodename[FN_REFLEN]; }; + int uname(struct utsname *a) { return -1; } -#endif -#ifdef __WIN__ extern "C" pthread_handler_decl(handle_shutdown,arg) { MSG msg; @@ -1906,7 +1908,7 @@ extern "C" pthread_handler_decl(handle_shutdown,arg) return 0; } -int __stdcall handle_kill(ulong ctrl_type) +int STDCALL handle_kill(ulong ctrl_type) { if (ctrl_type == CTRL_CLOSE_EVENT || ctrl_type == CTRL_SHUTDOWN_EVENT) @@ -1948,10 +1950,6 @@ extern "C" pthread_handler_decl(handle_shutdown,arg) const char *load_default_groups[]= { "mysqld","server",0 }; -#ifdef HAVE_LIBWRAP -char *libwrapName=NULL; -#endif - bool open_log(MYSQL_LOG *log, const char *hostname, const char *opt_name, const char *extension, const char *index_file_name, diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index d8c61fa1a1d..03dcfbeda28 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -70,7 +70,8 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds) if (tl->table->map & where_tables) return 0; } - used_tables|= tl->table->map; + else + used_tables|= tl->table->map; } /* diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt index 6c3196bfeba..1ab299495b9 100644 --- a/sql/share/czech/errmsg.txt +++ b/sql/share/czech/errmsg.txt @@ -1,7 +1,7 @@ v/* - Modifikoval Petr -B©najdr, snajdr@pvt.net, snajdr@cpress.cz v.0.01 -A + Modifikoval Petr -B©najdr, snajdr@pvt.net, snajdr@cpress.cz v.0.01 ISO LATIN-8852-2 - Dal-B¹í verze Jan Pazdziora, adelton@fi.muni.cz-A + Dal-B¹í verze Jan Pazdziora, adelton@fi.muni.cz Tue Nov 18 17:53:55 MET 1997 Tue Dec 2 19:08:54 MET 1997 podle 3.21.15c Thu May 7 17:40:49 MET DST 1998 podle 3.21.29 @@ -147,7 +147,7 @@ v/* "Nalezen-Bých øádkù: %ld Zmìnìno: %ld Varování: %ld", "Nemohu vytvo-Bøit nový thread (errno %d). Pokud je je¹tì nìjaká volná pamì», podívejte se do manuálu na èást o chybách specifických pro jednotlivé operaèní systémy", "Po-Bèet sloupcù neodpovídá poètu hodnot na øádku %ld", -"Nemohu znovuotev-Bøít tabulku: '%-.64s', +"Nemohu znovuotev-Bøít tabulku: '%-.64s", "Neplatn-Bé u¾ití hodnoty NULL", "Regul-Bární výraz vrátil chybu '%-.64s'", "Pokud nen-Bí ¾ádná GROUP BY klauzule, není dovoleno souèasné pou¾ití GROUP polo¾ek (MIN(),MAX(),COUNT()...) s ne GROUP polo¾kami", @@ -207,7 +207,7 @@ v/* "Tabulka '%-.64s' je ozna-Bèena jako poru¹ená a mìla by být opravena", "Tabulka '%-.64s' je ozna-Bèena jako poru¹ená a poslední (automatická?) oprava se nezdaøila", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt index dcc016511dd..c0a36a38935 100644 --- a/sql/share/danish/errmsg.txt +++ b/sql/share/danish/errmsg.txt @@ -108,7 +108,7 @@ "BLOB feltet '%-.64s' kan ikke have en standard værdi", "Ugyldigt database navn '%-.64s'", "Ugyldigt tabel navn '%-.64s'", -"SELECT ville undersøge for mange poster og ville sandsynligvis tage meget lang tid. Undersøg WHERE delen og brug SET OPTION SQL_BIG_SELECTS=1 hvis udtrykket er korrekt" +"SELECT ville undersøge for mange poster og ville sandsynligvis tage meget lang tid. Undersøg WHERE delen og brug SET OPTION SQL_BIG_SELECTS=1 hvis udtrykket er korrekt", "Ukendt fejl", "Ukendt procedure %s", "Forkert antal parametre til proceduren %s", @@ -141,7 +141,7 @@ "Poster fundet: %ld Ændret: %ld Advarsler: %ld", "Kan ikke danne en ny tråd (fejl nr. %d). Hvis computeren ikke er løbet tør for hukommelse, kan du se i brugervejledningen for en mulig operativ-system - afhængig fejl", "Kolonne antallet stemmer ikke overens med antallet af værdier i post %ld", -"Kan ikke genåbne tabel '%-.64s', +"Kan ikke genåbne tabel '%-.64s", "Forkert brug af nulværdi (NULL)", "Fik fejl '%-.64s' fra regexp", "Sammenblanding af GROUP kolonner (MIN(),MAX(),COUNT()...) uden GROUP kolonner er ikke tilladt, hvis der ikke er noget GROUP BY prædikat", @@ -162,7 +162,7 @@ "Fik fejlmeddelelse fra fcntl()", "Modtog ikke datapakker i korrekt rækkefølge", "Kunne ikke dekomprimere kommunikations-pakke (communication packet)", -"Fik fejlmeddelelse ved læsning af kommunikations-pakker (communication packets)" +"Fik fejlmeddelelse ved læsning af kommunikations-pakker (communication packets)", "Timeout-fejl ved læsning af kommunukations-pakker (communication packets)", "Fik fejlmeddelelse ved skrivning af kommunukations-pakker (communication packets)", "Timeout-fejl ved skrivning af kommunukations-pakker (communication packets)", @@ -201,7 +201,7 @@ "Tabellen '%-.64s' er markeret med fejl og bør repareres", "Tabellen '%-.64s' er markeret med fejl og sidste (automatiske?) REPAIR fejlede", "Advarsel: Visse data i tabeller der ikke understøtter transaktioner kunne ikke tilbagestilles", -"Fler-udtryks transaktion krævede mere plads en 'max_binlog_cache_size' bytes. Forhøj værdien af denne variabel og prøv igen', +"Fler-udtryks transaktion krævede mere plads en 'max_binlog_cache_size' bytes. Forhøj værdien af denne variabel og prøv igen", "Denne handling kunne ikke udføres med kørende slave, brug først kommandoen STOP SLAVE", "Denne handling kræver en kørende slave. Konfigurer en slave og brug kommandoen START SLAVE", "Denne server er ikke konfigureret som slave. Ret in config-filen eller brug kommandoen CHANGE MASTER TO", diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt index 6091616fc4a..677762403f6 100644 --- a/sql/share/dutch/errmsg.txt +++ b/sql/share/dutch/errmsg.txt @@ -149,7 +149,7 @@ "Passende rijen: %ld Gewijzigd: %ld Waarschuwingen: %ld", "Kan geen nieuwe thread aanmaken (Errcode: %d). Indien er geen tekort aan geheugen is kunt u de handleiding consulteren over een mogelijke OS afhankelijke fout", "Kolom aantal komt niet overeen met waarde aantal in rij %ld", -"Kan tabel niet opnieuw openen: '%-.64s', +"Kan tabel niet opnieuw openen: '%-.64s", "Foutief gebruik van de NULL waarde", "Fout '%-.64s' ontvangen van regexp", "Het mixen van GROUP kolommen (MIN(),MAX(),COUNT()...) met no-GROUP kolommen is foutief indien er geen GROUP BY clausule is", @@ -170,7 +170,7 @@ "Kreeg fout van fcntl()", "Pakketten in verkeerde volgorde ontvangen", "Communicatiepakket kon niet worden gedecomprimeerd", -"Fout bij het lezen van communicatiepakketten" +"Fout bij het lezen van communicatiepakketten", "Timeout bij het lezen van communicatiepakketten", "Fout bij het schrijven van communicatiepakketten", "Timeout bij het schrijven van communicatiepakketten", @@ -209,7 +209,7 @@ "Tabel '%-.64s' staat als gecrashed gemarkeerd en dient te worden gerepareerd", "Tabel '%-.64s' staat als gecrashed gemarkeerd en de laatste (automatische?) reparatie poging mislukte", "Waarschuwing: Roll back mislukt voor sommige buiten transacties gewijzigde tabellen", -"Multi-statement transactie vereist meer dan 'max_binlog_cache_size' bytes opslag. Verhoog deze mysqld variabele en probeer opnieuw', +"Multi-statement transactie vereist meer dan 'max_binlog_cache_size' bytes opslag. Verhoog deze mysqld variabele en probeer opnieuw", "Deze operatie kan niet worden uitgevoerd met een actieve slave, doe eerst STOP SLAVE", "Deze operatie vereist een actieve slave, configureer slave en doe dan START SLAVE", "De server is niet geconfigureerd als slave, fix in configuratie bestand of met CHANGE MASTER TO", diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt index 954b7cd2fb3..84d100cfae9 100644 --- a/sql/share/english/errmsg.txt +++ b/sql/share/english/errmsg.txt @@ -166,7 +166,7 @@ "Result string is longer than max_allowed_packet", "The used table type doesn't support BLOB/TEXT columns", "The used table type doesn't support AUTO_INCREMENT columns", -"INSERT DELAYED can't be used with table '%-.64s', because it is locked with LOCK TABLES", +"INSERT DELAYED can't be used with table '%-.64s' because it is locked with LOCK TABLES", "Incorrect column name '%-.100s'", "The used table handler can't index column '%-.64s'", "All tables in the MERGE table are not identically defined", @@ -198,7 +198,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt index d7bb19c2876..518af36ea53 100644 --- a/sql/share/french/errmsg.txt +++ b/sql/share/french/errmsg.txt @@ -122,7 +122,7 @@ "Ligne trop grande. Le taille maximale d'une ligne, sauf les BLOBs, est %d. Changez le type de quelques colonnes en BLOB", "Débordement de la pile des tâches (Thread stack). Utilisées: %ld pour une pile de %ld. Essayez 'mysqld -O thread_stack=#' pour indiquer une plus grande valeur", "Dépendance croisée dans une clause OUTER JOIN. Vérifiez la condition ON", -"La colonne '%-.32s' fait partie d'un index UNIQUE ou INDEX mais n'est pas définie comme NOT NULL" +"La colonne '%-.32s' fait partie d'un index UNIQUE ou INDEX mais n'est pas définie comme NOT NULL", "Imposible de charger la fonction '%-.64s'", "Impossible d'initialiser la fonction '%-.64s'; %-.80s", "Chemin interdit pour les bibliothèques partagées", @@ -138,7 +138,7 @@ "Enregistrements correspondants: %ld Modifiés: %ld Warnings: %ld", "Impossible de créer une nouvelle tâche (errno %d). S'il reste de la mémoire libre, consultez le manual pour trouver un éventuel bug dépendant de l'OS", "Column count doesn't match value count at row %ld", -"Impossible de réouvrir la table: '%-.64s', +"Impossible de réouvrir la table: '%-.64s", "Utilisation incorrecte de la valeur NULL", "Erreur '%-.64s' provenant de regexp", "Mélanger les colonnes GROUP (MIN(),MAX(),COUNT()...) avec des colonnes normales est interdit s'il n'y a pas de clause GROUP BY", @@ -159,7 +159,7 @@ "Erreur reçue de fcntl() ", "Paquets reçus dans le désordre", "Impossible de décompresser le paquet reçu", -"Erreur de lecture des paquets reçus" +"Erreur de lecture des paquets reçus", "Timeout en lecture des paquets reçus", "Erreur d'écriture des paquets envoyés", "Timeout d'écriture des paquets envoyés", @@ -198,7 +198,7 @@ "La table '%-.64s' est marquée 'crashed' et devrait être réparée", "La table '%-.64s' est marquée 'crashed' et le dernier 'repair' a échoué", "Attention: certaines tables ne supportant pas les transactions ont été changées et elles ne pourront pas être restituées", -"Cette transaction à commandes multiples nécessite plus de 'max_binlog_cache_size' octets de stockage, augmentez cette variable de mysqld et réessayez', +"Cette transaction à commandes multiples nécessite plus de 'max_binlog_cache_size' octets de stockage, augmentez cette variable de mysqld et réessayez", "Cette opération ne peut être réalisée avec un esclave actif, faites STOP SLAVE d'abord", "Cette opération nécessite un esclave actif, configurez les esclaves et faites START SLAVE", "Le server n'est pas configuré comme un esclave, changez le fichier de configuration ou utilisez CHANGE MASTER TO", diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt index 765fbd875e2..e4ff723e01d 100644 --- a/sql/share/german/errmsg.txt +++ b/sql/share/german/errmsg.txt @@ -45,7 +45,7 @@ "Kann Datensatz nicht finden.", "Falsche Information in Datei: '%-.64s'", "Falsche Schlüssel-Datei für Tabelle '%-.64s'. Versuche zu reparieren!", -"Alte Schlüssel-Datei für Tabelle '%-.64s'. Repariere! +"Alte Schlüssel-Datei für Tabelle '%-.64s'. Repariere!", "'%-.64s' ist nur lesbar.", "Kein Speicher vorhanden (benötigt %d bytes). Server neu starten.", "Kein Speicher zum Sortieren. sort_buffer_size sollte erhöht werden.", @@ -168,7 +168,7 @@ "Fehler von fcntl()", "Empfangenes Paket ist nicht in Reihenfolge", "Kommunikationspaket läßt sich nicht entpacken", -"Fehler beim Lesen eines Kommunikationspakets" +"Fehler beim Lesen eines Kommunikationspakets", "Zeitüberschreitung beim Lesen eines Kommunikationspakets.", "Fehler beim Schreiben eines Kommunikationspakets.", "Zeitüberschreitung beim Schreiben eines Kommunikationspakets.", @@ -207,7 +207,7 @@ "Tabelle '%-.64s' ist als defekt makiert und sollte repariert werden", "Tabelle '%-.64s' ist als defekt makiert und der letzte (automatische) Reparaturversuch schlug fehl.", "Warnung: Das Rollback konnte bei einigen Tabellen, die nicht mittels Transaktionen geändert wurden, nicht ausgeführt werden.", -"Multi-Statement Transaktionen benötigen mehr als 'max_binlog_cache_size' Bytes An Speicher. Diese mysqld-Variable vergrössern und erneut versuchen.', +"Multi-Statement Transaktionen benötigen mehr als 'max_binlog_cache_size' Bytes An Speicher. Diese mysqld-Variable vergrössern und erneut versuchen.", "Diese Operation kann nicht bei einem aktiven Slave durchgeführt werden. Das Kommand STOP SLAVE muss zuerst ausgeführt werden.", "Diese Operation benötigt einen aktiven Slave. Slave konfigurieren und mittels START SLAVE aktivieren.", "Der Server ist nicht als Slave konfigiriert. Im Konfigurations-File oder mittel CHANGE MASTER TO beheben.", @@ -225,7 +225,7 @@ "Falsche Tabellendefinition: Sämtliche MERGE-Tabellen müssen in derselben Datenbank sein.", "Beim Versuch einen Lock anzufordern ist ein Deadlock aufgetreten. Es wird versucht die Transaktion erneut zu starten.", "Der verwendete Tabellentyp unterstützt keinen FULLTEXT-Index.", -"Foreign_Key Beschränkung konnte nicht hinzugefügt werden." +"Foreign_Key Beschränkung konnte nicht hinzugefügt werden.", "Hinzufügen eines Kind-Datensatzes schlug aufgrund einer Foreign-Key Beschränkung fehl.", "Löschen eines Eltern-Datensatzes schlug aufgrund einer Foreign-Key Beschränkung fehl.", "Datensatz kann aufgrund einer Foreign-Key Beschränkung nicht gelöscht werden.", @@ -259,5 +259,5 @@ "Referenz '%-.64s' wird nicht unterstützt (%s)", "Für jede abgeleitete Tabelle muss ein eigener Alias angegeben werden.", "Select %u wurde während der Optimierung reduziert.", -"Tabelle '%-.64s', die in einem der SELECT-Befehle verwendet wurde kann nicht in %-.32s verwendet werden." -"Client does not support authentication protocol requested by server. Consider upgrading MySQL client"
\ No newline at end of file +"Tabelle '%-.64s', die in einem der SELECT-Befehle verwendet wurde kann nicht in %-.32s verwendet werden", +"Client does not support authentication protocol requested by server. Consider upgrading MySQL client", diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt index 8831d4e47b9..9dd3d0a254b 100644 --- a/sql/share/greek/errmsg.txt +++ b/sql/share/greek/errmsg.txt @@ -159,7 +159,7 @@ "Got an error from fcntl()", "Got packets out of order", "Couldn't uncompress communication packet", -"Got an error reading communication packets" +"Got an error reading communication packets", "Got timeout reading communication packets", "Got an error writing communication packets", "Got timeout writing communication packets", @@ -198,7 +198,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt index 8d6c321d316..7fec6ddb040 100644 --- a/sql/share/hungarian/errmsg.txt +++ b/sql/share/hungarian/errmsg.txt @@ -140,7 +140,7 @@ "Megegyezo sorok szama: %ld Valtozott: %ld Warnings: %ld", "Uj thread letrehozasa nem lehetseges (Hibakod: %d). Amenyiben van meg szabad memoria, olvassa el a kezikonyv operacios rendszerfuggo hibalehetosegekrol szolo reszet", "Az oszlopban talalhato ertek nem egyezik meg a %ld sorban szamitott ertekkel", -"Nem lehet ujra-megnyitni a tablat: '%-.64s', +"Nem lehet ujra-megnyitni a tablat: '%-.64s", "A NULL ervenytelen hasznalata", "'%-.64s' hiba a regularis kifejezes hasznalata soran (regexp)", "A GROUP mezok (MIN(),MAX(),COUNT()...) kevert hasznalata nem lehetseges GROUP BY hivatkozas nelkul", @@ -161,7 +161,7 @@ "Hiba a fcntl() fuggvenyben", "Helytelen sorrendben erkezett adatcsomagok", "A kommunikacios adatcsomagok nem tomorithetok ki", -"HIba a kommunikacios adatcsomagok olvasasa soran" +"HIba a kommunikacios adatcsomagok olvasasa soran", "Idotullepes a kommunikacios adatcsomagok olvasasa soran", "Hiba a kommunikacios csomagok irasa soran", "Idotullepes a kommunikacios csomagok irasa soran", @@ -200,7 +200,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt index 451ad3e058b..3687fde0591 100644 --- a/sql/share/italian/errmsg.txt +++ b/sql/share/italian/errmsg.txt @@ -29,7 +29,7 @@ "Errore durante la rinominazione da '%-.64s' a '%-.64s' (errno: %d)", "Errore durante la scrittura del file '%-.64s' (errno: %d)", "'%-.64s' e` soggetto a lock contro i cambiamenti", -"Operazione di ordinamento abbandonata" , +"Operazione di ordinamento abbandonata", "La view '%-.64s' non esiste per '%-.64s'", "Rilevato l'errore %d dal gestore delle tabelle", "Il gestore delle tabelle per '%-.64s' non ha questa opzione", @@ -84,7 +84,7 @@ "%s: Forzata la chiusura del thread %ld utente: '%-.64s'\n", "Impossibile creare il socket IP", "La tabella '%-.64s' non ha nessun indice come quello specificatato dalla CREATE INDEX. Ricrea la tabella", -"L'argomento 'Field separator' non e` quello atteso. Controlla il manuale"," +"L'argomento 'Field separator' non e` quello atteso. Controlla il manuale", "Non possono essere usate righe a lunghezza fissa con i BLOB. Usa 'FIELDS TERMINATED BY'.", "Il file '%-.64s' deve essere nella directory del database e deve essere leggibile da tutti", "Il file '%-.64s' esiste gia`", @@ -198,7 +198,7 @@ "La tabella '%-.64s' e` segnalata come corrotta e deve essere riparata", "La tabella '%-.64s' e` segnalata come corrotta e l'ultima ricostruzione (automatica?) e` fallita", "Attenzione: Alcune delle modifiche alle tabelle non transazionali non possono essere ripristinate (roll back impossibile)", -"La transazione a comandi multipli (multi-statement) ha richiesto piu` di 'max_binlog_cache_size' bytes di disco: aumentare questa variabile di mysqld e riprovare', +"La transazione a comandi multipli (multi-statement) ha richiesto piu` di 'max_binlog_cache_size' bytes di disco: aumentare questa variabile di mysqld e riprovare", "Questa operazione non puo' essere eseguita con un database 'slave' che gira, lanciare prima STOP SLAVE", "Questa operaione richiede un database 'slave', configurarlo ed eseguire START SLAVE", "Il server non e' configurato come 'slave', correggere il file di configurazione cambiando CHANGE MASTER TO", diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt index 70ab2d6d42d..612af3e1069 100644 --- a/sql/share/japanese/errmsg.txt +++ b/sql/share/japanese/errmsg.txt @@ -161,7 +161,7 @@ "Got an error from fcntl()", "Got packets out of order", "Couldn't uncompress communication packet", -"Got an error reading communication packets" +"Got an error reading communication packets", "Got timeout reading communication packets", "Got an error writing communication packets", "Got timeout writing communication packets", @@ -200,7 +200,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt index c18c3ed3873..107dcbdbe07 100644 --- a/sql/share/korean/errmsg.txt +++ b/sql/share/korean/errmsg.txt @@ -138,7 +138,7 @@ "ÀÏÄ¡ÇÏ´Â Rows : %ld°³ º¯°æµÊ: %ld°³ °æ°í: %ld°³", "»õ·Î¿î ¾²·¹µå¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù.(¿¡·¯¹øÈ£ %d). ¸¸¾à ¿©À¯¸Þ¸ð¸®°¡ ÀÖ´Ù¸é OS-dependent¹ö±× ÀÇ ¸Þ´º¾ó ºÎºÐÀ» ã¾Æº¸½Ã¿À.", "Row %ld¿¡¼ Ä®·³ Ä«¿îÆ®¿Í value Ä«¿îÅÍ¿Í ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.", -"Å×À̺íÀ» ´Ù½Ã ¿¼ö ¾ø±º¿ä: '%-.64s', +"Å×À̺íÀ» ´Ù½Ã ¿¼ö ¾ø±º¿ä: '%-.64s", "NULL °ªÀ» À߸ø »ç¿ëÇϼ̱º¿ä...", "regexp¿¡¼ '%-.64s'°¡ ³µ½À´Ï´Ù.", "Mixing of GROUP Ä®·³s (MIN(),MAX(),COUNT()...) with no GROUP Ä®·³s is illegal if there is no GROUP BY clause", @@ -159,7 +159,7 @@ "fcntl() ÇÔ¼ö·ÎºÎÅÍ ¿¡·¯°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.", "¼ø¼°¡ ¸ÂÁö¾Ê´Â ÆÐŶÀ» ¹Þ¾Ò½À´Ï´Ù.", "Åë½Å ÆÐŶÀÇ ¾ÐÃàÇØÁ¦¸¦ ÇÒ ¼ö ¾ø¾ú½À´Ï´Ù.", -"Åë½Å ÆÐŶÀ» Àд Áß ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù." +"Åë½Å ÆÐŶÀ» Àд Áß ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.", "Åë½Å ÆÐŶÀ» Àд Áß timeoutÀÌ ¹ß»ýÇÏ¿´½À´Ï´Ù.", "Åë½Å ÆÐŶÀ» ±â·ÏÇÏ´Â Áß ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.", "Åë½Å ÆÐÆÂÀ» ±â·ÏÇÏ´Â Áß timeoutÀÌ ¹ß»ýÇÏ¿´½À´Ï´Ù.", @@ -198,7 +198,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt index 9cd99613f52..9c9e33edca9 100644 --- a/sql/share/norwegian-ny/errmsg.txt +++ b/sql/share/norwegian-ny/errmsg.txt @@ -107,7 +107,7 @@ "Blob feltet '%-.64s' kan ikkje ha ein standard verdi", "Ugyldig database namn '%-.64s'", "Ugyldig tabell namn '%-.64s'", -"SELECT ville undersøkje for mange postar og ville sannsynligvis ta veldig lang tid. Undersøk WHERE klausulen og bruk SET OPTION SQL_BIG_SELECTS=1 om SELECTen er korrekt" +"SELECT ville undersøkje for mange postar og ville sannsynligvis ta veldig lang tid. Undersøk WHERE klausulen og bruk SET OPTION SQL_BIG_SELECTS=1 om SELECTen er korrekt", "Ukjend feil", "Ukjend prosedyre %s", "Feil parameter tal til prosedyra %s", @@ -140,7 +140,7 @@ "Rows matched: %ld Changed: %ld Warnings: %ld", "Can't create a new thread (errno %d). If you are not out of available memory you can consult the manual for any possible OS dependent bug", "Column count doesn't match value count at row %ld", -"Can't reopen table: '%-.64s', +"Can't reopen table: '%-.64s", "Invalid use of NULL value", "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", @@ -161,7 +161,7 @@ "Got an error from fcntl()", "Got packets out of order", "Couldn't uncompress communication packet", -"Got an error reading communication packets" +"Got an error reading communication packets", "Got timeout reading communication packets", "Got an error writing communication packets", "Got timeout writing communication packets", @@ -200,7 +200,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt index 32fe6c30b34..805d54c422a 100644 --- a/sql/share/norwegian/errmsg.txt +++ b/sql/share/norwegian/errmsg.txt @@ -107,7 +107,7 @@ "Blob feltet '%-.64s' kan ikke ha en standard verdi", "Ugyldig database navn '%-.64s'", "Ugyldig tabell navn '%-.64s'", -"SELECT ville undersøke for mange poster og ville sannsynligvis ta veldig lang tid. Undersøk WHERE klausulen og bruk SET OPTION SQL_BIG_SELECTS=1 om SELECTen er korrekt" +"SELECT ville undersøke for mange poster og ville sannsynligvis ta veldig lang tid. Undersøk WHERE klausulen og bruk SET OPTION SQL_BIG_SELECTS=1 om SELECTen er korrekt", "Ukjent feil", "Ukjent prosedyre %s", "Feil parameter antall til prosedyren %s", @@ -140,7 +140,7 @@ "Rows matched: %ld Changed: %ld Warnings: %ld", "Can't create a new thread (errno %d). If you are not out of available memory you can consult the manual for any possible OS dependent bug", "Column count doesn't match value count at row %ld", -"Can't reopen table: '%-.64s', +"Can't reopen table: '%-.64s", "Invalid use of NULL value", "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", @@ -161,7 +161,7 @@ "Got an error from fcntl()", "Got packets out of order", "Couldn't uncompress communication packet", -"Got an error reading communication packets" +"Got an error reading communication packets", "Got timeout reading communication packets", "Got an error writing communication packets", "Got timeout writing communication packets", @@ -200,7 +200,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt index 4b59a62f991..578d206fda8 100644 --- a/sql/share/polish/errmsg.txt +++ b/sql/share/polish/errmsg.txt @@ -85,10 +85,10 @@ "%s: Standardowe zakoñczenie dzia³ania\n", "%s: Otrzymano sygna³ %d. Koñczenie dzia³ania!\n", "%s: Zakoñczenie dzia³ania wykonane\n", -"%s: Wymuszenie zamkniêcia w?tku %ld u¿ytkownik: '%-.64s'\n", +"%s: Wymuszenie zamkniêcia w?tku %ld u¿ytkownik: '%-.64s'\n", "Nie mo¿na stworzyæ socket'u IP", "Tabela '%-.64s' nie ma indeksu takiego jak w CREATE INDEX. Stwórz tabelê", -"Nie oczekiwano separatora. Sprawd¥ podrêcznik"," +"Nie oczekiwano separatora. Sprawd¥ podrêcznik", "Nie mo¿na u¿yæ sta³ej d³ugo?ci wiersza z polami typu BLOB. U¿yj 'fields terminated by'.", "Plik '%-.64s' musi znajdowaæ sie w katalogu bazy danych lub mieæ prawa czytania przez wszystkich", "Plik '%-.64s' ju¿ istnieje", @@ -142,7 +142,7 @@ "Rows matched: %ld Changed: %ld Warnings: %ld", "Can't create a new thread (errno %d). If you are not out of available memory you can consult the manual for any possible OS dependent bug", "Column count doesn't match value count at row %ld", -"Can't reopen table: '%-.64s', +"Can't reopen table: '%-.64s", "Invalid use of NULL value", "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", @@ -163,7 +163,7 @@ "Got an error from fcntl()", "Got packets out of order", "Couldn't uncompress communication packet", -"Got an error reading communication packets" +"Got an error reading communication packets", "Got timeout reading communication packets", "Got an error writing communication packets", "Got timeout writing communication packets", @@ -202,7 +202,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt index 7236bd86652..ac46736c7da 100644 --- a/sql/share/portuguese/errmsg.txt +++ b/sql/share/portuguese/errmsg.txt @@ -138,7 +138,7 @@ "Linhas que combinaram: %ld - Alteradas: %ld - Avisos: %ld", "Não pode criar uma nova 'thread' (erro no. %d). Se você não estiver sem memória disponível, você pode consultar o manual sobre um possível 'bug' dependente do sistema operacional", "Contagem de colunas não confere com a contagem de valores na linha %ld", -"Não pode reabrir a tabela '%-.64s', +"Não pode reabrir a tabela '%-.64s", "Uso inválido do valor NULL", "Obteve erro '%-.64s' em regexp", "Mistura de colunas agrupadas (com MIN(), MAX(), COUNT(), ...) com colunas não agrupadas é ilegal, se não existir uma cláusula de agrupamento (cláusula GROUP BY)", diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt index 0b8bbe1c219..3df02805a14 100644 --- a/sql/share/romanian/errmsg.txt +++ b/sql/share/romanian/errmsg.txt @@ -202,7 +202,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt index 2f1eedd207c..e0bae3166db 100644 --- a/sql/share/russian/errmsg.txt +++ b/sql/share/russian/errmsg.txt @@ -62,7 +62,7 @@ " '%-.64s' ÉÓÐÏÌØÚÏ×ÁÎÏ ×ÎÅ ×ÙÒÁÖÅÎÉÑ GROUP BY", "îÅ ÍÏÇÕ ÐÒÏÉÚ×ÅÓÔÉ ÇÒÕÐÐÉÒÏ×ËÕ ÐÏ '%-.64s'", "÷ ÏÄÎÏÍ ×ÙÒÁÖÅÎÉÉ ÓÏÄÅÒÖÁÔØÓÑ É ÉÍÅÎÁ ÐÏÌÅÊ, É ÓÕÍÍÉÒÕÀÝÉÅ ÆÕÎËÃÉÉ", -"þÉÓÌÏ ÓÔÏÌÂÃÏ× ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÞÉÓÌÕ ÚÎÁÞÅÎÉÊ" +"þÉÓÌÏ ÓÔÏÌÂÃÏ× ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÞÉÓÌÕ ÚÎÁÞÅÎÉÊ", "óÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ: '%-.64s'", "äÕÂÌÉÒÏ×ÁÎÎÏÅ ÉÍÑ ÐÏÌÑ '%-.64s'", "äÕÂÌÉÒÏ×ÁÎÎÏÅ ÉÍÑ ËÌÀÞÁ '%-.64s'", @@ -141,7 +141,7 @@ "óÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÚÁÐÉÓÅÊ: %ld éÚÍÅÎÅÎÏ: %ld ðÒÅÄÕÐÒÅÖÄÅÎÉÊ: %ld", "îÅ ÍÏÇÕ ÓÏÚÄÁÔØ ÎÏ×ÕÀ ÎÉÔØ (ÏÛÉÂËÁ %d). åÓÌÉ ÜÔÏ ÎÅ ÉÚ-ÚÁ ÎÅÈ×ÁÔËÉ ÐÁÍÑÔÉ, ÐÏÓÍÏÔÒÉÔÅ × ÒÕËÏ×ÏÄÓÔ×Å ×ÏÚÍÏÖÎÙÅ OS-ÚÁ×ÉÓÉÍÙÅ ÇÌÀËÉ", "þÉÓÌÏ ÓÔÏÌÂÃÏ× ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÞÉÓÌÕ ÚÎÁÞÅÎÉÊ × ÓÔÒÏËÅ %ld", -"îÅ ÍÏÇÕ ÚÁÎÏ×Ï ÏÔËÒÙÔØ ÔÁÂÌÉÃÕ: '%-.64s', +"îÅ ÍÏÇÕ ÚÁÎÏ×Ï ÏÔËÒÙÔØ ÔÁÂÌÉÃÕ: '%-.64s", "îÅÐÒÁ×ÉÌØÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÚÎÁÞÅÎÉÑ NULL", "REGEXP ×ÅÒÎÕÌ ÏÛÉÂËÕ '%-.64s'", "éÓÐÏÌØÚÏ×ÁÎÉÅ ÁÇÒÅÇÁÔÎÙÈ ÆÕÎËÃÉÊ (MIN(),MAX(),COUNT()...) ÓÏ×ÍÅÓÔÎÏ Ó ÏÂÙÞÎÙÍÉ ÚÎÁÞÅÎÉÑÍÉ ×ÏÚÍÏÖÎÏ ÔÏÌØËÏ ÐÒÉ ÎÁÌÉÞÉÉ ÒÁÚÄÅÌÁ GROUP BY", @@ -162,7 +162,7 @@ "fcntl() ×ÅÒÎÕÌ ÏÛÉÂËÕ", "ðÏÌÕÞÅÎ ÐÁËÅÔ × ÎÅÐÒÁ×ÉÌØÎÏÍ ÐÏÒÑÄËÅ", "îÅ ÍÏÇÕ ÒÁÓÐÁËÏ×ÁÔØ ÐÁËÅÔ", -"ïÛÉÂËÁ ÐÒÉ ÞÔÅÎÉÉ ÐÁËÅÔÏ×" +"ïÛÉÂËÁ ÐÒÉ ÞÔÅÎÉÉ ÐÁËÅÔÏ×", "ôÁÊÍÁÕÔ ÐÒÉ ÞÔÅÎÉÉ ÐÁËÅÔÏ×", "ïÛÉÂËÁ ÐÒÉ ÏÔÐÒÁ×ËÅ ÐÁËÅÔÏ×", "ïÛÉÂËÁ ÐÒÉ ÏÔÐÒÁ×ËÅ ÐÁËÅÔÏ×", diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt index de354f234c7..f699e811352 100644 --- a/sql/share/slovak/errmsg.txt +++ b/sql/share/slovak/errmsg.txt @@ -146,7 +146,7 @@ "Rows matched: %ld Changed: %ld Warnings: %ld", "Can't create a new thread (errno %d). If you are not out of available memory, you can consult the manual for a possible OS-dependent bug", "Column count doesn't match value count at row %ld", -"Can't reopen table: '%-.64s', +"Can't reopen table: '%-.64s", "Invalid use of NULL value", "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", @@ -167,7 +167,7 @@ "Got an error from fcntl()", "Got packets out of order", "Couldn't uncompress communication packet", -"Got an error reading communication packets" +"Got an error reading communication packets", "Got timeout reading communication packets", "Got an error writing communication packets", "Got timeout writing communication packets", @@ -206,7 +206,7 @@ "Table '%-.64s' is marked as crashed and should be repaired", "Table '%-.64s' is marked as crashed and last (automatic?) repair failed", "Some non-transactional changed tables couldn't be rolled back", -"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again', +"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again", "This operation cannot be performed with a running slave, run STOP SLAVE first", "This operation requires a running slave, configure slave and do START SLAVE", "The server is not configured as slave, fix in config file or with CHANGE MASTER TO", diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt index a528c3e6b36..0965d1ab3eb 100644 --- a/sql/share/spanish/errmsg.txt +++ b/sql/share/spanish/errmsg.txt @@ -139,7 +139,7 @@ "Líneas correspondientes: %ld Cambiadas: %ld Avisos: %ld", "No puedo crear un nuevo thread (errno %d). Si tu está con falta de memoria disponible, tu puedes consultar el Manual para posibles problemas con SO", "El número de columnas no corresponde al número en la línea %ld", -"No puedo reabrir tabla: '%-.64s', +"No puedo reabrir tabla: '%-.64s", "Invalido uso de valor NULL", "Obtenido error '%-.64s' de regexp", "Mezcla de columnas GROUP (MIN(),MAX(),COUNT()...) con no GROUP columnas es ilegal si no hat la clausula GROUP BY", @@ -160,7 +160,7 @@ "Obtenido un error de fcntl()", "Obtenido paquetes desordenados", "No puedo descomprimir paquetes de comunicación", -"Obtenido un error leyendo paquetes de comunicación" +"Obtenido un error leyendo paquetes de comunicación", "Obtenido timeout leyendo paquetes de comunicación", "Obtenido un error de escribiendo paquetes de comunicación", "Obtenido timeout escribiendo paquetes de comunicación", @@ -199,7 +199,7 @@ "Tabla '%-.64s' está marcada como crashed y debe ser reparada", "Tabla '%-.64s' está marcada como crashed y la última reparación (automactica?) falló", "Aviso: Algunas tablas no transancionales no pueden tener rolled back", -"Multipla transición necesita mas que 'max_binlog_cache_size' bytes de almacenamiento. Aumente esta variable mysqld y tente de nuevo', +"Multipla transición necesita mas que 'max_binlog_cache_size' bytes de almacenamiento. Aumente esta variable mysqld y tente de nuevo", "Esta operación no puede ser hecha con el esclavo funcionando, primero use STOP SLAVE", "Esta operación necesita el esclavo funcionando, configure esclavo y haga el START SLAVE", "El servidor no está configurado como esclavo, edite el archivo config file o con CHANGE MASTER TO", diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt index 5473f4e8e42..7ea172996c6 100644 --- a/sql/share/swedish/errmsg.txt +++ b/sql/share/swedish/errmsg.txt @@ -85,7 +85,7 @@ "Kan inte skapa IP socket", "Tabellen '%-.64s' har inget index som motsvarar det angivna i CREATE INDEX. Skapa om tabellen", "Fält separatorerna är inte emotsägande eller för långa. Kontrollera mot manualen", -"Man kan inte använda fast radlängd med blobs. Använd 'fields terminated by'." +"Man kan inte använda fast radlängd med blobs. Använd 'fields terminated by'", "Textfilen '%' måste finnas i databas biblioteket eller vara läsbar för alla", "Filen '%-.64s' existerar redan", "Rader: %ld Bortagna: %ld Dubletter: %ld Varningar: %ld", @@ -102,7 +102,7 @@ "Kan inte generera ett unikt filnamn %s.(1-999)\n", "Tabell '%-.64s' kan inte uppdateras emedan den är låst för läsning", "Tabell '%-.64s' är inte låst med LOCK TABLES", -"BLOB fält '%-.64s' kan inte ha ett DEFAULT värde" +"BLOB fält '%-.64s' kan inte ha ett DEFAULT värde", "Felaktigt databas namn '%-.64s'", "Felaktigt tabell namn '%-.64s'", "Den angivna frågan skulle troligen ta mycket long tid! Kontrollar din WHERE och använd SET OPTION SQL_BIG_SELECTS=1 ifall du vill hantera stora joins", @@ -117,7 +117,7 @@ "Tabeller måste ha minst 1 kolumn", "Tabellen '%-.64s' är full", "Okänt karaktärset: '%-.64s'", -"För många tabeller. MySQL can ha högst %d tabeller i en och samma join" +"För många tabeller. MySQL can ha högst %d tabeller i en och samma join", "För många fält", "För stor total rad längd. Den högst tillåtna rad-längden, förutom BLOBs, är %d. Ändra några av dina fält till BLOB", "Tråd-stacken tog slut: Har använt %ld av %ld bytes. Använd 'mysqld -O thread_stack=#' ifall du behöver en större stack", @@ -136,9 +136,9 @@ "För att ändra lösenord för andra måste du ha rättigheter att uppdatera mysql databasen", "Hittade inte användaren i 'user' tabellen", "Rader: %ld Uppdaterade: %ld Varningar: %ld", -"Kan inte skapa en ny tråd (errno %d)" +"Kan inte skapa en ny tråd (errno %d)", "Antalet kolumner motsvarar inte antalet värden på rad: %ld", -"Kunde inte stänga och öppna tabell: '%-.64s', +"Kunde inte stänga och öppna tabell: '%-.64s", "Felaktig använding av NULL", "Fix fel '%-.64s' från REGEXP", "Man får ha både GROUP kolumner (MIN(),MAX(),COUNT()...) och fält i en fråga om man inte har en GROUP BY del", @@ -147,7 +147,7 @@ "%-.16s ej tillåtet för '%-.32s@%-.64s'\n för kolumn '%-.64s' i tabell '%-.64s'", "Felaktigt GRANT privilegium använt", "Felaktigt maskinnamn eller användarnamn använt med GRANT", -"Det finns ingen tabell som heter '%-.64s.%s'" +"Det finns ingen tabell som heter '%-.64s.%s'", "Det finns inget privilegium definierat för användare '%-.32s' på '%-.64s' för tabell '%-.64s'", "Du kan inte använda detta kommando med denna MySQL version", "Du har något fel i din syntax", @@ -160,7 +160,7 @@ "Kommunikationspaketen kom i fel ordning", "Kunde inte packa up kommunikationspaketet", "Fick ett fel vid läsning från klienten", -"Fick 'timeout' vid läsning från klienten", +"Fick 'timeout' vid läsning från klienten", "Fick ett fel vid skrivning till klienten", "Fick 'timeout' vid skrivning till klienten", "Resultat strängen är längre än max_allowed_packet", diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt index 0b91786d1f3..8b981351d8b 100644 --- a/sql/share/ukrainian/errmsg.txt +++ b/sql/share/ukrainian/errmsg.txt @@ -203,7 +203,7 @@ "ôÁÂÌÉÃÀ '%-.64s' ÍÁÒËÏ×ÁÎÏ ÑË Ú¦ÐÓÏ×ÁÎÕ ÔÁ §§ ÐÏÔÒ¦ÂÎÏ ×¦ÄÎÏ×ÉÔÉ", "ôÁÂÌÉÃÀ '%-.64s' ÍÁÒËÏ×ÁÎÏ ÑË Ú¦ÐÓÏ×ÁÎÕ ÔÁ ÏÓÔÁÎΤ (Á×ÔÏÍÁÔÉÞÎÅ?) צÄÎÏ×ÌÅÎÎÑ ÎÅ ×ÄÁÌÏÓÑ", "úÁÓÔÅÒÅÖÅÎÎÑ: äÅÑ˦ ÎÅÔÒÁÎÚÁËæÊΦ ÚͦÎÉ ÔÁÂÌÉÃØ ÎÅ ÍÏÖÎÁ ÂÕÄÅ ÐÏ×ÅÒÎÕÔÉ", -"ôÒÁÎÚÁËÃ¦Ñ Ú ÂÁÇÁÔØÍÁ ×ÉÒÁÚÁÍÉ ×ÉÍÁÇÁ¤ ¦ÌØÛÅ Î¦Ö 'max_binlog_cache_size' ÂÁÊÔ¦× ÄÌÑ ÚÂÅÒ¦ÇÁÎÎÑ. ú¦ÌØÛÔÅ ÃÀ ÚͦÎÎÕ mysqld ÔÁ ÓÐÒÏÂÕÊÔÅ ÚÎÏ×Õ', +"ôÒÁÎÚÁËÃ¦Ñ Ú ÂÁÇÁÔØÍÁ ×ÉÒÁÚÁÍÉ ×ÉÍÁÇÁ¤ ¦ÌØÛÅ Î¦Ö 'max_binlog_cache_size' ÂÁÊÔ¦× ÄÌÑ ÚÂÅÒ¦ÇÁÎÎÑ. ú¦ÌØÛÔÅ ÃÀ ÚͦÎÎÕ mysqld ÔÁ ÓÐÒÏÂÕÊÔÅ ÚÎÏ×Õ", "ïÐÅÒÁÃ¦Ñ ÎÅ ÍÏÖÅ ÂÕÔÉ ×ÉËÏÎÁÎÁ Ú ÚÁÐÕÝÅÎÉÍ Ð¦ÄÌÅÇÌÉÍ, ÓÐÏÞÁÔËÕ ×ÉËÏÎÁÊÔÅ STOP SLAVE", "ïÐÅÒÁÃ¦Ñ ×ÉÍÁÇÁ¤ ÚÁÐÕÝÅÎÏÇÏ Ð¦ÄÌÅÇÌÏÇÏ, ÚËÏÎƦÇÕÒÕÊÔŠЦÄÌÅÇÌÏÇÏ ÔÁ ×ÉËÏÎÁÊÔÅ START SLAVE", "óÅÒ×ÅÒ ÎÅ ÚËÏÎƦÇÕÒÏ×ÁÎÏ ÑË Ð¦ÄÌÅÇÌÉÊ, ×ÉÐÒÁ×ÔÅ ÃÅ Õ ÆÁÊ̦ ËÏÎƦÇÕÒÁæ§ ÁÂÏ Ú CHANGE MASTER TO", diff --git a/sql/sql_analyse.h b/sql/sql_analyse.h index 5f0058c3ad9..d40811a2911 100644 --- a/sql/sql_analyse.h +++ b/sql/sql_analyse.h @@ -312,8 +312,10 @@ public: ~analyse() { if (f_info) + { for (field_info **f=f_info; f != f_end; f++) delete (*f); + } } virtual void add() {} virtual bool change_columns(List<Item> &fields); diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc index 0505d2409d4..7c07c08bcac 100644 --- a/sql/sql_handler.cc +++ b/sql/sql_handler.cc @@ -163,10 +163,13 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables, { switch (mode) { case RFIRST: - err=keyname ? - table->file->index_first(table->record[0]) : - table->file->rnd_init(1) || - table->file->rnd_next(table->record[0]); + if (keyname) + err=table->file->index_first(table->record[0]); + else + { + if (!(err=table->file->rnd_init(1))) + err=table->file->rnd_next(table->record[0]); + } mode=RNEXT; break; case RLAST: diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 49b4f2f7c2f..9415618c561 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -341,6 +341,7 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, } if (transactional_table) error=ha_autocommit_or_rollback(thd,error); + query_cache_invalidate3(thd, table_list, 0); err: if (thd->lock) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ce782b0480c..1b673531e68 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2432,7 +2432,7 @@ mysql_execute_command(THD *thd) 0, (ORDER *)NULL, (ORDER *)NULL, (Item *)NULL, (ORDER *)NULL, select_lex->options | thd->options | - SELECT_NO_JOIN_CACHE, + SELECT_NO_JOIN_CACHE | SELECT_NO_UNLOCK, result, unit, select_lex, 0, 0); if (thd->net.report_error) res= -1; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index a5e07379f59..360b6a0bdd3 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1649,6 +1649,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, new_db=db; used_fields=create_info->used_fields; + mysql_ha_closeall(thd, table_list); if (!(table=open_ltable(thd,table_list,TL_WRITE_ALLOW_READ))) DBUG_RETURN(-1); diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 88f677938ad..65f07293c77 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -427,7 +427,7 @@ int mysql_multi_update(THD *thd, table_list, select_lex->with_wild, total_list, conds, 0, (ORDER *) NULL, (ORDER *)NULL, (Item *) NULL, (ORDER *)NULL, - options | SELECT_NO_JOIN_CACHE, + options | SELECT_NO_JOIN_CACHE | SELECT_NO_UNLOCK, result, unit, select_lex, 0, 0); delete result; DBUG_RETURN(res); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 741ec375fdd..b1cb5c8f486 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -650,7 +650,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); show describe load alter optimize flush reset purge begin commit rollback slave master_def master_defs repair restore backup analyze check start - field_list field_list_item field_spec kill + field_list field_list_item field_spec kill column_def key_def select_item_list select_item values_list no_braces opt_limit_clause delete_limit_clause fields opt_values values procedure_list procedure_list2 procedure_item @@ -1049,12 +1049,20 @@ field_list: field_list_item: + column_def + | key_def + ; + +column_def: field_spec check_constraint | field_spec references { Lex->col_list.empty(); /* Alloced by sql_alloc */ } - | key_type opt_ident key_alg '(' key_list ')' + ; + +key_def: + key_type opt_ident key_alg '(' key_list ')' { LEX *lex=Lex; lex->key_list.push_back(new Key($1,$2, $3, lex->col_list)); @@ -1468,7 +1476,8 @@ add_column: ADD opt_column { Lex->change=0; }; alter_list_item: - add_column field_list_item opt_place { Lex->simple_alter=0; } + add_column column_def opt_place { Lex->simple_alter=0; } + | ADD key_def { Lex->simple_alter=0; } | add_column '(' field_list ')' { Lex->simple_alter=0; } | CHANGE opt_column field_ident { diff --git a/sql/table.h b/sql/table.h index 1f7df0c6d64..33e2db98d5a 100644 --- a/sql/table.h +++ b/sql/table.h @@ -170,7 +170,6 @@ typedef struct st_table_list uint32 db_length, real_name_length; bool straight; /* optimize with prev table */ bool updating; /* for replicate-do/ignore table */ - bool do_redirect; /* To get the struct in UNION's */ bool force_index; /* Prefer index over table scan */ } TABLE_LIST; diff --git a/support-files/MacOSX/Description.plist.sh b/support-files/MacOSX/Description.plist.sh index 4f388235eee..03212dfdeff 100644 --- a/support-files/MacOSX/Description.plist.sh +++ b/support-files/MacOSX/Description.plist.sh @@ -5,7 +5,7 @@ <key>IFPkgDescriptionDeleteWarning</key> <string></string> <key>IFPkgDescriptionDescription</key> - <string>This package provides a binary installation of MySQL @VERSION@@MYSQL_SERVER_SUFFIX@ for Mac OS X.</string> + <string>MySQL @VERSION@@MYSQL_SERVER_SUFFIX@ for Mac OS X</string> <key>IFPkgDescriptionTitle</key> <string>MySQL @VERSION@@MYSQL_SERVER_SUFFIX@ for Mac OS X</string> <key>IFPkgDescriptionVersion</key> diff --git a/support-files/MacOSX/Makefile.am b/support-files/MacOSX/Makefile.am index 0702d104e7e..d030ff39d84 100644 --- a/support-files/MacOSX/Makefile.am +++ b/support-files/MacOSX/Makefile.am @@ -17,19 +17,34 @@ ## Process this file with automake to create Makefile.in -EXTRA_DIST = Info.plist.sh Description.plist.sh +EXTRA_DIST = Info.plist.sh \ + Description.plist.sh \ + StartupParameters.plist.sh \ + postinstall.sh \ + preinstall.sh \ + ReadMe.txt -pkgdata_DATA = Info.plist Description.plist +pkgdata_DATA = Info.plist \ + Description.plist \ + StartupParameters.plist \ + postinstall \ + preinstall -CLEANFILES = Info.plist Description.plist +CLEANFILES = Info.plist \ + Description.plist \ + StartupParameters.plist \ + postinstall \ + preinstall SUFFIXES = .sh .sh: @RM@ -f $@ $@-t @SED@ \ + -e 's!@''prefix''@!$(prefix)!g' \ -e 's!@''VERSION''@!@VERSION@!' \ -e 's!@''MYSQL_SERVER_SUFFIX''@!@MYSQL_SERVER_SUFFIX@!' \ + -e 's!@''MYSQLD_USER''@!@MYSQLD_USER@!' \ $< > $@-t @MV@ $@-t $@ diff --git a/support-files/MacOSX/ReadMe.txt b/support-files/MacOSX/ReadMe.txt new file mode 100644 index 00000000000..ed2d2b4c714 --- /dev/null +++ b/support-files/MacOSX/ReadMe.txt @@ -0,0 +1,80 @@ +Installation notes for MySQL on Mac OS X + +PLEASE READ! + +For more details about installing and running +MySQL on Mac OS X, also refer to the manual, +which is available online: + +http://www.mysql.com/doc/en/Mac_OS_X_installation.html + +NOTE: Before proceeding with the installation, please +make sure that no other MySQL server is running! + +Please shut down all running MySQL instances before +continuing by either using the MySQL Manager +Application (on Mac OS X Server) or via "mysqladmin +shutdown" on the command line. + +This MySQL package will be installed into +"/usr/local/mysql-<version>" and will also create a +symbolic link "/usr/local/mysql", pointing to the new +location. + +A previously existing /usr/local/mysql directory will +be renamed to /usr/local/mysql.bak before proceeding +with the installation. + +Additionally, it will install the mysql grant tables by +executing "mysql_install_db" after the installation. + +If you are running Mac OS X Server, you already have a +version MySQL installed. Make sure to read Apple's help +about installing MySQL (Run the "Help View" application, +select "Mac OS X Server help", and do a search for MySQL +and read the item entitled "Installing MySQL"). + +If you previously used Marc Liyanage's MySQL packages +for MacOS X from http://www.entropy.ch, you can simply +follow the update instructions given on his pages. + +After the installation (and restoring the old database +files, if necessary), you can start up MySQL by running +the following commands in a terminal window: + + cd /usr/local/mysql + sudo ./bin/mysqld_safe + (Enter your password) + (Press CTRL+Z) + (Press CTRL+D to exit the shell) + bg + +You should now be able to connect to the MySQL server, +e.g. by running /usr/local/mysql/bin/mysql + +If you installed MySQL for the first time, +PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER! +This is done with the following two commands: + +/usr/local/mysql/bin/mysqladmin -u root password 'new-password' + +/usr/local/mysql/bin/mysqladmin -u root -h $hostname password 'new-password' + +Please note, that after upgrading from MySQL 3.23 to +MySQL 4.0 it is recommended to convert the MySQL +privilege tables using the mysql_fix_privilege_tables +script, since some new security privileges have been +added. + +Please see +http://www.mysql.com/doc/en/Upgrading-from-3.23.html +for more information on how to upgrade from MySQL 3.23. + +If you do not want to have to type the full path +"/usr/local/mysql/bin" in front of every command, you +can to add this directory to your PATH environment +variable in your login script. For the default shell +"tcsh", you can do this by running this command once: + +echo 'setenv PATH $PATH:/usr/local/mysql/bin' >> ~/.tcshrc + diff --git a/support-files/MacOSX/StartupParameters.plist.sh b/support-files/MacOSX/StartupParameters.plist.sh new file mode 100644 index 00000000000..f5620c73f5f --- /dev/null +++ b/support-files/MacOSX/StartupParameters.plist.sh @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Description</key> + <string>MySQL @VERSION@@MYSQL_SERVER_SUFFIX@</string> + <key>OrderPreference</key> + <string>None</string> + <key>Provides</key> + <array> + <string>MySQL</string> + </array> + <key>Uses</key> + <array> + <string>Network</string> + <string>Resolver</string> + </array> + </dict> +</plist> diff --git a/support-files/MacOSX/postinstall.sh b/support-files/MacOSX/postinstall.sh new file mode 100644 index 00000000000..daaf10bda8f --- /dev/null +++ b/support-files/MacOSX/postinstall.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# +# postinstall - this script will be executed after the MySQL PKG +# installation has been performed. +# +# This script will install the MySQL privilege tables using the +# "mysql_install_db" script and will correct the ownerships of these files +# afterwards. +# + +if cd @prefix@ ; then + if [ ! -f data/mysql/db.frm ] ; then + ./scripts/mysql_install_db + fi + + if [ -d data ] ; then + chown -R @MYSQLD_USER@ data + fi +else + exit $? +fi diff --git a/support-files/MacOSX/preinstall.sh b/support-files/MacOSX/preinstall.sh new file mode 100644 index 00000000000..62772573c46 --- /dev/null +++ b/support-files/MacOSX/preinstall.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# +# preinstall - this script will be executed before the MySQL PKG +# installation will be performed. +# +# If this package has been compiled with a prefix ending with "mysql" (e.g. +# /usr/local/mysql or /opt/mysql), it will rename any previosuly existing +# directory with this name before installing the new package (which includes +# a symlink named "mysql", pointing to the newly installed directory, which +# is named mysql-<version>) +# + +PREFIX="@prefix@" +BASENAME=`basename $PREFIX` + +if [ -d $PREFIX -a ! -L $PREFIX -a $BASENAME = "mysql" ] ; then + mv $PREFIX $PREFIX.bak +fi |