merge
This commit is contained in:
commit
dd9cbce47b
@ -3,7 +3,7 @@
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$pentium_cflags $debug_cflags -DBIG_TABLES"
|
||||
extra_flags="$pentium_cflags $debug_cflags"
|
||||
c_warnings="$c_warnings $debug_extra_warnings"
|
||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$pentium_configs $debug_configs"
|
||||
|
13
BUILD/compile-pentium-maintainer
Executable file
13
BUILD/compile-pentium-maintainer
Executable file
@ -0,0 +1,13 @@
|
||||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$pentium_cflags $debug_cflags"
|
||||
c_warnings="$c_warnings $debug_extra_warnings"
|
||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$pentium_configs $debug_configs "
|
||||
|
||||
extra_configs="$extra_configs --enable-maintainer-mode"
|
||||
|
||||
. "$path/FINISH.sh"
|
@ -63,11 +63,13 @@ miguel@hegel.br
|
||||
miguel@hegel.local
|
||||
miguel@light.
|
||||
miguel@light.local
|
||||
miguel@sartre.local
|
||||
mmatthew@markslaptop.
|
||||
monty@bitch.mysql.fi
|
||||
monty@butch.
|
||||
monty@donna.mysql.fi
|
||||
monty@hundin.mysql.fi
|
||||
monty@mashka.(none)
|
||||
monty@mashka.mysql.fi
|
||||
monty@narttu.
|
||||
monty@narttu.mysql.fi
|
||||
@ -85,6 +87,7 @@ nick@mysql.com
|
||||
nick@nick.leippe.com
|
||||
papa@gbichot.local
|
||||
paul@central.snake.net
|
||||
paul@ice.local
|
||||
paul@ice.snake.net
|
||||
paul@teton.kitebird.com
|
||||
pem@mysql.com
|
||||
|
@ -38,12 +38,14 @@ $opt_export_only= undef;
|
||||
$opt_help= $opt_verbose= 0;
|
||||
$opt_log= undef;
|
||||
$opt_mail= "";
|
||||
$opt_revision= undef;
|
||||
$opt_suffix= "";
|
||||
$opt_test= undef;
|
||||
$opt_skip_check= undef;
|
||||
$opt_skip_manual= undef;
|
||||
$opt_win_dist= undef;
|
||||
$version= "unknown";
|
||||
$major=$minor=$release=0;
|
||||
|
||||
GetOptions(
|
||||
"build-command|b=s",
|
||||
@ -151,6 +153,7 @@ if (!$opt_dry_run)
|
||||
{
|
||||
m/^AM_INIT_AUTOMAKE\(mysql, ([1-9]\.[0-9]{1,2}\.[0-9]{1,2}.*)\)/;
|
||||
$version= $1;
|
||||
($major, $minor, $release) = split(/\./,$version);
|
||||
}
|
||||
&logger("Found version string: $version");
|
||||
|
||||
@ -220,7 +223,7 @@ if (defined $opt_changelog)
|
||||
{
|
||||
if (!$opt_revision)
|
||||
{
|
||||
$revision= `bk changes -t -d':REV:' -n $REPO | head -1`;
|
||||
$revision= `bk changes -t -d':REV:::TAG:' -n $REPO | grep mysql-$major.$minor | head -1 | cut -f1 -d ":"`;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -248,7 +248,8 @@ if ($opt_stage <= 1)
|
||||
$opt_config_options.= $opt_with_other_libc;
|
||||
}
|
||||
|
||||
check_system("$opt_config_env ./configure --prefix=/usr/local/mysql --with-comment=\"Official MySQL$opt_version_suffix binary\" --with-extra-charsets=complex --with-server-suffix=\"$opt_version_suffix\" --enable-thread-safe-client --enable-local-infile $opt_config_options","Thank you for choosing MySQL");
|
||||
$prefix="/usr/local/mysql";
|
||||
check_system("$opt_config_env ./configure --prefix=$prefix --localstatedir=$prefix/data --libexecdir=$prefix/bin --with-comment=\"Official MySQL$opt_version_suffix binary\" --with-extra-charsets=complex --with-server-suffix=\"$opt_version_suffix\" --enable-thread-safe-client --enable-local-infile $opt_config_options","Thank you for choosing MySQL");
|
||||
if (-d "$pwd/$host/include-mysql")
|
||||
{
|
||||
safe_system("cp -r $pwd/$host/include-mysql/* $pwd/$host/$ver/include");
|
||||
|
@ -41,10 +41,10 @@ paper: manual_a4.ps manual_letter.ps $(PDFMANUAL)
|
||||
# The Makefile contains the previous version so we can not use that
|
||||
include.texi: ../configure.in
|
||||
echo "@c This file is autogenerated by the Makefile" > $@
|
||||
echo -n "@set mysql_version " >> $@
|
||||
echo -n "@set mysqlversion " >> $@
|
||||
grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
|
||||
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> $@
|
||||
echo -n "@set default_port " >> $@
|
||||
echo -n "@set defaultport " >> $@
|
||||
grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
|
||||
sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> $@
|
||||
|
||||
@ -207,7 +207,7 @@ INSTALL-BINARY: mysql.info $(GT)
|
||||
perl -w $(GT) mysql.info "LGPL license" "Function Index" > $@
|
||||
|
||||
../support-files/MacOSX/ReadMe.txt: mysql.info $(GT)
|
||||
perl -w $(GT) mysql.info "Mac OS X installation" "Netware installation" > $@
|
||||
perl -w $(GT) mysql.info "Mac OS X installation" "NetWare installation" > $@
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
@ -1,11 +1,11 @@
|
||||
#!/my/gnu/bin/perl -w -*- perl -*-
|
||||
#!/usr/bin/perl -w -*- perl -*-
|
||||
# Generate text files from top directory from the manual.
|
||||
|
||||
$from = shift(@ARGV);
|
||||
$fnode = shift(@ARGV);
|
||||
$tnode = shift(@ARGV);
|
||||
|
||||
open(IN, "$from") || die;
|
||||
open(IN, "$from") || die "Cannot open $from: $!";
|
||||
|
||||
$in = 0;
|
||||
|
||||
@ -19,7 +19,7 @@ while (<IN>)
|
||||
}
|
||||
elsif (/^File: mysql.info/ || (/^/))
|
||||
{
|
||||
# Just Skip node begginigs
|
||||
# Just Skip node beginnings
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -38,3 +38,6 @@ while (<IN>)
|
||||
}
|
||||
|
||||
close(IN);
|
||||
|
||||
die "Could not find node \"$tnode\"" if ($in == 1);
|
||||
exit 0;
|
||||
|
@ -0,0 +1,37 @@
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
||||
[topdir]
|
||||
subdir0=<WINDIR>
|
||||
subdir1=<PROGRAMFILES>
|
||||
subdir2=<TARGETDIR>
|
||||
subdir3=USERDEFINED
|
||||
|
||||
[<WINDIR>]
|
||||
DISPLAYTEXT=Windows Operating System
|
||||
TYPE=TEXTSUBFIXED
|
||||
subdir0=<WINDIR>\<WINSYSDIR>
|
||||
|
||||
[<WINDIR>\<WINSYSDIR>]
|
||||
DISPLAYTEXT=Windows System Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
DISPLAYTEXT=Program Files Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
subdir0=<PROGRAMFILES>\<COMMONFILES>
|
||||
|
||||
[<PROGRAMFILES>\<COMMONFILES>]
|
||||
DISPLAYTEXT=Common Files Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
|
||||
[<TARGETDIR>]
|
||||
DISPLAYTEXT=General Application Destination
|
||||
TYPE=TEXTSUBFIXED
|
||||
|
||||
[USERDEFINED]
|
||||
DISPLAYTEXT=Script-defined Folders
|
||||
TYPE=USERSTART
|
||||
|
||||
|
@ -0,0 +1,192 @@
|
||||
[Development]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=STANDARD
|
||||
required1=Grant Tables
|
||||
HTTPLOCATION=
|
||||
STATUS=Examples, Libraries, Includes and Script files
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=Examples, Libraries, Includes and Script files
|
||||
DISPLAYTEXT=Examples, Libraries, Includes and Script files
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Development
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
INSTALLATION=ALWAYSOVERWRITE
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[Grant Tables]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=CRITICAL
|
||||
HTTPLOCATION=
|
||||
STATUS=The Grant Tables and Core Files
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The Grant Tables and Core Files
|
||||
DISPLAYTEXT=The Grant Tables and Core Files
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Grant Tables
|
||||
requiredby0=Development
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
requiredby1=Clients and Tools
|
||||
INSTALLATION=NEVEROVERWRITE
|
||||
requiredby2=Documentation
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[Components]
|
||||
component0=Development
|
||||
component1=Grant Tables
|
||||
component2=Servers
|
||||
component3=Clients and Tools
|
||||
component4=Documentation
|
||||
|
||||
[TopComponents]
|
||||
component0=Servers
|
||||
component1=Clients and Tools
|
||||
component2=Documentation
|
||||
component3=Development
|
||||
component4=Grant Tables
|
||||
|
||||
[SetupType]
|
||||
setuptype0=Compact
|
||||
setuptype1=Typical
|
||||
setuptype2=Custom
|
||||
|
||||
[Clients and Tools]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=HIGHLYRECOMMENDED
|
||||
required1=Grant Tables
|
||||
HTTPLOCATION=
|
||||
STATUS=The MySQL clients and Maintenance Tools
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The MySQL clients and Maintenance Tools
|
||||
DISPLAYTEXT=The MySQL clients and Maintenance Tools
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Clients and Tools
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
INSTALLATION=NEWERDATE
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[Servers]
|
||||
SELECTED=Yes
|
||||
FILENEED=CRITICAL
|
||||
HTTPLOCATION=
|
||||
STATUS=The MySQL Servers
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The MySQL Servers
|
||||
DISPLAYTEXT=The MySQL Servers
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Servers
|
||||
requiredby0=Development
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
requiredby1=Grant Tables
|
||||
INSTALLATION=ALWAYSOVERWRITE
|
||||
requiredby2=Clients and Tools
|
||||
requiredby3=Documentation
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[SetupTypeItem-Compact]
|
||||
Comment=
|
||||
item0=Grant Tables
|
||||
item1=Servers
|
||||
item2=Clients and Tools
|
||||
item3=Documentation
|
||||
Descrip=
|
||||
DisplayText=
|
||||
|
||||
[SetupTypeItem-Custom]
|
||||
Comment=
|
||||
item0=Development
|
||||
item1=Grant Tables
|
||||
item2=Servers
|
||||
item3=Clients and Tools
|
||||
Descrip=
|
||||
item4=Documentation
|
||||
DisplayText=
|
||||
|
||||
[Info]
|
||||
Type=CompDef
|
||||
Version=1.00.000
|
||||
Name=
|
||||
|
||||
[SetupTypeItem-Typical]
|
||||
Comment=
|
||||
item0=Development
|
||||
item1=Grant Tables
|
||||
item2=Servers
|
||||
item3=Clients and Tools
|
||||
Descrip=
|
||||
item4=Documentation
|
||||
DisplayText=
|
||||
|
||||
[Documentation]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=HIGHLYRECOMMENDED
|
||||
required1=Grant Tables
|
||||
HTTPLOCATION=
|
||||
STATUS=The MySQL Documentation with different formats
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The MySQL Documentation with different formats
|
||||
DISPLAYTEXT=The MySQL Documentation with different formats
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Documentation
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
INSTALLATION=ALWAYSOVERWRITE
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
@ -0,0 +1,42 @@
|
||||
[<PROGRAMFILES>\<COMMONFILES>]
|
||||
DISPLAYTEXT=Common Files Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[<WINDIR>\<WINSYSDIR>]
|
||||
DISPLAYTEXT=Windows System Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[USERDEFINED]
|
||||
DISPLAYTEXT=Script-defined Folders
|
||||
TYPE=USERSTART
|
||||
fulldirectory=
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
DISPLAYTEXT=Program Files Folder
|
||||
SubDir0=<PROGRAMFILES>\<COMMONFILES>
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[<TARGETDIR>]
|
||||
DISPLAYTEXT=General Application Destination
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[<WINDIR>]
|
||||
DISPLAYTEXT=Windows Operating System
|
||||
SubDir0=<WINDIR>\<WINSYSDIR>
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[TopDir]
|
||||
SubDir0=<WINDIR>
|
||||
SubDir1=<PROGRAMFILES>
|
||||
SubDir2=<TARGETDIR>
|
||||
SubDir3=USERDEFINED
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,35 @@
|
||||
[bin]
|
||||
file15=C:\mysql\bin\pack_isam.exe
|
||||
file16=C:\mysql\bin\perror.exe
|
||||
file0=C:\mysql\bin\isamchk.exe
|
||||
file17=C:\mysql\bin\replace.exe
|
||||
file1=C:\mysql\bin\myisamchk.exe
|
||||
file18=C:\mysql\bin\winmysqladmin.cnt
|
||||
file2=C:\mysql\bin\myisamlog.exe
|
||||
file19=C:\mysql\bin\winmysqladmin.exe
|
||||
file3=C:\mysql\bin\myisampack.exe
|
||||
file4=C:\mysql\bin\mysql.exe
|
||||
file5=C:\mysql\bin\mysqladmin.exe
|
||||
file6=C:\mysql\bin\mysqlbinlog.exe
|
||||
file7=C:\mysql\bin\mysqlc.exe
|
||||
file8=C:\mysql\bin\mysqlcheck.exe
|
||||
file9=C:\mysql\bin\mysqldump.exe
|
||||
file20=C:\mysql\bin\WINMYSQLADMIN.HLP
|
||||
file21=C:\mysql\bin\cygwinb19.dll
|
||||
file10=C:\mysql\bin\mysqlimport.exe
|
||||
fulldirectory=
|
||||
file22=C:\mysql\bin\libmySQL.dll
|
||||
file11=C:\mysql\bin\MySqlManager.exe
|
||||
file23=C:\mysql\bin\my_print_defaults.exe
|
||||
file12=C:\mysql\bin\mysqlshow.exe
|
||||
file24=C:\mysql\bin\comp-err.exe
|
||||
file13=C:\mysql\bin\mysqlshutdown.exe
|
||||
file14=C:\mysql\bin\mysqlwatch.exe
|
||||
|
||||
[TopDir]
|
||||
SubDir0=bin
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
82
VC++Files/InstallShield/3.23.XX-gpl/File Groups/Default.fdf
Normal file
82
VC++Files/InstallShield/3.23.XX-gpl/File Groups/Default.fdf
Normal file
@ -0,0 +1,82 @@
|
||||
[FileGroups]
|
||||
group0=Development
|
||||
group1=Grant Tables
|
||||
group2=Servers
|
||||
group3=Clients and Tools
|
||||
group4=Documentation
|
||||
|
||||
[Development]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Grant Tables]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Clients and Tools]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=0000000000000000
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Servers]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Info]
|
||||
Type=FileGrp
|
||||
Version=1.00.000
|
||||
Name=
|
||||
|
||||
[Documentation]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
@ -0,0 +1,4 @@
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
191
VC++Files/InstallShield/3.23.XX-gpl/File Groups/Development.fgl
Normal file
191
VC++Files/InstallShield/3.23.XX-gpl/File Groups/Development.fgl
Normal file
@ -0,0 +1,191 @@
|
||||
[bench\Data\Wisconsin]
|
||||
file0=C:\mysql\bench\Data\Wisconsin\onek.data
|
||||
file1=C:\mysql\bench\Data\Wisconsin\tenk.data
|
||||
fulldirectory=
|
||||
|
||||
[lib\debug]
|
||||
file0=C:\mysql\lib\debug\libmySQL.dll
|
||||
file1=C:\mysql\lib\debug\libmySQL.lib
|
||||
file2=C:\mysql\lib\debug\mysqlclient.lib
|
||||
file3=C:\mysql\lib\debug\zlib.lib
|
||||
fulldirectory=
|
||||
|
||||
[bench\output]
|
||||
fulldirectory=
|
||||
|
||||
[examples\libmysqltest]
|
||||
file0=C:\mysql\examples\libmysqltest\myTest.c
|
||||
file1=C:\mysql\examples\libmysqltest\myTest.dsp
|
||||
file2=C:\mysql\examples\libmysqltest\myTest.dsw
|
||||
file3=C:\mysql\examples\libmysqltest\myTest.exe
|
||||
file4=C:\mysql\examples\libmysqltest\myTest.mak
|
||||
file5=C:\mysql\examples\libmysqltest\myTest.ncb
|
||||
file6=C:\mysql\examples\libmysqltest\myTest.opt
|
||||
file7=C:\mysql\examples\libmysqltest\readme
|
||||
fulldirectory=
|
||||
|
||||
[include]
|
||||
file0=C:\mysql\include\raid.h
|
||||
file1=C:\mysql\include\errmsg.h
|
||||
file2=C:\mysql\include\Libmysql.def
|
||||
file3=C:\mysql\include\m_ctype.h
|
||||
file4=C:\mysql\include\m_string.h
|
||||
file5=C:\mysql\include\my_list.h
|
||||
file6=C:\mysql\include\my_pthread.h
|
||||
file7=C:\mysql\include\my_sys.h
|
||||
file8=C:\mysql\include\mysql.h
|
||||
file9=C:\mysql\include\mysql_com.h
|
||||
file10=C:\mysql\include\mysql_version.h
|
||||
fulldirectory=
|
||||
file11=C:\mysql\include\mysqld_error.h
|
||||
file12=C:\mysql\include\dbug.h
|
||||
file13=C:\mysql\include\my_global.h
|
||||
file14=C:\mysql\include\config-win.h
|
||||
|
||||
[examples]
|
||||
SubDir0=examples\libmysqltest
|
||||
SubDir1=examples\tests
|
||||
fulldirectory=
|
||||
|
||||
[lib\opt]
|
||||
file0=C:\mysql\lib\opt\libmySQL.dll
|
||||
file1=C:\mysql\lib\opt\libmySQL.lib
|
||||
file2=C:\mysql\lib\opt\mysqlclient.lib
|
||||
file3=C:\mysql\lib\opt\zlib.lib
|
||||
fulldirectory=
|
||||
|
||||
[bench\Data]
|
||||
SubDir0=bench\Data\ATIS
|
||||
SubDir1=bench\Data\Wisconsin
|
||||
fulldirectory=
|
||||
|
||||
[bench\limits]
|
||||
file15=C:\mysql\bench\limits\pg.comment
|
||||
file16=C:\mysql\bench\limits\solid.cfg
|
||||
file0=C:\mysql\bench\limits\access.cfg
|
||||
file17=C:\mysql\bench\limits\solid-nt4.cfg
|
||||
file1=C:\mysql\bench\limits\access.comment
|
||||
file18=C:\mysql\bench\limits\sybase.cfg
|
||||
file2=C:\mysql\bench\limits\Adabas.cfg
|
||||
file3=C:\mysql\bench\limits\Adabas.comment
|
||||
file4=C:\mysql\bench\limits\Db2.cfg
|
||||
file5=C:\mysql\bench\limits\empress.cfg
|
||||
file6=C:\mysql\bench\limits\empress.comment
|
||||
file7=C:\mysql\bench\limits\Informix.cfg
|
||||
file8=C:\mysql\bench\limits\Informix.comment
|
||||
file9=C:\mysql\bench\limits\msql.cfg
|
||||
file10=C:\mysql\bench\limits\ms-sql.cfg
|
||||
fulldirectory=
|
||||
file11=C:\mysql\bench\limits\Ms-sql65.cfg
|
||||
file12=C:\mysql\bench\limits\mysql.cfg
|
||||
file13=C:\mysql\bench\limits\oracle.cfg
|
||||
file14=C:\mysql\bench\limits\pg.cfg
|
||||
|
||||
[TopDir]
|
||||
SubDir0=bench
|
||||
SubDir1=examples
|
||||
SubDir2=include
|
||||
SubDir3=lib
|
||||
SubDir4=scripts
|
||||
|
||||
[bench]
|
||||
file15=C:\mysql\bench\test-create
|
||||
file16=C:\mysql\bench\test-insert
|
||||
file0=C:\mysql\bench\uname.bat
|
||||
file17=C:\mysql\bench\test-select
|
||||
file1=C:\mysql\bench\compare-results
|
||||
file18=C:\mysql\bench\test-wisconsin
|
||||
file2=C:\mysql\bench\copy-db
|
||||
file19=C:\mysql\bench\bench-init.pl
|
||||
file3=C:\mysql\bench\crash-me
|
||||
file4=C:\mysql\bench\example.bat
|
||||
file5=C:\mysql\bench\print-limit-table
|
||||
file6=C:\mysql\bench\pwd.bat
|
||||
file7=C:\mysql\bench\Readme
|
||||
SubDir0=bench\Data
|
||||
file8=C:\mysql\bench\run.bat
|
||||
SubDir1=bench\limits
|
||||
file9=C:\mysql\bench\run-all-tests
|
||||
SubDir2=bench\output
|
||||
file10=C:\mysql\bench\server-cfg
|
||||
fulldirectory=
|
||||
file11=C:\mysql\bench\test-alter-table
|
||||
file12=C:\mysql\bench\test-ATIS
|
||||
file13=C:\mysql\bench\test-big-tables
|
||||
file14=C:\mysql\bench\test-connect
|
||||
|
||||
[examples\tests]
|
||||
file15=C:\mysql\examples\tests\lock_test.res
|
||||
file16=C:\mysql\examples\tests\mail_to_db.pl
|
||||
file0=C:\mysql\examples\tests\unique_users.tst
|
||||
file17=C:\mysql\examples\tests\table_types.pl
|
||||
file1=C:\mysql\examples\tests\auto_increment.tst
|
||||
file18=C:\mysql\examples\tests\test_delayed_insert.pl
|
||||
file2=C:\mysql\examples\tests\big_record.pl
|
||||
file19=C:\mysql\examples\tests\udf_test
|
||||
file3=C:\mysql\examples\tests\big_record.res
|
||||
file4=C:\mysql\examples\tests\czech-sorting
|
||||
file5=C:\mysql\examples\tests\deadlock-script.pl
|
||||
file6=C:\mysql\examples\tests\export.pl
|
||||
file7=C:\mysql\examples\tests\fork_test.pl
|
||||
file8=C:\mysql\examples\tests\fork2_test.pl
|
||||
file9=C:\mysql\examples\tests\fork3_test.pl
|
||||
file20=C:\mysql\examples\tests\udf_test.res
|
||||
file21=C:\mysql\examples\tests\auto_increment.res
|
||||
file10=C:\mysql\examples\tests\function.res
|
||||
fulldirectory=
|
||||
file11=C:\mysql\examples\tests\function.tst
|
||||
file12=C:\mysql\examples\tests\grant.pl
|
||||
file13=C:\mysql\examples\tests\grant.res
|
||||
file14=C:\mysql\examples\tests\lock_test.pl
|
||||
|
||||
[bench\Data\ATIS]
|
||||
file26=C:\mysql\bench\Data\ATIS\stop1.txt
|
||||
file15=C:\mysql\bench\Data\ATIS\flight_class.txt
|
||||
file27=C:\mysql\bench\Data\ATIS\time_interval.txt
|
||||
file16=C:\mysql\bench\Data\ATIS\flight_day.txt
|
||||
file0=C:\mysql\bench\Data\ATIS\transport.txt
|
||||
file28=C:\mysql\bench\Data\ATIS\time_zone.txt
|
||||
file17=C:\mysql\bench\Data\ATIS\flight_fare.txt
|
||||
file1=C:\mysql\bench\Data\ATIS\airline.txt
|
||||
file29=C:\mysql\bench\Data\ATIS\aircraft.txt
|
||||
file18=C:\mysql\bench\Data\ATIS\food_service.txt
|
||||
file2=C:\mysql\bench\Data\ATIS\airport.txt
|
||||
file19=C:\mysql\bench\Data\ATIS\ground_service.txt
|
||||
file3=C:\mysql\bench\Data\ATIS\airport_service.txt
|
||||
file4=C:\mysql\bench\Data\ATIS\city.txt
|
||||
file5=C:\mysql\bench\Data\ATIS\class_of_service.txt
|
||||
file6=C:\mysql\bench\Data\ATIS\code_description.txt
|
||||
file7=C:\mysql\bench\Data\ATIS\compound_class.txt
|
||||
file8=C:\mysql\bench\Data\ATIS\connect_leg.txt
|
||||
file9=C:\mysql\bench\Data\ATIS\date_day.txt
|
||||
file20=C:\mysql\bench\Data\ATIS\month_name.txt
|
||||
file21=C:\mysql\bench\Data\ATIS\restrict_carrier.txt
|
||||
file10=C:\mysql\bench\Data\ATIS\day_name.txt
|
||||
fulldirectory=
|
||||
file22=C:\mysql\bench\Data\ATIS\restrict_class.txt
|
||||
file11=C:\mysql\bench\Data\ATIS\dual_carrier.txt
|
||||
file23=C:\mysql\bench\Data\ATIS\restriction.txt
|
||||
file12=C:\mysql\bench\Data\ATIS\fare.txt
|
||||
file24=C:\mysql\bench\Data\ATIS\state.txt
|
||||
file13=C:\mysql\bench\Data\ATIS\fconnection.txt
|
||||
file25=C:\mysql\bench\Data\ATIS\stop.txt
|
||||
file14=C:\mysql\bench\Data\ATIS\flight.txt
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
||||
[scripts]
|
||||
file0=C:\mysql\scripts\mysql_find_rows.pl
|
||||
file1=C:\mysql\scripts\mysql_setpermission.pl
|
||||
file2=C:\mysql\scripts\mysqlhotcopy.pl
|
||||
file3=C:\mysql\scripts\Readme
|
||||
fulldirectory=
|
||||
|
||||
[lib]
|
||||
file0=C:\mysql\lib\Readme
|
||||
SubDir0=lib\debug
|
||||
SubDir1=lib\opt
|
||||
fulldirectory=
|
||||
|
@ -0,0 +1,99 @@
|
||||
[Docs\Flags]
|
||||
file59=C:\mysql\Docs\Flags\romania.gif
|
||||
file48=C:\mysql\Docs\Flags\kroatia.eps
|
||||
file37=C:\mysql\Docs\Flags\iceland.gif
|
||||
file26=C:\mysql\Docs\Flags\france.eps
|
||||
file15=C:\mysql\Docs\Flags\china.gif
|
||||
file49=C:\mysql\Docs\Flags\kroatia.gif
|
||||
file38=C:\mysql\Docs\Flags\ireland.eps
|
||||
file27=C:\mysql\Docs\Flags\france.gif
|
||||
file16=C:\mysql\Docs\Flags\croatia.eps
|
||||
file0=C:\mysql\Docs\Flags\usa.gif
|
||||
file39=C:\mysql\Docs\Flags\ireland.gif
|
||||
file28=C:\mysql\Docs\Flags\germany.eps
|
||||
file17=C:\mysql\Docs\Flags\croatia.gif
|
||||
file1=C:\mysql\Docs\Flags\argentina.gif
|
||||
file29=C:\mysql\Docs\Flags\germany.gif
|
||||
file18=C:\mysql\Docs\Flags\czech-republic.eps
|
||||
file2=C:\mysql\Docs\Flags\australia.eps
|
||||
file19=C:\mysql\Docs\Flags\czech-republic.gif
|
||||
file3=C:\mysql\Docs\Flags\australia.gif
|
||||
file80=C:\mysql\Docs\Flags\usa.eps
|
||||
file4=C:\mysql\Docs\Flags\austria.eps
|
||||
file81=C:\mysql\Docs\Flags\argentina.eps
|
||||
file70=C:\mysql\Docs\Flags\spain.eps
|
||||
file5=C:\mysql\Docs\Flags\austria.gif
|
||||
file71=C:\mysql\Docs\Flags\spain.gif
|
||||
file60=C:\mysql\Docs\Flags\russia.eps
|
||||
file6=C:\mysql\Docs\Flags\brazil.eps
|
||||
file72=C:\mysql\Docs\Flags\sweden.eps
|
||||
file61=C:\mysql\Docs\Flags\russia.gif
|
||||
file50=C:\mysql\Docs\Flags\latvia.eps
|
||||
file7=C:\mysql\Docs\Flags\brazil.gif
|
||||
file73=C:\mysql\Docs\Flags\sweden.gif
|
||||
file62=C:\mysql\Docs\Flags\singapore.eps
|
||||
file51=C:\mysql\Docs\Flags\latvia.gif
|
||||
file40=C:\mysql\Docs\Flags\island.eps
|
||||
file8=C:\mysql\Docs\Flags\bulgaria.eps
|
||||
file74=C:\mysql\Docs\Flags\switzerland.eps
|
||||
file63=C:\mysql\Docs\Flags\singapore.gif
|
||||
file52=C:\mysql\Docs\Flags\netherlands.eps
|
||||
file41=C:\mysql\Docs\Flags\island.gif
|
||||
file30=C:\mysql\Docs\Flags\great-britain.eps
|
||||
file9=C:\mysql\Docs\Flags\bulgaria.gif
|
||||
file75=C:\mysql\Docs\Flags\switzerland.gif
|
||||
file64=C:\mysql\Docs\Flags\south-africa.eps
|
||||
file53=C:\mysql\Docs\Flags\netherlands.gif
|
||||
file42=C:\mysql\Docs\Flags\israel.eps
|
||||
file31=C:\mysql\Docs\Flags\great-britain.gif
|
||||
file20=C:\mysql\Docs\Flags\denmark.eps
|
||||
file76=C:\mysql\Docs\Flags\taiwan.eps
|
||||
file65=C:\mysql\Docs\Flags\south-africa.gif
|
||||
file54=C:\mysql\Docs\Flags\poland.eps
|
||||
file43=C:\mysql\Docs\Flags\israel.gif
|
||||
file32=C:\mysql\Docs\Flags\greece.eps
|
||||
file21=C:\mysql\Docs\Flags\denmark.gif
|
||||
file10=C:\mysql\Docs\Flags\canada.eps
|
||||
fulldirectory=
|
||||
file77=C:\mysql\Docs\Flags\taiwan.gif
|
||||
file66=C:\mysql\Docs\Flags\south-africa1.eps
|
||||
file55=C:\mysql\Docs\Flags\poland.gif
|
||||
file44=C:\mysql\Docs\Flags\italy.eps
|
||||
file33=C:\mysql\Docs\Flags\greece.gif
|
||||
file22=C:\mysql\Docs\Flags\estonia.eps
|
||||
file11=C:\mysql\Docs\Flags\canada.gif
|
||||
file78=C:\mysql\Docs\Flags\ukraine.eps
|
||||
file67=C:\mysql\Docs\Flags\south-africa1.gif
|
||||
file56=C:\mysql\Docs\Flags\portugal.eps
|
||||
file45=C:\mysql\Docs\Flags\italy.gif
|
||||
file34=C:\mysql\Docs\Flags\hungary.eps
|
||||
file23=C:\mysql\Docs\Flags\estonia.gif
|
||||
file12=C:\mysql\Docs\Flags\chile.eps
|
||||
file79=C:\mysql\Docs\Flags\ukraine.gif
|
||||
file68=C:\mysql\Docs\Flags\south-korea.eps
|
||||
file57=C:\mysql\Docs\Flags\portugal.gif
|
||||
file46=C:\mysql\Docs\Flags\japan.eps
|
||||
file35=C:\mysql\Docs\Flags\hungary.gif
|
||||
file24=C:\mysql\Docs\Flags\finland.eps
|
||||
file13=C:\mysql\Docs\Flags\chile.gif
|
||||
file69=C:\mysql\Docs\Flags\south-korea.gif
|
||||
file58=C:\mysql\Docs\Flags\romania.eps
|
||||
file47=C:\mysql\Docs\Flags\japan.gif
|
||||
file36=C:\mysql\Docs\Flags\iceland.eps
|
||||
file25=C:\mysql\Docs\Flags\finland.gif
|
||||
file14=C:\mysql\Docs\Flags\china.eps
|
||||
|
||||
[Docs]
|
||||
file0=C:\mysql\Docs\manual_toc.html
|
||||
file1=C:\mysql\Docs\manual.html
|
||||
file2=C:\mysql\Docs\manual.txt
|
||||
SubDir0=Docs\Flags
|
||||
fulldirectory=
|
||||
|
||||
[TopDir]
|
||||
SubDir0=Docs
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,36 @@
|
||||
[data\test]
|
||||
fulldirectory=
|
||||
|
||||
[data\mysql]
|
||||
file15=C:\mysql\data\mysql\func.frm
|
||||
file16=C:\mysql\data\mysql\func.MYD
|
||||
file0=C:\mysql\data\mysql\columns_priv.frm
|
||||
file17=C:\mysql\data\mysql\func.MYI
|
||||
file1=C:\mysql\data\mysql\columns_priv.MYD
|
||||
file2=C:\mysql\data\mysql\columns_priv.MYI
|
||||
file3=C:\mysql\data\mysql\db.frm
|
||||
file4=C:\mysql\data\mysql\db.MYD
|
||||
file5=C:\mysql\data\mysql\db.MYI
|
||||
file6=C:\mysql\data\mysql\host.frm
|
||||
file7=C:\mysql\data\mysql\host.MYD
|
||||
file8=C:\mysql\data\mysql\host.MYI
|
||||
file9=C:\mysql\data\mysql\tables_priv.frm
|
||||
file10=C:\mysql\data\mysql\tables_priv.MYD
|
||||
fulldirectory=
|
||||
file11=C:\mysql\data\mysql\tables_priv.MYI
|
||||
file12=C:\mysql\data\mysql\user.frm
|
||||
file13=C:\mysql\data\mysql\user.MYD
|
||||
file14=C:\mysql\data\mysql\user.MYI
|
||||
|
||||
[TopDir]
|
||||
SubDir0=data
|
||||
|
||||
[data]
|
||||
SubDir0=data\mysql
|
||||
SubDir1=data\test
|
||||
fulldirectory=
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
184
VC++Files/InstallShield/3.23.XX-gpl/File Groups/Servers.fgl
Normal file
184
VC++Files/InstallShield/3.23.XX-gpl/File Groups/Servers.fgl
Normal file
@ -0,0 +1,184 @@
|
||||
[share\polish]
|
||||
file0=C:\mysql\share\polish\errmsg.sys
|
||||
file1=C:\mysql\share\polish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\dutch]
|
||||
file0=C:\mysql\share\dutch\errmsg.sys
|
||||
file1=C:\mysql\share\dutch\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\spanish]
|
||||
file0=C:\mysql\share\spanish\errmsg.sys
|
||||
file1=C:\mysql\share\spanish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\english]
|
||||
file0=C:\mysql\share\english\errmsg.sys
|
||||
file1=C:\mysql\share\english\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[bin]
|
||||
file0=C:\mysql\bin\mysqld-opt.exe
|
||||
file1=C:\mysql\bin\mysqld-max.exe
|
||||
file2=C:\mysql\bin\mysqld-max-nt.exe
|
||||
file3=C:\mysql\bin\mysqld-nt.exe
|
||||
file4=C:\mysql\bin\mysqld.exe
|
||||
fulldirectory=
|
||||
|
||||
[share\korean]
|
||||
file0=C:\mysql\share\korean\errmsg.sys
|
||||
file1=C:\mysql\share\korean\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\charsets]
|
||||
file15=C:\mysql\share\charsets\latin1.conf
|
||||
file16=C:\mysql\share\charsets\latin2.conf
|
||||
file0=C:\mysql\share\charsets\win1251ukr.conf
|
||||
file17=C:\mysql\share\charsets\latin5.conf
|
||||
file1=C:\mysql\share\charsets\cp1257.conf
|
||||
file18=C:\mysql\share\charsets\Readme
|
||||
file2=C:\mysql\share\charsets\croat.conf
|
||||
file19=C:\mysql\share\charsets\swe7.conf
|
||||
file3=C:\mysql\share\charsets\danish.conf
|
||||
file4=C:\mysql\share\charsets\dec8.conf
|
||||
file5=C:\mysql\share\charsets\dos.conf
|
||||
file6=C:\mysql\share\charsets\estonia.conf
|
||||
file7=C:\mysql\share\charsets\german1.conf
|
||||
file8=C:\mysql\share\charsets\greek.conf
|
||||
file9=C:\mysql\share\charsets\hebrew.conf
|
||||
file20=C:\mysql\share\charsets\usa7.conf
|
||||
file21=C:\mysql\share\charsets\win1250.conf
|
||||
file10=C:\mysql\share\charsets\hp8.conf
|
||||
fulldirectory=
|
||||
file22=C:\mysql\share\charsets\win1251.conf
|
||||
file11=C:\mysql\share\charsets\hungarian.conf
|
||||
file23=C:\mysql\share\charsets\cp1251.conf
|
||||
file12=C:\mysql\share\charsets\Index
|
||||
file13=C:\mysql\share\charsets\koi8_ru.conf
|
||||
file14=C:\mysql\share\charsets\koi8_ukr.conf
|
||||
|
||||
[share\ukrainian]
|
||||
file0=C:\mysql\share\ukrainian\errmsg.sys
|
||||
file1=C:\mysql\share\ukrainian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\hungarian]
|
||||
file0=C:\mysql\share\hungarian\errmsg.sys
|
||||
file1=C:\mysql\share\hungarian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\german]
|
||||
file0=C:\mysql\share\german\errmsg.sys
|
||||
file1=C:\mysql\share\german\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\portuguese]
|
||||
file0=C:\mysql\share\portuguese\errmsg.sys
|
||||
file1=C:\mysql\share\portuguese\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\estonian]
|
||||
file0=C:\mysql\share\estonian\errmsg.sys
|
||||
file1=C:\mysql\share\estonian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\romanian]
|
||||
file0=C:\mysql\share\romanian\errmsg.sys
|
||||
file1=C:\mysql\share\romanian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\french]
|
||||
file0=C:\mysql\share\french\errmsg.sys
|
||||
file1=C:\mysql\share\french\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\swedish]
|
||||
file0=C:\mysql\share\swedish\errmsg.sys
|
||||
file1=C:\mysql\share\swedish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\slovak]
|
||||
file0=C:\mysql\share\slovak\errmsg.sys
|
||||
file1=C:\mysql\share\slovak\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\greek]
|
||||
file0=C:\mysql\share\greek\errmsg.sys
|
||||
file1=C:\mysql\share\greek\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[TopDir]
|
||||
file0=C:\mysql\mysqlbug.txt
|
||||
file1=C:\mysql\my-small.cnf
|
||||
file2=C:\mysql\my-large.cnf
|
||||
file3=C:\mysql\my-medium.cnf
|
||||
file4=C:\mysql\my-huge.cnf
|
||||
SubDir0=bin
|
||||
SubDir1=share
|
||||
|
||||
[share]
|
||||
SubDir8=share\hungarian
|
||||
SubDir9=share\charsets
|
||||
SubDir20=share\spanish
|
||||
SubDir21=share\swedish
|
||||
SubDir10=share\italian
|
||||
SubDir22=share\ukrainian
|
||||
SubDir11=share\japanese
|
||||
SubDir12=share\korean
|
||||
SubDir13=share\norwegian
|
||||
SubDir14=share\norwegian-ny
|
||||
SubDir15=share\polish
|
||||
SubDir16=share\portuguese
|
||||
SubDir0=share\czech
|
||||
SubDir17=share\romanian
|
||||
SubDir1=share\danish
|
||||
SubDir18=share\russian
|
||||
SubDir2=share\dutch
|
||||
SubDir19=share\slovak
|
||||
SubDir3=share\english
|
||||
fulldirectory=
|
||||
SubDir4=share\estonian
|
||||
SubDir5=share\french
|
||||
SubDir6=share\german
|
||||
SubDir7=share\greek
|
||||
|
||||
[share\norwegian-ny]
|
||||
file0=C:\mysql\share\norwegian-ny\errmsg.sys
|
||||
file1=C:\mysql\share\norwegian-ny\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\danish]
|
||||
file0=C:\mysql\share\danish\errmsg.sys
|
||||
file1=C:\mysql\share\danish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\czech]
|
||||
file0=C:\mysql\share\czech\errmsg.sys
|
||||
file1=C:\mysql\share\czech\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
||||
[share\russian]
|
||||
file0=C:\mysql\share\russian\errmsg.sys
|
||||
file1=C:\mysql\share\russian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\norwegian]
|
||||
file0=C:\mysql\share\norwegian\errmsg.sys
|
||||
file1=C:\mysql\share\norwegian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\japanese]
|
||||
file0=C:\mysql\share\japanese\errmsg.sys
|
||||
file1=C:\mysql\share\japanese\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\italian]
|
||||
file0=C:\mysql\share\italian\errmsg.sys
|
||||
file1=C:\mysql\share\italian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
51
VC++Files/InstallShield/3.23.XX-gpl/MySQL 3.23.XX-GPL.ipr
Normal file
51
VC++Files/InstallShield/3.23.XX-gpl/MySQL 3.23.XX-GPL.ipr
Normal file
@ -0,0 +1,51 @@
|
||||
[Language]
|
||||
LanguageSupport0=0009
|
||||
|
||||
[OperatingSystem]
|
||||
OSSupport=0000000000010010
|
||||
|
||||
[Data]
|
||||
CurrentMedia=
|
||||
CurrentComponentDef=Default.cdf
|
||||
ProductName=MySQL Servers and Clients
|
||||
set_mifserial=
|
||||
DevEnvironment=Microsoft Visual C++ 6
|
||||
AppExe=
|
||||
set_dlldebug=No
|
||||
EmailAddresss=
|
||||
Instructions=Instructions.txt
|
||||
set_testmode=No
|
||||
set_mif=No
|
||||
SummaryText=
|
||||
Department=
|
||||
HomeURL=
|
||||
Author=
|
||||
Type=Database Application
|
||||
InstallRoot=C:\MySQL-Install\3.23.XX-gpl
|
||||
Version=1.00.000
|
||||
InstallationGUID=40744a4d-efed-4cff-84a9-9e6389550f5c
|
||||
set_level=Level 3
|
||||
CurrentFileGroupDef=Default.fdf
|
||||
Notes=Notes.txt
|
||||
set_maxerr=50
|
||||
set_args=
|
||||
set_miffile=Status.mif
|
||||
set_dllcmdline=
|
||||
Copyright=
|
||||
set_warnaserr=No
|
||||
CurrentPlatform=
|
||||
Category=
|
||||
set_preproc=
|
||||
CurrentLanguage=English
|
||||
CompanyName=MySQL
|
||||
Description=Description.txt
|
||||
set_maxwarn=50
|
||||
set_crc=Yes
|
||||
set_compileb4build=No
|
||||
|
||||
[MediaInfo]
|
||||
|
||||
[General]
|
||||
Type=INSTALLMAIN
|
||||
Version=1.10.000
|
||||
|
@ -0,0 +1,4 @@
|
||||
[General]
|
||||
Type=REGISTRYDATA
|
||||
Version=1.00.000
|
||||
|
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.dbg
Normal file
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.dbg
Normal file
Binary file not shown.
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.ino
Normal file
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.ino
Normal file
Binary file not shown.
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.ins
Normal file
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.ins
Normal file
Binary file not shown.
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.obs
Normal file
BIN
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.obs
Normal file
Binary file not shown.
641
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.rul
Normal file
641
VC++Files/InstallShield/3.23.XX-gpl/Script Files/Setup.rul
Normal file
@ -0,0 +1,641 @@
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IIIIIII SSSSSS
|
||||
// II SS InstallShield (R)
|
||||
// II SSSSSS (c) 1996-1997, InstallShield Software Corporation
|
||||
// II SS (c) 1990-1996, InstallShield Corporation
|
||||
// IIIIIII SSSSSS All Rights Reserved.
|
||||
//
|
||||
//
|
||||
// This code is generated as a starting setup template. You should
|
||||
// modify it to provide all necessary steps for your setup.
|
||||
//
|
||||
//
|
||||
// File Name: Setup.rul
|
||||
//
|
||||
// Description: InstallShield script
|
||||
//
|
||||
// Comments: This template script performs a basic setup on a
|
||||
// Windows 95 or Windows NT 4.0 platform. With minor
|
||||
// modifications, this template can be adapted to create
|
||||
// new, customized setups.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// Include header file
|
||||
#include "sdlang.h"
|
||||
#include "sddialog.h"
|
||||
|
||||
////////////////////// string defines ////////////////////////////
|
||||
|
||||
#define UNINST_LOGFILE_NAME "Uninst.isu"
|
||||
|
||||
//////////////////// installation declarations ///////////////////
|
||||
|
||||
// ----- DLL prototypes -----
|
||||
|
||||
|
||||
// your DLL prototypes
|
||||
|
||||
|
||||
// ---- script prototypes -----
|
||||
|
||||
// generated
|
||||
prototype ShowDialogs();
|
||||
prototype MoveFileData();
|
||||
prototype HandleMoveDataError( NUMBER );
|
||||
prototype ProcessBeforeDataMove();
|
||||
prototype ProcessAfterDataMove();
|
||||
prototype SetupRegistry();
|
||||
prototype SetupFolders();
|
||||
prototype CleanUpInstall();
|
||||
prototype SetupInstall();
|
||||
prototype SetupScreen();
|
||||
prototype CheckRequirements();
|
||||
prototype DialogShowSdWelcome();
|
||||
prototype DialogShowSdShowInfoList();
|
||||
prototype DialogShowSdAskDestPath();
|
||||
prototype DialogShowSdSetupType();
|
||||
prototype DialogShowSdComponentDialog2();
|
||||
prototype DialogShowSdFinishReboot();
|
||||
|
||||
// your prototypes
|
||||
|
||||
|
||||
// ----- global variables ------
|
||||
|
||||
// generated
|
||||
BOOL bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup;
|
||||
STRING svDir;
|
||||
STRING svName, svCompany, svSerial;
|
||||
STRING szAppPath;
|
||||
STRING svSetupType;
|
||||
|
||||
|
||||
// your global variables
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// MAIN PROGRAM
|
||||
//
|
||||
// The setup begins here by hiding the visible setup
|
||||
// window. This is done to allow all the titles, images, etc. to
|
||||
// be established before showing the main window. The following
|
||||
// logic then performs the setup in a series of steps.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
program
|
||||
Disable( BACKGROUND );
|
||||
|
||||
CheckRequirements();
|
||||
|
||||
SetupInstall();
|
||||
|
||||
SetupScreen();
|
||||
|
||||
if (ShowDialogs()<0) goto end_install;
|
||||
|
||||
if (ProcessBeforeDataMove()<0) goto end_install;
|
||||
|
||||
if (MoveFileData()<0) goto end_install;
|
||||
|
||||
if (ProcessAfterDataMove()<0) goto end_install;
|
||||
|
||||
if (SetupRegistry()<0) goto end_install;
|
||||
|
||||
if (SetupFolders()<0) goto end_install;
|
||||
|
||||
|
||||
end_install:
|
||||
|
||||
CleanUpInstall();
|
||||
|
||||
// If an unrecoverable error occurred, clean up the partial installation.
|
||||
// Otherwise, exit normally.
|
||||
|
||||
if (bInstallAborted) then
|
||||
abort;
|
||||
endif;
|
||||
|
||||
endprogram
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: ShowDialogs //
|
||||
// //
|
||||
// Purpose: This function manages the display and navigation //
|
||||
// the standard dialogs that exist in a setup. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function ShowDialogs()
|
||||
NUMBER nResult;
|
||||
begin
|
||||
|
||||
Dlg_Start:
|
||||
// beginning of dialogs label
|
||||
|
||||
Dlg_SdWelcome:
|
||||
nResult = DialogShowSdWelcome();
|
||||
if (nResult = BACK) goto Dlg_Start;
|
||||
|
||||
Dlg_SdShowInfoList:
|
||||
nResult = DialogShowSdShowInfoList();
|
||||
if (nResult = BACK) goto Dlg_SdWelcome;
|
||||
|
||||
Dlg_SdAskDestPath:
|
||||
nResult = DialogShowSdAskDestPath();
|
||||
if (nResult = BACK) goto Dlg_SdShowInfoList;
|
||||
|
||||
Dlg_SdSetupType:
|
||||
nResult = DialogShowSdSetupType();
|
||||
if (nResult = BACK) goto Dlg_SdAskDestPath;
|
||||
|
||||
Dlg_SdComponentDialog2:
|
||||
if ((nResult = BACK) && (svSetupType != "Custom") && (svSetupType != "")) then
|
||||
goto Dlg_SdSetupType;
|
||||
endif;
|
||||
nResult = DialogShowSdComponentDialog2();
|
||||
if (nResult = BACK) goto Dlg_SdSetupType;
|
||||
|
||||
return 0;
|
||||
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: ProcessBeforeDataMove //
|
||||
// //
|
||||
// Purpose: This function performs any necessary operations prior to the //
|
||||
// actual data move operation. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function ProcessBeforeDataMove()
|
||||
STRING svLogFile;
|
||||
NUMBER nResult;
|
||||
begin
|
||||
|
||||
InstallationInfo( @COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY );
|
||||
|
||||
svLogFile = UNINST_LOGFILE_NAME;
|
||||
|
||||
nResult = DeinstallStart( svDir, svLogFile, @UNINST_KEY, 0 );
|
||||
if (nResult < 0) then
|
||||
MessageBox( @ERROR_UNINSTSETUP, WARNING );
|
||||
endif;
|
||||
|
||||
szAppPath = TARGETDIR; // TODO : if your application .exe is in a subdir of TARGETDIR then add subdir
|
||||
|
||||
if ((bIs32BitSetup) && (bIsShellExplorer)) then
|
||||
RegDBSetItem( REGDB_APPPATH, szAppPath );
|
||||
RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY );
|
||||
RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME );
|
||||
endif;
|
||||
|
||||
// TODO : update any items you want to process before moving the data
|
||||
//
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: MoveFileData //
|
||||
// //
|
||||
// Purpose: This function handles the data movement for //
|
||||
// the setup. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function MoveFileData()
|
||||
NUMBER nResult, nDisk;
|
||||
begin
|
||||
|
||||
nDisk = 1;
|
||||
SetStatusWindow( 0, "" );
|
||||
Disable( DIALOGCACHE );
|
||||
Enable( STATUS );
|
||||
StatusUpdate( ON, 100 );
|
||||
nResult = ComponentMoveData( MEDIA, nDisk, 0 );
|
||||
|
||||
HandleMoveDataError( nResult );
|
||||
|
||||
Disable( STATUS );
|
||||
|
||||
return nResult;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: HandleMoveDataError //
|
||||
// //
|
||||
// Purpose: This function handles the error (if any) during the move data //
|
||||
// operation. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function HandleMoveDataError( nResult )
|
||||
STRING szErrMsg, svComponent , svFileGroup , svFile;
|
||||
begin
|
||||
|
||||
svComponent = "";
|
||||
svFileGroup = "";
|
||||
svFile = "";
|
||||
|
||||
switch (nResult)
|
||||
case 0:
|
||||
return 0;
|
||||
default:
|
||||
ComponentError ( MEDIA , svComponent , svFileGroup , svFile , nResult );
|
||||
szErrMsg = @ERROR_MOVEDATA + "\n\n" +
|
||||
@ERROR_COMPONENT + " " + svComponent + "\n" +
|
||||
@ERROR_FILEGROUP + " " + svFileGroup + "\n" +
|
||||
@ERROR_FILE + " " + svFile;
|
||||
SprintfBox( SEVERE, @TITLE_CAPTIONBAR, szErrMsg, nResult );
|
||||
bInstallAborted = TRUE;
|
||||
return nResult;
|
||||
endswitch;
|
||||
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: ProcessAfterDataMove //
|
||||
// //
|
||||
// Purpose: This function performs any necessary operations needed after //
|
||||
// all data has been moved. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function ProcessAfterDataMove()
|
||||
begin
|
||||
|
||||
// TODO : update self-registered files and other processes that
|
||||
// should be performed after the data has been moved.
|
||||
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: SetupRegistry //
|
||||
// //
|
||||
// Purpose: This function makes the registry entries for this setup. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupRegistry()
|
||||
NUMBER nResult;
|
||||
|
||||
begin
|
||||
|
||||
// TODO : Add all your registry entry keys here
|
||||
//
|
||||
//
|
||||
// RegDBCreateKeyEx, RegDBSetKeyValueEx....
|
||||
//
|
||||
|
||||
nResult = CreateRegistrySet( "" );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Function: SetupFolders
|
||||
//
|
||||
// Purpose: This function creates all the folders and shortcuts for the
|
||||
// setup. This includes program groups and items for Windows 3.1.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupFolders()
|
||||
NUMBER nResult;
|
||||
|
||||
begin
|
||||
|
||||
|
||||
// TODO : Add all your folder (program group) along with shortcuts (program items)
|
||||
//
|
||||
//
|
||||
// CreateProgramFolder, AddFolderIcon....
|
||||
//
|
||||
|
||||
nResult = CreateShellObjects( "" );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: CleanUpInstall //
|
||||
// //
|
||||
// Purpose: This cleans up the setup. Anything that should //
|
||||
// be released or deleted at the end of the setup should //
|
||||
// be done here. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function CleanUpInstall()
|
||||
begin
|
||||
|
||||
|
||||
if (bInstallAborted) then
|
||||
return 0;
|
||||
endif;
|
||||
|
||||
DialogShowSdFinishReboot();
|
||||
|
||||
if (BATCH_INSTALL) then // ensure locked files are properly written
|
||||
CommitSharedFiles(0);
|
||||
endif;
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: SetupInstall //
|
||||
// //
|
||||
// Purpose: This will setup the installation. Any general initialization //
|
||||
// needed for the installation should be performed here. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupInstall()
|
||||
begin
|
||||
|
||||
Enable( CORECOMPONENTHANDLING );
|
||||
|
||||
bInstallAborted = FALSE;
|
||||
|
||||
if (bIs32BitSetup) then
|
||||
svDir = "C:\\mysql"; //PROGRAMFILES ^ @COMPANY_NAME ^ @PRODUCT_NAME;
|
||||
else
|
||||
svDir = "C:\\mysql"; //PROGRAMFILES ^ @COMPANY_NAME16 ^ @PRODUCT_NAME16; // use shorten names
|
||||
endif;
|
||||
|
||||
TARGETDIR = svDir;
|
||||
|
||||
SdProductName( @PRODUCT_NAME );
|
||||
|
||||
Enable( DIALOGCACHE );
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: SetupScreen //
|
||||
// //
|
||||
// Purpose: This function establishes the screen look. This includes //
|
||||
// colors, fonts, and text to be displayed. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupScreen()
|
||||
begin
|
||||
|
||||
Enable( FULLWINDOWMODE );
|
||||
Enable( INDVFILESTATUS );
|
||||
SetTitle( @TITLE_MAIN, 24, WHITE );
|
||||
|
||||
SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
|
||||
|
||||
Enable( BACKGROUND );
|
||||
|
||||
Delay( 1 );
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: CheckRequirements //
|
||||
// //
|
||||
// Purpose: This function checks all minimum requirements for the //
|
||||
// application being installed. If any fail, then the user //
|
||||
// is informed and the setup is terminated. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function CheckRequirements()
|
||||
NUMBER nvDx, nvDy, nvResult;
|
||||
STRING svResult;
|
||||
|
||||
begin
|
||||
|
||||
bWinNT = FALSE;
|
||||
bIsShellExplorer = FALSE;
|
||||
|
||||
// Check screen resolution.
|
||||
GetExtents( nvDx, nvDy );
|
||||
|
||||
if (nvDy < 480) then
|
||||
MessageBox( @ERROR_VGARESOLUTION, WARNING );
|
||||
abort;
|
||||
endif;
|
||||
|
||||
// set 'setup' operation mode
|
||||
bIs32BitSetup = TRUE;
|
||||
GetSystemInfo( ISTYPE, nvResult, svResult );
|
||||
if (nvResult = 16) then
|
||||
bIs32BitSetup = FALSE; // running 16-bit setup
|
||||
return 0; // no additional information required
|
||||
endif;
|
||||
|
||||
// --- 32-bit testing after this point ---
|
||||
|
||||
// Determine the target system's operating system.
|
||||
GetSystemInfo( OS, nvResult, svResult );
|
||||
|
||||
if (nvResult = IS_WINDOWSNT) then
|
||||
// Running Windows NT.
|
||||
bWinNT = TRUE;
|
||||
|
||||
// Check to see if the shell being used is EXPLORER shell.
|
||||
if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
|
||||
if (nvResult >= 4) then
|
||||
bIsShellExplorer = TRUE;
|
||||
endif;
|
||||
endif;
|
||||
|
||||
elseif (nvResult = IS_WINDOWS95 ) then
|
||||
bIsShellExplorer = TRUE;
|
||||
|
||||
endif;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdWelcome //
|
||||
// //
|
||||
// Purpose: This function handles the standard welcome dialog. //
|
||||
// //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdWelcome()
|
||||
NUMBER nResult;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SdWelcome( szTitle, szMsg );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdShowInfoList //
|
||||
// //
|
||||
// Purpose: This function displays the general information list dialog. //
|
||||
// //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdShowInfoList()
|
||||
NUMBER nResult;
|
||||
LIST list;
|
||||
STRING szTitle, szMsg, szFile;
|
||||
begin
|
||||
|
||||
szFile = SUPPORTDIR ^ "infolist.txt";
|
||||
|
||||
list = ListCreate( STRINGLIST );
|
||||
ListReadFromFile( list, szFile );
|
||||
szTitle = "";
|
||||
szMsg = " ";
|
||||
nResult = SdShowInfoList( szTitle, szMsg, list );
|
||||
|
||||
ListDestroy( list );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdAskDestPath //
|
||||
// //
|
||||
// Purpose: This function asks the user for the destination directory. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdAskDestPath()
|
||||
NUMBER nResult;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 );
|
||||
|
||||
TARGETDIR = svDir;
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdSetupType //
|
||||
// //
|
||||
// Purpose: This function displays the standard setup type dialog. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdSetupType()
|
||||
NUMBER nResult, nType;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
switch (svSetupType)
|
||||
case "Typical":
|
||||
nType = TYPICAL;
|
||||
case "Custom":
|
||||
nType = CUSTOM;
|
||||
case "Compact":
|
||||
nType = COMPACT;
|
||||
case "":
|
||||
svSetupType = "Typical";
|
||||
nType = TYPICAL;
|
||||
endswitch;
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SetupType( szTitle, szMsg, "", nType, 0 );
|
||||
|
||||
switch (nResult)
|
||||
case COMPACT:
|
||||
svSetupType = "Compact";
|
||||
case TYPICAL:
|
||||
svSetupType = "Typical";
|
||||
case CUSTOM:
|
||||
svSetupType = "Custom";
|
||||
endswitch;
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdComponentDialog2 //
|
||||
// //
|
||||
// Purpose: This function displays the custom component dialog. //
|
||||
// //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdComponentDialog2()
|
||||
NUMBER nResult;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
if ((svSetupType != "Custom") && (svSetupType != "")) then
|
||||
return 0;
|
||||
endif;
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SdComponentDialog2( szTitle, szMsg, svDir, "" );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdFinishReboot //
|
||||
// //
|
||||
// Purpose: This function will show the last dialog of the product. //
|
||||
// It will allow the user to reboot and/or show some readme text. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdFinishReboot()
|
||||
NUMBER nResult, nDefOptions;
|
||||
STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
|
||||
NUMBER bOpt1, bOpt2;
|
||||
begin
|
||||
/*
|
||||
if (!BATCH_INSTALL) then
|
||||
bOpt1 = FALSE;
|
||||
bOpt2 = FALSE;
|
||||
szMsg1 = "";
|
||||
szMsg2 = "";
|
||||
szOption1 = "";
|
||||
szOption2 = "";
|
||||
nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );
|
||||
return 0;
|
||||
endif;
|
||||
|
||||
nDefOptions = SYS_BOOTMACHINE;
|
||||
szTitle = "";
|
||||
szMsg1 = "";
|
||||
szMsg2 = "";
|
||||
nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 );
|
||||
*/
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
// --- include script file section ---
|
||||
|
||||
#include "sddialog.rul"
|
||||
|
||||
|
||||
|
@ -0,0 +1,24 @@
|
||||
This is a release of MySQL 3.23.56 for Win32.
|
||||
|
||||
NOTE: If you install MySQL in a folder other than
|
||||
C:\MYSQL or you intend to start MySQL on NT/Win2000
|
||||
as a service, you must create a file named C:\MY.CNF
|
||||
or \Windows\my.ini or \winnt\my.ini with the following
|
||||
information::
|
||||
|
||||
[mysqld]
|
||||
basedir=E:/installation-path/
|
||||
datadir=E:/data-path/
|
||||
|
||||
After your have installed MySQL, the installation
|
||||
directory which contains the files named 'my-size.cnf'.
|
||||
You can use this as a starting point for your own
|
||||
C:\my.cnf file.
|
||||
|
||||
If you have any problems, you can mail them to
|
||||
win32@lists.mysql.com after you have consulted the
|
||||
MySQL manual and the MySQL mailing list archive
|
||||
(http://www.mysql.com/documentation/index.html)
|
||||
|
||||
On behalf of the MySQL AB gang,
|
||||
Michael Widenius
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,12 @@
|
||||
[Data]
|
||||
Folder3=<FOLDER_STARTUP>
|
||||
Group0=Main
|
||||
Group1=Startup
|
||||
Folder0=<FOLDER_DESKTOP>
|
||||
Folder1=<FOLDER_STARTMENU>
|
||||
Folder2=<FOLDER_PROGRAMS>
|
||||
|
||||
[Info]
|
||||
Type=ShellObject
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,23 @@
|
||||
[Data]
|
||||
TITLE_MAIN=MySQL Servers and Clients 3.23.56
|
||||
COMPANY_NAME=MySQL AB
|
||||
ERROR_COMPONENT=Component:
|
||||
COMPANY_NAME16=Company
|
||||
PRODUCT_VERSION=3.23.56
|
||||
ERROR_MOVEDATA=An error occurred during the move data process: %d
|
||||
ERROR_FILEGROUP=File Group:
|
||||
UNINST_KEY=MySQL Servers and Clients 3.23.56
|
||||
TITLE_CAPTIONBAR=MySQL Servers and Clients 3.23.56 Setup
|
||||
PRODUCT_NAME16=Product
|
||||
ERROR_VGARESOLUTION=This program requires VGA or better resolution.
|
||||
ERROR_FILE=File:
|
||||
UNINST_DISPLAY_NAME=MySQL Servers and Clients 3.23.56
|
||||
PRODUCT_KEY=yourapp.Exe
|
||||
PRODUCT_NAME=MySQL Servers and Clients 3.23.56
|
||||
ERROR_UNINSTSETUP=unInstaller setup failed to initialize. You may not be able to uninstall this product.
|
||||
|
||||
[General]
|
||||
Language=0009
|
||||
Type=STRINGTABLESPECIFIC
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,74 @@
|
||||
[TITLE_MAIN]
|
||||
Comment=
|
||||
|
||||
[COMPANY_NAME]
|
||||
Comment=
|
||||
|
||||
[ERROR_COMPONENT]
|
||||
Comment=
|
||||
|
||||
[COMPANY_NAME16]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_VERSION]
|
||||
Comment=
|
||||
|
||||
[ERROR_MOVEDATA]
|
||||
Comment=
|
||||
|
||||
[ERROR_FILEGROUP]
|
||||
Comment=
|
||||
|
||||
[Language]
|
||||
Lang0=0009
|
||||
CurrentLang=0
|
||||
|
||||
[UNINST_KEY]
|
||||
Comment=
|
||||
|
||||
[TITLE_CAPTIONBAR]
|
||||
Comment=
|
||||
|
||||
[Data]
|
||||
Entry0=ERROR_VGARESOLUTION
|
||||
Entry1=TITLE_MAIN
|
||||
Entry2=TITLE_CAPTIONBAR
|
||||
Entry3=UNINST_KEY
|
||||
Entry4=UNINST_DISPLAY_NAME
|
||||
Entry5=COMPANY_NAME
|
||||
Entry6=PRODUCT_NAME
|
||||
Entry7=PRODUCT_VERSION
|
||||
Entry8=PRODUCT_KEY
|
||||
Entry9=ERROR_MOVEDATA
|
||||
Entry10=ERROR_UNINSTSETUP
|
||||
Entry11=COMPANY_NAME16
|
||||
Entry12=PRODUCT_NAME16
|
||||
Entry13=ERROR_COMPONENT
|
||||
Entry14=ERROR_FILEGROUP
|
||||
Entry15=ERROR_FILE
|
||||
|
||||
[PRODUCT_NAME16]
|
||||
Comment=
|
||||
|
||||
[ERROR_VGARESOLUTION]
|
||||
Comment=
|
||||
|
||||
[ERROR_FILE]
|
||||
Comment=
|
||||
|
||||
[General]
|
||||
Type=STRINGTABLE
|
||||
Version=1.00.000
|
||||
|
||||
[UNINST_DISPLAY_NAME]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_KEY]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_NAME]
|
||||
Comment=
|
||||
|
||||
[ERROR_UNINSTSETUP]
|
||||
Comment=
|
||||
|
@ -0,0 +1,56 @@
|
||||
[<HKUS>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKCR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<WINSYSDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<COMMONFILES>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<WINDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[Data]
|
||||
Key0=<PROGRAMFILES>
|
||||
Key1=<COMMONFILES>
|
||||
Key2=<WINDIR>
|
||||
Key3=<WINSYSDIR>
|
||||
Key4=<HKLM>
|
||||
Key5=<HKCU>
|
||||
Key6=<HKCC>
|
||||
Key7=<HKDD>
|
||||
Key8=<HKUS>
|
||||
Key9=<HKCR>
|
||||
|
||||
[General]
|
||||
Type=TEXTSUB
|
||||
Version=1.00.000
|
||||
|
||||
[<HKLM>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKCU>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKCC>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKDD>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
@ -0,0 +1,76 @@
|
||||
[<SRCDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKUS>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKCR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<TARGETDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<WINSYSDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<COMMONFILES>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<WINDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[Data]
|
||||
Key0=<PROGRAMFILES>
|
||||
Key1=<COMMONFILES>
|
||||
Key2=<WINDIR>
|
||||
Key3=<WINSYSDIR>
|
||||
Key4=<TARGETDIR>
|
||||
Key5=<SUPPORTDIR>
|
||||
Key10=<HKDD>
|
||||
Key6=<SRCDIR>
|
||||
Key11=<HKUS>
|
||||
Key7=<HKLM>
|
||||
Key12=<HKCR>
|
||||
Key8=<HKCU>
|
||||
Key13=<SHELL_OBJECT_FOLDER>
|
||||
Key9=<HKCC>
|
||||
|
||||
[<SUPPORTDIR>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<SHELL_OBJECT_FOLDER>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[General]
|
||||
Type=TEXTSUB
|
||||
Version=1.00.000
|
||||
|
||||
[<HKLM>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKCU>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKCC>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
||||
[<HKDD>]
|
||||
Value=
|
||||
KeyType=4
|
||||
|
@ -0,0 +1,37 @@
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
||||
[topdir]
|
||||
subdir0=<WINDIR>
|
||||
subdir1=<PROGRAMFILES>
|
||||
subdir2=<TARGETDIR>
|
||||
subdir3=USERDEFINED
|
||||
|
||||
[<WINDIR>]
|
||||
DISPLAYTEXT=Windows Operating System
|
||||
TYPE=TEXTSUBFIXED
|
||||
subdir0=<WINDIR>\<WINSYSDIR>
|
||||
|
||||
[<WINDIR>\<WINSYSDIR>]
|
||||
DISPLAYTEXT=Windows System Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
DISPLAYTEXT=Program Files Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
subdir0=<PROGRAMFILES>\<COMMONFILES>
|
||||
|
||||
[<PROGRAMFILES>\<COMMONFILES>]
|
||||
DISPLAYTEXT=Common Files Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
|
||||
[<TARGETDIR>]
|
||||
DISPLAYTEXT=General Application Destination
|
||||
TYPE=TEXTSUBFIXED
|
||||
|
||||
[USERDEFINED]
|
||||
DISPLAYTEXT=Script-defined Folders
|
||||
TYPE=USERSTART
|
||||
|
||||
|
@ -0,0 +1,192 @@
|
||||
[Development]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=STANDARD
|
||||
required1=Grant Tables
|
||||
HTTPLOCATION=
|
||||
STATUS=Examples, Libraries, Includes and Script files
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=Examples, Libraries, Includes and Script files
|
||||
DISPLAYTEXT=Examples, Libraries, Includes and Script files
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Development
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
INSTALLATION=ALWAYSOVERWRITE
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[Grant Tables]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=CRITICAL
|
||||
HTTPLOCATION=
|
||||
STATUS=The Grant Tables and Core Files
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The Grant Tables and Core Files
|
||||
DISPLAYTEXT=The Grant Tables and Core Files
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Grant Tables
|
||||
requiredby0=Development
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
requiredby1=Clients and Tools
|
||||
INSTALLATION=NEVEROVERWRITE
|
||||
requiredby2=Documentation
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[Components]
|
||||
component0=Development
|
||||
component1=Grant Tables
|
||||
component2=Clients and Tools
|
||||
component3=Servers
|
||||
component4=Documentation
|
||||
|
||||
[TopComponents]
|
||||
component0=Servers
|
||||
component1=Clients and Tools
|
||||
component2=Documentation
|
||||
component3=Development
|
||||
component4=Grant Tables
|
||||
|
||||
[SetupType]
|
||||
setuptype0=Compact
|
||||
setuptype1=Typical
|
||||
setuptype2=Custom
|
||||
|
||||
[Servers]
|
||||
SELECTED=Yes
|
||||
FILENEED=CRITICAL
|
||||
HTTPLOCATION=
|
||||
STATUS=The MySQL Servers
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The MySQL Servers
|
||||
DISPLAYTEXT=The MySQL Servers
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Servers
|
||||
requiredby0=Development
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
requiredby1=Grant Tables
|
||||
INSTALLATION=ALWAYSOVERWRITE
|
||||
requiredby2=Clients and Tools
|
||||
requiredby3=Documentation
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[Clients and Tools]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=HIGHLYRECOMMENDED
|
||||
required1=Grant Tables
|
||||
HTTPLOCATION=
|
||||
STATUS=The MySQL clients and Maintenance Tools
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The MySQL clients and Maintenance Tools
|
||||
DISPLAYTEXT=The MySQL clients and Maintenance Tools
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Clients and Tools
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
INSTALLATION=NEWERDATE
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
||||
[SetupTypeItem-Compact]
|
||||
Comment=
|
||||
item0=Grant Tables
|
||||
item1=Clients and Tools
|
||||
item2=Servers
|
||||
item3=Documentation
|
||||
Descrip=
|
||||
DisplayText=
|
||||
|
||||
[SetupTypeItem-Custom]
|
||||
Comment=
|
||||
item0=Development
|
||||
item1=Grant Tables
|
||||
item2=Clients and Tools
|
||||
item3=Servers
|
||||
Descrip=
|
||||
item4=Documentation
|
||||
DisplayText=
|
||||
|
||||
[Info]
|
||||
Type=CompDef
|
||||
Version=1.00.000
|
||||
Name=
|
||||
|
||||
[SetupTypeItem-Typical]
|
||||
Comment=
|
||||
item0=Development
|
||||
item1=Grant Tables
|
||||
item2=Clients and Tools
|
||||
item3=Servers
|
||||
Descrip=
|
||||
item4=Documentation
|
||||
DisplayText=
|
||||
|
||||
[Documentation]
|
||||
required0=Servers
|
||||
SELECTED=Yes
|
||||
FILENEED=HIGHLYRECOMMENDED
|
||||
required1=Grant Tables
|
||||
HTTPLOCATION=
|
||||
STATUS=The MySQL Documentation with different formats
|
||||
UNINSTALLABLE=Yes
|
||||
TARGET=<TARGETDIR>
|
||||
FTPLOCATION=
|
||||
VISIBLE=Yes
|
||||
DESCRIPTION=The MySQL Documentation with different formats
|
||||
DISPLAYTEXT=The MySQL Documentation with different formats
|
||||
IMAGE=
|
||||
DEFSELECTION=Yes
|
||||
filegroup0=Documentation
|
||||
COMMENT=
|
||||
INCLUDEINBUILD=Yes
|
||||
INSTALLATION=ALWAYSOVERWRITE
|
||||
COMPRESSIFSEPARATE=No
|
||||
MISC=
|
||||
ENCRYPT=No
|
||||
DISK=ANYDISK
|
||||
TARGETDIRCDROM=
|
||||
PASSWORD=
|
||||
TARGETHIDDEN=General Application Destination
|
||||
|
@ -0,0 +1,42 @@
|
||||
[<PROGRAMFILES>\<COMMONFILES>]
|
||||
DISPLAYTEXT=Common Files Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[<WINDIR>\<WINSYSDIR>]
|
||||
DISPLAYTEXT=Windows System Folder
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[USERDEFINED]
|
||||
DISPLAYTEXT=Script-defined Folders
|
||||
TYPE=USERSTART
|
||||
fulldirectory=
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
DISPLAYTEXT=Program Files Folder
|
||||
SubDir0=<PROGRAMFILES>\<COMMONFILES>
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[<TARGETDIR>]
|
||||
DISPLAYTEXT=General Application Destination
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[<WINDIR>]
|
||||
DISPLAYTEXT=Windows Operating System
|
||||
SubDir0=<WINDIR>\<WINSYSDIR>
|
||||
TYPE=TEXTSUBFIXED
|
||||
fulldirectory=
|
||||
|
||||
[TopDir]
|
||||
SubDir0=<WINDIR>
|
||||
SubDir1=<PROGRAMFILES>
|
||||
SubDir2=<TARGETDIR>
|
||||
SubDir3=USERDEFINED
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,35 @@
|
||||
[bin]
|
||||
file15=C:\mysql\bin\pack_isam.exe
|
||||
file16=C:\mysql\bin\perror.exe
|
||||
file0=C:\mysql\bin\isamchk.exe
|
||||
file17=C:\mysql\bin\replace.exe
|
||||
file1=C:\mysql\bin\myisamchk.exe
|
||||
file18=C:\mysql\bin\winmysqladmin.cnt
|
||||
file2=C:\mysql\bin\myisamlog.exe
|
||||
file19=C:\mysql\bin\winmysqladmin.exe
|
||||
file3=C:\mysql\bin\myisampack.exe
|
||||
file4=C:\mysql\bin\mysql.exe
|
||||
file5=C:\mysql\bin\mysqladmin.exe
|
||||
file6=C:\mysql\bin\mysqlbinlog.exe
|
||||
file7=C:\mysql\bin\mysqlc.exe
|
||||
file8=C:\mysql\bin\mysqlcheck.exe
|
||||
file9=C:\mysql\bin\mysqldump.exe
|
||||
file20=C:\mysql\bin\WINMYSQLADMIN.HLP
|
||||
file21=C:\mysql\bin\cygwinb19.dll
|
||||
file10=C:\mysql\bin\mysqlimport.exe
|
||||
fulldirectory=
|
||||
file22=C:\mysql\bin\libmySQL.dll
|
||||
file11=C:\mysql\bin\MySqlManager.exe
|
||||
file23=C:\mysql\bin\my_print_defaults.exe
|
||||
file12=C:\mysql\bin\mysqlshow.exe
|
||||
file24=C:\mysql\bin\comp-err.exe
|
||||
file13=C:\mysql\bin\mysqlshutdown.exe
|
||||
file14=C:\mysql\bin\mysqlwatch.exe
|
||||
|
||||
[TopDir]
|
||||
SubDir0=bin
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
82
VC++Files/InstallShield/3.23.XXcom/File Groups/Default.fdf
Normal file
82
VC++Files/InstallShield/3.23.XXcom/File Groups/Default.fdf
Normal file
@ -0,0 +1,82 @@
|
||||
[FileGroups]
|
||||
group0=Development
|
||||
group1=Grant Tables
|
||||
group2=Clients and Tools
|
||||
group3=Servers
|
||||
group4=Documentation
|
||||
|
||||
[Development]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Grant Tables]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Servers]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Clients and Tools]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=0000000000000000
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
||||
[Info]
|
||||
Type=FileGrp
|
||||
Version=1.00.000
|
||||
Name=
|
||||
|
||||
[Documentation]
|
||||
SELFREGISTERING=No
|
||||
HTTPLOCATION=
|
||||
LANGUAGE=
|
||||
OPERATINGSYSTEM=
|
||||
FTPLOCATION=
|
||||
FILETYPE=No
|
||||
INFOTYPE=Standard
|
||||
COMMENT=
|
||||
COMPRESS=Yes
|
||||
COMPRESSDLL=
|
||||
POTENTIALLY=No
|
||||
MISC=
|
||||
|
@ -0,0 +1,4 @@
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
190
VC++Files/InstallShield/3.23.XXcom/File Groups/Development.fgl
Normal file
190
VC++Files/InstallShield/3.23.XXcom/File Groups/Development.fgl
Normal file
@ -0,0 +1,190 @@
|
||||
[bench\Data\Wisconsin]
|
||||
file0=C:\mysql\bench\Data\Wisconsin\onek.data
|
||||
file1=C:\mysql\bench\Data\Wisconsin\tenk.data
|
||||
fulldirectory=
|
||||
|
||||
[lib\debug]
|
||||
file0=C:\mysql\lib\debug\libmySQL.dll
|
||||
file1=C:\mysql\lib\debug\libmySQL.lib
|
||||
file2=C:\mysql\lib\debug\mysqlclient.lib
|
||||
file3=C:\mysql\lib\debug\zlib.lib
|
||||
fulldirectory=
|
||||
|
||||
[bench\output]
|
||||
fulldirectory=
|
||||
|
||||
[examples\libmysqltest]
|
||||
file0=C:\mysql\examples\libmysqltest\myTest.c
|
||||
file1=C:\mysql\examples\libmysqltest\myTest.dsp
|
||||
file2=C:\mysql\examples\libmysqltest\myTest.dsw
|
||||
file3=C:\mysql\examples\libmysqltest\myTest.exe
|
||||
file4=C:\mysql\examples\libmysqltest\myTest.mak
|
||||
file5=C:\mysql\examples\libmysqltest\myTest.ncb
|
||||
file6=C:\mysql\examples\libmysqltest\myTest.opt
|
||||
file7=C:\mysql\examples\libmysqltest\readme
|
||||
fulldirectory=
|
||||
|
||||
[include]
|
||||
file0=C:\mysql\include\raid.h
|
||||
file1=C:\mysql\include\errmsg.h
|
||||
file2=C:\mysql\include\Libmysql.def
|
||||
file3=C:\mysql\include\m_ctype.h
|
||||
file4=C:\mysql\include\m_string.h
|
||||
file5=C:\mysql\include\my_list.h
|
||||
file6=C:\mysql\include\my_pthread.h
|
||||
file7=C:\mysql\include\my_sys.h
|
||||
file8=C:\mysql\include\mysql.h
|
||||
file9=C:\mysql\include\mysql_com.h
|
||||
file10=C:\mysql\include\mysql_version.h
|
||||
fulldirectory=
|
||||
file11=C:\mysql\include\mysqld_error.h
|
||||
file12=C:\mysql\include\dbug.h
|
||||
file13=C:\mysql\include\my_global.h
|
||||
file14=C:\mysql\include\config-win.h
|
||||
|
||||
[examples]
|
||||
SubDir0=examples\libmysqltest
|
||||
SubDir1=examples\tests
|
||||
fulldirectory=
|
||||
|
||||
[lib\opt]
|
||||
file0=C:\mysql\lib\opt\libmySQL.dll
|
||||
file1=C:\mysql\lib\opt\libmySQL.lib
|
||||
file2=C:\mysql\lib\opt\mysqlclient.lib
|
||||
file3=C:\mysql\lib\opt\zlib.lib
|
||||
fulldirectory=
|
||||
|
||||
[bench\Data]
|
||||
SubDir0=bench\Data\ATIS
|
||||
SubDir1=bench\Data\Wisconsin
|
||||
fulldirectory=
|
||||
|
||||
[bench\limits]
|
||||
file15=C:\mysql\bench\limits\pg.comment
|
||||
file16=C:\mysql\bench\limits\solid.cfg
|
||||
file0=C:\mysql\bench\limits\access.cfg
|
||||
file17=C:\mysql\bench\limits\solid-nt4.cfg
|
||||
file1=C:\mysql\bench\limits\access.comment
|
||||
file18=C:\mysql\bench\limits\sybase.cfg
|
||||
file2=C:\mysql\bench\limits\Adabas.cfg
|
||||
file3=C:\mysql\bench\limits\Adabas.comment
|
||||
file4=C:\mysql\bench\limits\Db2.cfg
|
||||
file5=C:\mysql\bench\limits\empress.cfg
|
||||
file6=C:\mysql\bench\limits\empress.comment
|
||||
file7=C:\mysql\bench\limits\Informix.cfg
|
||||
file8=C:\mysql\bench\limits\Informix.comment
|
||||
file9=C:\mysql\bench\limits\msql.cfg
|
||||
file10=C:\mysql\bench\limits\ms-sql.cfg
|
||||
fulldirectory=
|
||||
file11=C:\mysql\bench\limits\Ms-sql65.cfg
|
||||
file12=C:\mysql\bench\limits\mysql.cfg
|
||||
file13=C:\mysql\bench\limits\oracle.cfg
|
||||
file14=C:\mysql\bench\limits\pg.cfg
|
||||
|
||||
[TopDir]
|
||||
SubDir0=bench
|
||||
SubDir1=examples
|
||||
SubDir2=include
|
||||
SubDir3=lib
|
||||
SubDir4=scripts
|
||||
|
||||
[bench]
|
||||
file15=C:\mysql\bench\test-create
|
||||
file16=C:\mysql\bench\test-insert
|
||||
file0=C:\mysql\bench\uname.bat
|
||||
file17=C:\mysql\bench\test-select
|
||||
file1=C:\mysql\bench\compare-results
|
||||
file18=C:\mysql\bench\test-wisconsin
|
||||
file2=C:\mysql\bench\copy-db
|
||||
file19=C:\mysql\bench\bench-init.pl
|
||||
file3=C:\mysql\bench\crash-me
|
||||
file4=C:\mysql\bench\example.bat
|
||||
file5=C:\mysql\bench\print-limit-table
|
||||
file6=C:\mysql\bench\pwd.bat
|
||||
file7=C:\mysql\bench\Readme
|
||||
SubDir0=bench\Data
|
||||
file8=C:\mysql\bench\run.bat
|
||||
SubDir1=bench\limits
|
||||
file9=C:\mysql\bench\run-all-tests
|
||||
SubDir2=bench\output
|
||||
file10=C:\mysql\bench\server-cfg
|
||||
fulldirectory=
|
||||
file11=C:\mysql\bench\test-alter-table
|
||||
file12=C:\mysql\bench\test-ATIS
|
||||
file13=C:\mysql\bench\test-big-tables
|
||||
file14=C:\mysql\bench\test-connect
|
||||
|
||||
[examples\tests]
|
||||
file15=C:\mysql\examples\tests\lock_test.res
|
||||
file16=C:\mysql\examples\tests\mail_to_db.pl
|
||||
file0=C:\mysql\examples\tests\unique_users.tst
|
||||
file17=C:\mysql\examples\tests\table_types.pl
|
||||
file1=C:\mysql\examples\tests\auto_increment.tst
|
||||
file18=C:\mysql\examples\tests\test_delayed_insert.pl
|
||||
file2=C:\mysql\examples\tests\big_record.pl
|
||||
file19=C:\mysql\examples\tests\udf_test
|
||||
file3=C:\mysql\examples\tests\big_record.res
|
||||
file4=C:\mysql\examples\tests\czech-sorting
|
||||
file5=C:\mysql\examples\tests\deadlock-script.pl
|
||||
file6=C:\mysql\examples\tests\export.pl
|
||||
file7=C:\mysql\examples\tests\fork_test.pl
|
||||
file8=C:\mysql\examples\tests\fork2_test.pl
|
||||
file9=C:\mysql\examples\tests\fork3_test.pl
|
||||
file20=C:\mysql\examples\tests\udf_test.res
|
||||
file21=C:\mysql\examples\tests\auto_increment.res
|
||||
file10=C:\mysql\examples\tests\function.res
|
||||
fulldirectory=
|
||||
file11=C:\mysql\examples\tests\function.tst
|
||||
file12=C:\mysql\examples\tests\grant.pl
|
||||
file13=C:\mysql\examples\tests\grant.res
|
||||
file14=C:\mysql\examples\tests\lock_test.pl
|
||||
|
||||
[bench\Data\ATIS]
|
||||
file26=C:\mysql\bench\Data\ATIS\stop1.txt
|
||||
file15=C:\mysql\bench\Data\ATIS\flight_class.txt
|
||||
file27=C:\mysql\bench\Data\ATIS\time_interval.txt
|
||||
file16=C:\mysql\bench\Data\ATIS\flight_day.txt
|
||||
file0=C:\mysql\bench\Data\ATIS\transport.txt
|
||||
file28=C:\mysql\bench\Data\ATIS\time_zone.txt
|
||||
file17=C:\mysql\bench\Data\ATIS\flight_fare.txt
|
||||
file1=C:\mysql\bench\Data\ATIS\airline.txt
|
||||
file29=C:\mysql\bench\Data\ATIS\aircraft.txt
|
||||
file18=C:\mysql\bench\Data\ATIS\food_service.txt
|
||||
file2=C:\mysql\bench\Data\ATIS\airport.txt
|
||||
file19=C:\mysql\bench\Data\ATIS\ground_service.txt
|
||||
file3=C:\mysql\bench\Data\ATIS\airport_service.txt
|
||||
file4=C:\mysql\bench\Data\ATIS\city.txt
|
||||
file5=C:\mysql\bench\Data\ATIS\class_of_service.txt
|
||||
file6=C:\mysql\bench\Data\ATIS\code_description.txt
|
||||
file7=C:\mysql\bench\Data\ATIS\compound_class.txt
|
||||
file8=C:\mysql\bench\Data\ATIS\connect_leg.txt
|
||||
file9=C:\mysql\bench\Data\ATIS\date_day.txt
|
||||
file20=C:\mysql\bench\Data\ATIS\month_name.txt
|
||||
file21=C:\mysql\bench\Data\ATIS\restrict_carrier.txt
|
||||
file10=C:\mysql\bench\Data\ATIS\day_name.txt
|
||||
fulldirectory=
|
||||
file22=C:\mysql\bench\Data\ATIS\restrict_class.txt
|
||||
file11=C:\mysql\bench\Data\ATIS\dual_carrier.txt
|
||||
file23=C:\mysql\bench\Data\ATIS\restriction.txt
|
||||
file12=C:\mysql\bench\Data\ATIS\fare.txt
|
||||
file24=C:\mysql\bench\Data\ATIS\state.txt
|
||||
file13=C:\mysql\bench\Data\ATIS\fconnection.txt
|
||||
file25=C:\mysql\bench\Data\ATIS\stop.txt
|
||||
file14=C:\mysql\bench\Data\ATIS\flight.txt
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
||||
[scripts]
|
||||
file0=C:\mysql\scripts\mysql_find_rows.pl
|
||||
file1=C:\mysql\scripts\mysql_setpermission.pl
|
||||
file2=C:\mysql\scripts\mysqlhotcopy.pl
|
||||
file3=C:\mysql\scripts\Readme
|
||||
fulldirectory=
|
||||
|
||||
[lib]
|
||||
SubDir0=lib\debug
|
||||
SubDir1=lib\opt
|
||||
fulldirectory=
|
||||
|
@ -0,0 +1,98 @@
|
||||
[Docs\Flags]
|
||||
file59=C:\mysql\Docs\Flags\romania.gif
|
||||
file48=C:\mysql\Docs\Flags\kroatia.eps
|
||||
file37=C:\mysql\Docs\Flags\iceland.gif
|
||||
file26=C:\mysql\Docs\Flags\france.eps
|
||||
file15=C:\mysql\Docs\Flags\china.gif
|
||||
file49=C:\mysql\Docs\Flags\kroatia.gif
|
||||
file38=C:\mysql\Docs\Flags\ireland.eps
|
||||
file27=C:\mysql\Docs\Flags\france.gif
|
||||
file16=C:\mysql\Docs\Flags\croatia.eps
|
||||
file0=C:\mysql\Docs\Flags\usa.gif
|
||||
file39=C:\mysql\Docs\Flags\ireland.gif
|
||||
file28=C:\mysql\Docs\Flags\germany.eps
|
||||
file17=C:\mysql\Docs\Flags\croatia.gif
|
||||
file1=C:\mysql\Docs\Flags\argentina.gif
|
||||
file29=C:\mysql\Docs\Flags\germany.gif
|
||||
file18=C:\mysql\Docs\Flags\czech-republic.eps
|
||||
file2=C:\mysql\Docs\Flags\australia.eps
|
||||
file19=C:\mysql\Docs\Flags\czech-republic.gif
|
||||
file3=C:\mysql\Docs\Flags\australia.gif
|
||||
file80=C:\mysql\Docs\Flags\usa.eps
|
||||
file4=C:\mysql\Docs\Flags\austria.eps
|
||||
file81=C:\mysql\Docs\Flags\argentina.eps
|
||||
file70=C:\mysql\Docs\Flags\spain.eps
|
||||
file5=C:\mysql\Docs\Flags\austria.gif
|
||||
file71=C:\mysql\Docs\Flags\spain.gif
|
||||
file60=C:\mysql\Docs\Flags\russia.eps
|
||||
file6=C:\mysql\Docs\Flags\brazil.eps
|
||||
file72=C:\mysql\Docs\Flags\sweden.eps
|
||||
file61=C:\mysql\Docs\Flags\russia.gif
|
||||
file50=C:\mysql\Docs\Flags\latvia.eps
|
||||
file7=C:\mysql\Docs\Flags\brazil.gif
|
||||
file73=C:\mysql\Docs\Flags\sweden.gif
|
||||
file62=C:\mysql\Docs\Flags\singapore.eps
|
||||
file51=C:\mysql\Docs\Flags\latvia.gif
|
||||
file40=C:\mysql\Docs\Flags\island.eps
|
||||
file8=C:\mysql\Docs\Flags\bulgaria.eps
|
||||
file74=C:\mysql\Docs\Flags\switzerland.eps
|
||||
file63=C:\mysql\Docs\Flags\singapore.gif
|
||||
file52=C:\mysql\Docs\Flags\netherlands.eps
|
||||
file41=C:\mysql\Docs\Flags\island.gif
|
||||
file30=C:\mysql\Docs\Flags\great-britain.eps
|
||||
file9=C:\mysql\Docs\Flags\bulgaria.gif
|
||||
file75=C:\mysql\Docs\Flags\switzerland.gif
|
||||
file64=C:\mysql\Docs\Flags\south-africa.eps
|
||||
file53=C:\mysql\Docs\Flags\netherlands.gif
|
||||
file42=C:\mysql\Docs\Flags\israel.eps
|
||||
file31=C:\mysql\Docs\Flags\great-britain.gif
|
||||
file20=C:\mysql\Docs\Flags\denmark.eps
|
||||
file76=C:\mysql\Docs\Flags\taiwan.eps
|
||||
file65=C:\mysql\Docs\Flags\south-africa.gif
|
||||
file54=C:\mysql\Docs\Flags\poland.eps
|
||||
file43=C:\mysql\Docs\Flags\israel.gif
|
||||
file32=C:\mysql\Docs\Flags\greece.eps
|
||||
file21=C:\mysql\Docs\Flags\denmark.gif
|
||||
file10=C:\mysql\Docs\Flags\canada.eps
|
||||
fulldirectory=
|
||||
file77=C:\mysql\Docs\Flags\taiwan.gif
|
||||
file66=C:\mysql\Docs\Flags\south-africa1.eps
|
||||
file55=C:\mysql\Docs\Flags\poland.gif
|
||||
file44=C:\mysql\Docs\Flags\italy.eps
|
||||
file33=C:\mysql\Docs\Flags\greece.gif
|
||||
file22=C:\mysql\Docs\Flags\estonia.eps
|
||||
file11=C:\mysql\Docs\Flags\canada.gif
|
||||
file78=C:\mysql\Docs\Flags\ukraine.eps
|
||||
file67=C:\mysql\Docs\Flags\south-africa1.gif
|
||||
file56=C:\mysql\Docs\Flags\portugal.eps
|
||||
file45=C:\mysql\Docs\Flags\italy.gif
|
||||
file34=C:\mysql\Docs\Flags\hungary.eps
|
||||
file23=C:\mysql\Docs\Flags\estonia.gif
|
||||
file12=C:\mysql\Docs\Flags\chile.eps
|
||||
file79=C:\mysql\Docs\Flags\ukraine.gif
|
||||
file68=C:\mysql\Docs\Flags\south-korea.eps
|
||||
file57=C:\mysql\Docs\Flags\portugal.gif
|
||||
file46=C:\mysql\Docs\Flags\japan.eps
|
||||
file35=C:\mysql\Docs\Flags\hungary.gif
|
||||
file24=C:\mysql\Docs\Flags\finland.eps
|
||||
file13=C:\mysql\Docs\Flags\chile.gif
|
||||
file69=C:\mysql\Docs\Flags\south-korea.gif
|
||||
file58=C:\mysql\Docs\Flags\romania.eps
|
||||
file47=C:\mysql\Docs\Flags\japan.gif
|
||||
file36=C:\mysql\Docs\Flags\iceland.eps
|
||||
file25=C:\mysql\Docs\Flags\finland.gif
|
||||
file14=C:\mysql\Docs\Flags\china.eps
|
||||
|
||||
[Docs]
|
||||
file0=C:\mysql\Docs\manual_toc.html
|
||||
file1=C:\mysql\Docs\manual.html
|
||||
SubDir0=Docs\Flags
|
||||
fulldirectory=
|
||||
|
||||
[TopDir]
|
||||
SubDir0=Docs
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,36 @@
|
||||
[data\test]
|
||||
fulldirectory=
|
||||
|
||||
[data\mysql]
|
||||
file15=C:\mysql\data\mysql\func.frm
|
||||
file16=C:\mysql\data\mysql\func.MYD
|
||||
file0=C:\mysql\data\mysql\columns_priv.frm
|
||||
file17=C:\mysql\data\mysql\func.MYI
|
||||
file1=C:\mysql\data\mysql\columns_priv.MYD
|
||||
file2=C:\mysql\data\mysql\columns_priv.MYI
|
||||
file3=C:\mysql\data\mysql\db.frm
|
||||
file4=C:\mysql\data\mysql\db.MYD
|
||||
file5=C:\mysql\data\mysql\db.MYI
|
||||
file6=C:\mysql\data\mysql\host.frm
|
||||
file7=C:\mysql\data\mysql\host.MYD
|
||||
file8=C:\mysql\data\mysql\host.MYI
|
||||
file9=C:\mysql\data\mysql\tables_priv.frm
|
||||
file10=C:\mysql\data\mysql\tables_priv.MYD
|
||||
fulldirectory=
|
||||
file11=C:\mysql\data\mysql\tables_priv.MYI
|
||||
file12=C:\mysql\data\mysql\user.frm
|
||||
file13=C:\mysql\data\mysql\user.MYD
|
||||
file14=C:\mysql\data\mysql\user.MYI
|
||||
|
||||
[TopDir]
|
||||
SubDir0=data
|
||||
|
||||
[data]
|
||||
SubDir0=data\mysql
|
||||
SubDir1=data\test
|
||||
fulldirectory=
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
183
VC++Files/InstallShield/3.23.XXcom/File Groups/Servers.fgl
Normal file
183
VC++Files/InstallShield/3.23.XXcom/File Groups/Servers.fgl
Normal file
@ -0,0 +1,183 @@
|
||||
[share\polish]
|
||||
file0=C:\mysql\share\polish\errmsg.sys
|
||||
file1=C:\mysql\share\polish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\dutch]
|
||||
file0=C:\mysql\share\dutch\errmsg.sys
|
||||
file1=C:\mysql\share\dutch\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\spanish]
|
||||
file0=C:\mysql\share\spanish\errmsg.sys
|
||||
file1=C:\mysql\share\spanish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\english]
|
||||
file0=C:\mysql\share\english\errmsg.sys
|
||||
file1=C:\mysql\share\english\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[bin]
|
||||
file0=C:\mysql\bin\mysqld-opt.exe
|
||||
file1=C:\mysql\bin\mysqld-max.exe
|
||||
file2=C:\mysql\bin\mysqld-max-nt.exe
|
||||
file3=C:\mysql\bin\mysqld-nt.exe
|
||||
file4=C:\mysql\bin\mysqld.exe
|
||||
fulldirectory=
|
||||
|
||||
[share\korean]
|
||||
file0=C:\mysql\share\korean\errmsg.sys
|
||||
file1=C:\mysql\share\korean\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\charsets]
|
||||
file15=C:\mysql\share\charsets\latin1.conf
|
||||
file16=C:\mysql\share\charsets\latin2.conf
|
||||
file0=C:\mysql\share\charsets\win1251ukr.conf
|
||||
file17=C:\mysql\share\charsets\latin5.conf
|
||||
file1=C:\mysql\share\charsets\cp1257.conf
|
||||
file18=C:\mysql\share\charsets\Readme
|
||||
file2=C:\mysql\share\charsets\croat.conf
|
||||
file19=C:\mysql\share\charsets\swe7.conf
|
||||
file3=C:\mysql\share\charsets\danish.conf
|
||||
file4=C:\mysql\share\charsets\dec8.conf
|
||||
file5=C:\mysql\share\charsets\dos.conf
|
||||
file6=C:\mysql\share\charsets\estonia.conf
|
||||
file7=C:\mysql\share\charsets\german1.conf
|
||||
file8=C:\mysql\share\charsets\greek.conf
|
||||
file9=C:\mysql\share\charsets\hebrew.conf
|
||||
file20=C:\mysql\share\charsets\usa7.conf
|
||||
file21=C:\mysql\share\charsets\win1250.conf
|
||||
file10=C:\mysql\share\charsets\hp8.conf
|
||||
fulldirectory=
|
||||
file22=C:\mysql\share\charsets\win1251.conf
|
||||
file11=C:\mysql\share\charsets\hungarian.conf
|
||||
file23=C:\mysql\share\charsets\cp1251.conf
|
||||
file12=C:\mysql\share\charsets\Index
|
||||
file13=C:\mysql\share\charsets\koi8_ru.conf
|
||||
file14=C:\mysql\share\charsets\koi8_ukr.conf
|
||||
|
||||
[share\ukrainian]
|
||||
file0=C:\mysql\share\ukrainian\errmsg.sys
|
||||
file1=C:\mysql\share\ukrainian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\hungarian]
|
||||
file0=C:\mysql\share\hungarian\errmsg.sys
|
||||
file1=C:\mysql\share\hungarian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\german]
|
||||
file0=C:\mysql\share\german\errmsg.sys
|
||||
file1=C:\mysql\share\german\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\portuguese]
|
||||
file0=C:\mysql\share\portuguese\errmsg.sys
|
||||
file1=C:\mysql\share\portuguese\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\estonian]
|
||||
file0=C:\mysql\share\estonian\errmsg.sys
|
||||
file1=C:\mysql\share\estonian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\romanian]
|
||||
file0=C:\mysql\share\romanian\errmsg.sys
|
||||
file1=C:\mysql\share\romanian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\french]
|
||||
file0=C:\mysql\share\french\errmsg.sys
|
||||
file1=C:\mysql\share\french\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\swedish]
|
||||
file0=C:\mysql\share\swedish\errmsg.sys
|
||||
file1=C:\mysql\share\swedish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\slovak]
|
||||
file0=C:\mysql\share\slovak\errmsg.sys
|
||||
file1=C:\mysql\share\slovak\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\greek]
|
||||
file0=C:\mysql\share\greek\errmsg.sys
|
||||
file1=C:\mysql\share\greek\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[TopDir]
|
||||
file0=C:\mysql\my-small.cnf
|
||||
file1=C:\mysql\my-large.cnf
|
||||
file2=C:\mysql\my-medium.cnf
|
||||
file3=C:\mysql\my-huge.cnf
|
||||
SubDir0=bin
|
||||
SubDir1=share
|
||||
|
||||
[share]
|
||||
SubDir8=share\hungarian
|
||||
SubDir9=share\charsets
|
||||
SubDir20=share\spanish
|
||||
SubDir21=share\swedish
|
||||
SubDir10=share\italian
|
||||
SubDir22=share\ukrainian
|
||||
SubDir11=share\japanese
|
||||
SubDir12=share\korean
|
||||
SubDir13=share\norwegian
|
||||
SubDir14=share\norwegian-ny
|
||||
SubDir15=share\polish
|
||||
SubDir16=share\portuguese
|
||||
SubDir0=share\czech
|
||||
SubDir17=share\romanian
|
||||
SubDir1=share\danish
|
||||
SubDir18=share\russian
|
||||
SubDir2=share\dutch
|
||||
SubDir19=share\slovak
|
||||
SubDir3=share\english
|
||||
fulldirectory=
|
||||
SubDir4=share\estonian
|
||||
SubDir5=share\french
|
||||
SubDir6=share\german
|
||||
SubDir7=share\greek
|
||||
|
||||
[share\norwegian-ny]
|
||||
file0=C:\mysql\share\norwegian-ny\errmsg.sys
|
||||
file1=C:\mysql\share\norwegian-ny\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\danish]
|
||||
file0=C:\mysql\share\danish\errmsg.sys
|
||||
file1=C:\mysql\share\danish\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\czech]
|
||||
file0=C:\mysql\share\czech\errmsg.sys
|
||||
file1=C:\mysql\share\czech\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[General]
|
||||
Type=FILELIST
|
||||
Version=1.00.000
|
||||
|
||||
[share\russian]
|
||||
file0=C:\mysql\share\russian\errmsg.sys
|
||||
file1=C:\mysql\share\russian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\norwegian]
|
||||
file0=C:\mysql\share\norwegian\errmsg.sys
|
||||
file1=C:\mysql\share\norwegian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\japanese]
|
||||
file0=C:\mysql\share\japanese\errmsg.sys
|
||||
file1=C:\mysql\share\japanese\errmsg.txt
|
||||
fulldirectory=
|
||||
|
||||
[share\italian]
|
||||
file0=C:\mysql\share\italian\errmsg.sys
|
||||
file1=C:\mysql\share\italian\errmsg.txt
|
||||
fulldirectory=
|
||||
|
51
VC++Files/InstallShield/3.23.XXcom/MySQL 3.23.com.ipr
Normal file
51
VC++Files/InstallShield/3.23.XXcom/MySQL 3.23.com.ipr
Normal file
@ -0,0 +1,51 @@
|
||||
[Language]
|
||||
LanguageSupport0=0009
|
||||
|
||||
[OperatingSystem]
|
||||
OSSupport=0000000000010010
|
||||
|
||||
[Data]
|
||||
CurrentMedia=
|
||||
set_mifserial=
|
||||
ProductName=MySQL Servers and Clients
|
||||
CurrentComponentDef=Default.cdf
|
||||
set_dlldebug=No
|
||||
AppExe=
|
||||
DevEnvironment=Microsoft Visual C++ 6
|
||||
set_mif=No
|
||||
set_testmode=No
|
||||
Instructions=Instructions.txt
|
||||
EmailAddresss=
|
||||
SummaryText=
|
||||
Department=
|
||||
Type=Database Application
|
||||
Author=
|
||||
HomeURL=
|
||||
InstallRoot=C:\MySQL-Install\3.23.XXcom
|
||||
set_level=Level 3
|
||||
InstallationGUID=40744a4d-efed-4cff-84a9-9e6389550f5c
|
||||
Version=1.00.000
|
||||
set_miffile=Status.mif
|
||||
set_args=
|
||||
set_maxerr=50
|
||||
Notes=Notes.txt
|
||||
CurrentFileGroupDef=Default.fdf
|
||||
set_dllcmdline=
|
||||
set_warnaserr=No
|
||||
Copyright=
|
||||
set_preproc=
|
||||
Category=
|
||||
CurrentPlatform=
|
||||
set_compileb4build=No
|
||||
set_crc=Yes
|
||||
set_maxwarn=50
|
||||
Description=Description.txt
|
||||
CompanyName=MySQL
|
||||
CurrentLanguage=English
|
||||
|
||||
[MediaInfo]
|
||||
|
||||
[General]
|
||||
Type=INSTALLMAIN
|
||||
Version=1.10.000
|
||||
|
@ -0,0 +1,4 @@
|
||||
[General]
|
||||
Type=REGISTRYDATA
|
||||
Version=1.00.000
|
||||
|
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.dbg
Normal file
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.dbg
Normal file
Binary file not shown.
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.ino
Normal file
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.ino
Normal file
Binary file not shown.
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.ins
Normal file
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.ins
Normal file
Binary file not shown.
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.obs
Normal file
BIN
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.obs
Normal file
Binary file not shown.
641
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.rul
Normal file
641
VC++Files/InstallShield/3.23.XXcom/Script Files/Setup.rul
Normal file
@ -0,0 +1,641 @@
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IIIIIII SSSSSS
|
||||
// II SS InstallShield (R)
|
||||
// II SSSSSS (c) 1996-1997, InstallShield Software Corporation
|
||||
// II SS (c) 1990-1996, InstallShield Corporation
|
||||
// IIIIIII SSSSSS All Rights Reserved.
|
||||
//
|
||||
//
|
||||
// This code is generated as a starting setup template. You should
|
||||
// modify it to provide all necessary steps for your setup.
|
||||
//
|
||||
//
|
||||
// File Name: Setup.rul
|
||||
//
|
||||
// Description: InstallShield script
|
||||
//
|
||||
// Comments: This template script performs a basic setup on a
|
||||
// Windows 95 or Windows NT 4.0 platform. With minor
|
||||
// modifications, this template can be adapted to create
|
||||
// new, customized setups.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// Include header file
|
||||
#include "sdlang.h"
|
||||
#include "sddialog.h"
|
||||
|
||||
////////////////////// string defines ////////////////////////////
|
||||
|
||||
#define UNINST_LOGFILE_NAME "Uninst.isu"
|
||||
|
||||
//////////////////// installation declarations ///////////////////
|
||||
|
||||
// ----- DLL prototypes -----
|
||||
|
||||
|
||||
// your DLL prototypes
|
||||
|
||||
|
||||
// ---- script prototypes -----
|
||||
|
||||
// generated
|
||||
prototype ShowDialogs();
|
||||
prototype MoveFileData();
|
||||
prototype HandleMoveDataError( NUMBER );
|
||||
prototype ProcessBeforeDataMove();
|
||||
prototype ProcessAfterDataMove();
|
||||
prototype SetupRegistry();
|
||||
prototype SetupFolders();
|
||||
prototype CleanUpInstall();
|
||||
prototype SetupInstall();
|
||||
prototype SetupScreen();
|
||||
prototype CheckRequirements();
|
||||
prototype DialogShowSdWelcome();
|
||||
prototype DialogShowSdShowInfoList();
|
||||
prototype DialogShowSdAskDestPath();
|
||||
prototype DialogShowSdSetupType();
|
||||
prototype DialogShowSdComponentDialog2();
|
||||
prototype DialogShowSdFinishReboot();
|
||||
|
||||
// your prototypes
|
||||
|
||||
|
||||
// ----- global variables ------
|
||||
|
||||
// generated
|
||||
BOOL bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup;
|
||||
STRING svDir;
|
||||
STRING svName, svCompany, svSerial;
|
||||
STRING szAppPath;
|
||||
STRING svSetupType;
|
||||
|
||||
|
||||
// your global variables
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// MAIN PROGRAM
|
||||
//
|
||||
// The setup begins here by hiding the visible setup
|
||||
// window. This is done to allow all the titles, images, etc. to
|
||||
// be established before showing the main window. The following
|
||||
// logic then performs the setup in a series of steps.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
program
|
||||
Disable( BACKGROUND );
|
||||
|
||||
CheckRequirements();
|
||||
|
||||
SetupInstall();
|
||||
|
||||
SetupScreen();
|
||||
|
||||
if (ShowDialogs()<0) goto end_install;
|
||||
|
||||
if (ProcessBeforeDataMove()<0) goto end_install;
|
||||
|
||||
if (MoveFileData()<0) goto end_install;
|
||||
|
||||
if (ProcessAfterDataMove()<0) goto end_install;
|
||||
|
||||
if (SetupRegistry()<0) goto end_install;
|
||||
|
||||
if (SetupFolders()<0) goto end_install;
|
||||
|
||||
|
||||
end_install:
|
||||
|
||||
CleanUpInstall();
|
||||
|
||||
// If an unrecoverable error occurred, clean up the partial installation.
|
||||
// Otherwise, exit normally.
|
||||
|
||||
if (bInstallAborted) then
|
||||
abort;
|
||||
endif;
|
||||
|
||||
endprogram
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: ShowDialogs //
|
||||
// //
|
||||
// Purpose: This function manages the display and navigation //
|
||||
// the standard dialogs that exist in a setup. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function ShowDialogs()
|
||||
NUMBER nResult;
|
||||
begin
|
||||
|
||||
Dlg_Start:
|
||||
// beginning of dialogs label
|
||||
|
||||
Dlg_SdWelcome:
|
||||
nResult = DialogShowSdWelcome();
|
||||
if (nResult = BACK) goto Dlg_Start;
|
||||
|
||||
Dlg_SdShowInfoList:
|
||||
nResult = DialogShowSdShowInfoList();
|
||||
if (nResult = BACK) goto Dlg_SdWelcome;
|
||||
|
||||
Dlg_SdAskDestPath:
|
||||
nResult = DialogShowSdAskDestPath();
|
||||
if (nResult = BACK) goto Dlg_SdShowInfoList;
|
||||
|
||||
Dlg_SdSetupType:
|
||||
nResult = DialogShowSdSetupType();
|
||||
if (nResult = BACK) goto Dlg_SdAskDestPath;
|
||||
|
||||
Dlg_SdComponentDialog2:
|
||||
if ((nResult = BACK) && (svSetupType != "Custom") && (svSetupType != "")) then
|
||||
goto Dlg_SdSetupType;
|
||||
endif;
|
||||
nResult = DialogShowSdComponentDialog2();
|
||||
if (nResult = BACK) goto Dlg_SdSetupType;
|
||||
|
||||
return 0;
|
||||
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: ProcessBeforeDataMove //
|
||||
// //
|
||||
// Purpose: This function performs any necessary operations prior to the //
|
||||
// actual data move operation. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function ProcessBeforeDataMove()
|
||||
STRING svLogFile;
|
||||
NUMBER nResult;
|
||||
begin
|
||||
|
||||
InstallationInfo( @COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY );
|
||||
|
||||
svLogFile = UNINST_LOGFILE_NAME;
|
||||
|
||||
nResult = DeinstallStart( svDir, svLogFile, @UNINST_KEY, 0 );
|
||||
if (nResult < 0) then
|
||||
MessageBox( @ERROR_UNINSTSETUP, WARNING );
|
||||
endif;
|
||||
|
||||
szAppPath = TARGETDIR; // TODO : if your application .exe is in a subdir of TARGETDIR then add subdir
|
||||
|
||||
if ((bIs32BitSetup) && (bIsShellExplorer)) then
|
||||
RegDBSetItem( REGDB_APPPATH, szAppPath );
|
||||
RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY );
|
||||
RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME );
|
||||
endif;
|
||||
|
||||
// TODO : update any items you want to process before moving the data
|
||||
//
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: MoveFileData //
|
||||
// //
|
||||
// Purpose: This function handles the data movement for //
|
||||
// the setup. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function MoveFileData()
|
||||
NUMBER nResult, nDisk;
|
||||
begin
|
||||
|
||||
nDisk = 1;
|
||||
SetStatusWindow( 0, "" );
|
||||
Disable( DIALOGCACHE );
|
||||
Enable( STATUS );
|
||||
StatusUpdate( ON, 100 );
|
||||
nResult = ComponentMoveData( MEDIA, nDisk, 0 );
|
||||
|
||||
HandleMoveDataError( nResult );
|
||||
|
||||
Disable( STATUS );
|
||||
|
||||
return nResult;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: HandleMoveDataError //
|
||||
// //
|
||||
// Purpose: This function handles the error (if any) during the move data //
|
||||
// operation. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function HandleMoveDataError( nResult )
|
||||
STRING szErrMsg, svComponent , svFileGroup , svFile;
|
||||
begin
|
||||
|
||||
svComponent = "";
|
||||
svFileGroup = "";
|
||||
svFile = "";
|
||||
|
||||
switch (nResult)
|
||||
case 0:
|
||||
return 0;
|
||||
default:
|
||||
ComponentError ( MEDIA , svComponent , svFileGroup , svFile , nResult );
|
||||
szErrMsg = @ERROR_MOVEDATA + "\n\n" +
|
||||
@ERROR_COMPONENT + " " + svComponent + "\n" +
|
||||
@ERROR_FILEGROUP + " " + svFileGroup + "\n" +
|
||||
@ERROR_FILE + " " + svFile;
|
||||
SprintfBox( SEVERE, @TITLE_CAPTIONBAR, szErrMsg, nResult );
|
||||
bInstallAborted = TRUE;
|
||||
return nResult;
|
||||
endswitch;
|
||||
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: ProcessAfterDataMove //
|
||||
// //
|
||||
// Purpose: This function performs any necessary operations needed after //
|
||||
// all data has been moved. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function ProcessAfterDataMove()
|
||||
begin
|
||||
|
||||
// TODO : update self-registered files and other processes that
|
||||
// should be performed after the data has been moved.
|
||||
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: SetupRegistry //
|
||||
// //
|
||||
// Purpose: This function makes the registry entries for this setup. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupRegistry()
|
||||
NUMBER nResult;
|
||||
|
||||
begin
|
||||
|
||||
// TODO : Add all your registry entry keys here
|
||||
//
|
||||
//
|
||||
// RegDBCreateKeyEx, RegDBSetKeyValueEx....
|
||||
//
|
||||
|
||||
nResult = CreateRegistrySet( "" );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Function: SetupFolders
|
||||
//
|
||||
// Purpose: This function creates all the folders and shortcuts for the
|
||||
// setup. This includes program groups and items for Windows 3.1.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupFolders()
|
||||
NUMBER nResult;
|
||||
|
||||
begin
|
||||
|
||||
|
||||
// TODO : Add all your folder (program group) along with shortcuts (program items)
|
||||
//
|
||||
//
|
||||
// CreateProgramFolder, AddFolderIcon....
|
||||
//
|
||||
|
||||
nResult = CreateShellObjects( "" );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: CleanUpInstall //
|
||||
// //
|
||||
// Purpose: This cleans up the setup. Anything that should //
|
||||
// be released or deleted at the end of the setup should //
|
||||
// be done here. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function CleanUpInstall()
|
||||
begin
|
||||
|
||||
|
||||
if (bInstallAborted) then
|
||||
return 0;
|
||||
endif;
|
||||
|
||||
DialogShowSdFinishReboot();
|
||||
|
||||
if (BATCH_INSTALL) then // ensure locked files are properly written
|
||||
CommitSharedFiles(0);
|
||||
endif;
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: SetupInstall //
|
||||
// //
|
||||
// Purpose: This will setup the installation. Any general initialization //
|
||||
// needed for the installation should be performed here. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupInstall()
|
||||
begin
|
||||
|
||||
Enable( CORECOMPONENTHANDLING );
|
||||
|
||||
bInstallAborted = FALSE;
|
||||
|
||||
if (bIs32BitSetup) then
|
||||
svDir = "C:\\mysql"; //PROGRAMFILES ^ @COMPANY_NAME ^ @PRODUCT_NAME;
|
||||
else
|
||||
svDir = "C:\\mysql"; //PROGRAMFILES ^ @COMPANY_NAME16 ^ @PRODUCT_NAME16; // use shorten names
|
||||
endif;
|
||||
|
||||
TARGETDIR = svDir;
|
||||
|
||||
SdProductName( @PRODUCT_NAME );
|
||||
|
||||
Enable( DIALOGCACHE );
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: SetupScreen //
|
||||
// //
|
||||
// Purpose: This function establishes the screen look. This includes //
|
||||
// colors, fonts, and text to be displayed. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function SetupScreen()
|
||||
begin
|
||||
|
||||
Enable( FULLWINDOWMODE );
|
||||
Enable( INDVFILESTATUS );
|
||||
SetTitle( @TITLE_MAIN, 24, WHITE );
|
||||
|
||||
SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
|
||||
|
||||
Enable( BACKGROUND );
|
||||
|
||||
Delay( 1 );
|
||||
end;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: CheckRequirements //
|
||||
// //
|
||||
// Purpose: This function checks all minimum requirements for the //
|
||||
// application being installed. If any fail, then the user //
|
||||
// is informed and the setup is terminated. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function CheckRequirements()
|
||||
NUMBER nvDx, nvDy, nvResult;
|
||||
STRING svResult;
|
||||
|
||||
begin
|
||||
|
||||
bWinNT = FALSE;
|
||||
bIsShellExplorer = FALSE;
|
||||
|
||||
// Check screen resolution.
|
||||
GetExtents( nvDx, nvDy );
|
||||
|
||||
if (nvDy < 480) then
|
||||
MessageBox( @ERROR_VGARESOLUTION, WARNING );
|
||||
abort;
|
||||
endif;
|
||||
|
||||
// set 'setup' operation mode
|
||||
bIs32BitSetup = TRUE;
|
||||
GetSystemInfo( ISTYPE, nvResult, svResult );
|
||||
if (nvResult = 16) then
|
||||
bIs32BitSetup = FALSE; // running 16-bit setup
|
||||
return 0; // no additional information required
|
||||
endif;
|
||||
|
||||
// --- 32-bit testing after this point ---
|
||||
|
||||
// Determine the target system's operating system.
|
||||
GetSystemInfo( OS, nvResult, svResult );
|
||||
|
||||
if (nvResult = IS_WINDOWSNT) then
|
||||
// Running Windows NT.
|
||||
bWinNT = TRUE;
|
||||
|
||||
// Check to see if the shell being used is EXPLORER shell.
|
||||
if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
|
||||
if (nvResult >= 4) then
|
||||
bIsShellExplorer = TRUE;
|
||||
endif;
|
||||
endif;
|
||||
|
||||
elseif (nvResult = IS_WINDOWS95 ) then
|
||||
bIsShellExplorer = TRUE;
|
||||
|
||||
endif;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdWelcome //
|
||||
// //
|
||||
// Purpose: This function handles the standard welcome dialog. //
|
||||
// //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdWelcome()
|
||||
NUMBER nResult;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SdWelcome( szTitle, szMsg );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdShowInfoList //
|
||||
// //
|
||||
// Purpose: This function displays the general information list dialog. //
|
||||
// //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdShowInfoList()
|
||||
NUMBER nResult;
|
||||
LIST list;
|
||||
STRING szTitle, szMsg, szFile;
|
||||
begin
|
||||
|
||||
szFile = SUPPORTDIR ^ "infolist.txt";
|
||||
|
||||
list = ListCreate( STRINGLIST );
|
||||
ListReadFromFile( list, szFile );
|
||||
szTitle = "";
|
||||
szMsg = " ";
|
||||
nResult = SdShowInfoList( szTitle, szMsg, list );
|
||||
|
||||
ListDestroy( list );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdAskDestPath //
|
||||
// //
|
||||
// Purpose: This function asks the user for the destination directory. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdAskDestPath()
|
||||
NUMBER nResult;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 );
|
||||
|
||||
TARGETDIR = svDir;
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdSetupType //
|
||||
// //
|
||||
// Purpose: This function displays the standard setup type dialog. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdSetupType()
|
||||
NUMBER nResult, nType;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
switch (svSetupType)
|
||||
case "Typical":
|
||||
nType = TYPICAL;
|
||||
case "Custom":
|
||||
nType = CUSTOM;
|
||||
case "Compact":
|
||||
nType = COMPACT;
|
||||
case "":
|
||||
svSetupType = "Typical";
|
||||
nType = TYPICAL;
|
||||
endswitch;
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SetupType( szTitle, szMsg, "", nType, 0 );
|
||||
|
||||
switch (nResult)
|
||||
case COMPACT:
|
||||
svSetupType = "Compact";
|
||||
case TYPICAL:
|
||||
svSetupType = "Typical";
|
||||
case CUSTOM:
|
||||
svSetupType = "Custom";
|
||||
endswitch;
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdComponentDialog2 //
|
||||
// //
|
||||
// Purpose: This function displays the custom component dialog. //
|
||||
// //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdComponentDialog2()
|
||||
NUMBER nResult;
|
||||
STRING szTitle, szMsg;
|
||||
begin
|
||||
|
||||
if ((svSetupType != "Custom") && (svSetupType != "")) then
|
||||
return 0;
|
||||
endif;
|
||||
|
||||
szTitle = "";
|
||||
szMsg = "";
|
||||
nResult = SdComponentDialog2( szTitle, szMsg, svDir, "" );
|
||||
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Function: DialogShowSdFinishReboot //
|
||||
// //
|
||||
// Purpose: This function will show the last dialog of the product. //
|
||||
// It will allow the user to reboot and/or show some readme text. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
function DialogShowSdFinishReboot()
|
||||
NUMBER nResult, nDefOptions;
|
||||
STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
|
||||
NUMBER bOpt1, bOpt2;
|
||||
begin
|
||||
/*
|
||||
if (!BATCH_INSTALL) then
|
||||
bOpt1 = FALSE;
|
||||
bOpt2 = FALSE;
|
||||
szMsg1 = "";
|
||||
szMsg2 = "";
|
||||
szOption1 = "";
|
||||
szOption2 = "";
|
||||
nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );
|
||||
return 0;
|
||||
endif;
|
||||
|
||||
nDefOptions = SYS_BOOTMACHINE;
|
||||
szTitle = "";
|
||||
szMsg1 = "";
|
||||
szMsg2 = "";
|
||||
nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 );
|
||||
*/
|
||||
return nResult;
|
||||
end;
|
||||
|
||||
// --- include script file section ---
|
||||
|
||||
#include "sddialog.rul"
|
||||
|
||||
|
||||
|
@ -0,0 +1,24 @@
|
||||
This is a release of MySQL 3.23.56 for Win32.
|
||||
|
||||
NOTE: If you install MySQL in a folder other than
|
||||
C:\MYSQL or you intend to start MySQL on NT/Win2000
|
||||
as a service, you must create a file named C:\MY.CNF
|
||||
or \Windows\my.ini or \winnt\my.ini with the following
|
||||
information::
|
||||
|
||||
[mysqld]
|
||||
basedir=E:/installation-path/
|
||||
datadir=E:/data-path/
|
||||
|
||||
After your have installed MySQL, the installation
|
||||
directory which contains the files named 'my-size.cnf'.
|
||||
You can use this as a starting point for your own
|
||||
C:\my.cnf file.
|
||||
|
||||
If you have any problems, you can mail them to
|
||||
win32@lists.mysql.com after you have consulted the
|
||||
MySQL manual and the MySQL mailing list archive
|
||||
(http://www.mysql.com/documentation/index.html)
|
||||
|
||||
On behalf of the MySQL AB gang,
|
||||
Michael Widenius
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
12
VC++Files/InstallShield/3.23.XXcom/Shell Objects/Default.shl
Normal file
12
VC++Files/InstallShield/3.23.XXcom/Shell Objects/Default.shl
Normal file
@ -0,0 +1,12 @@
|
||||
[Data]
|
||||
Folder3=<FOLDER_STARTUP>
|
||||
Group0=Main
|
||||
Group1=Startup
|
||||
Folder0=<FOLDER_DESKTOP>
|
||||
Folder1=<FOLDER_STARTMENU>
|
||||
Folder2=<FOLDER_PROGRAMS>
|
||||
|
||||
[Info]
|
||||
Type=ShellObject
|
||||
Version=1.00.000
|
||||
|
@ -0,0 +1,23 @@
|
||||
[Data]
|
||||
TITLE_MAIN=MySQL Commercial Servers and Clients 3.23.56
|
||||
ERROR_COMPONENT=Component:
|
||||
COMPANY_NAME=MySQL AB
|
||||
COMPANY_NAME16=Company
|
||||
ERROR_FILEGROUP=File Group:
|
||||
ERROR_MOVEDATA=An error occurred during the move data process: %d
|
||||
PRODUCT_VERSION=3.23.56
|
||||
UNINST_KEY=MySQL Commercial Servers and Clients 3.23.56
|
||||
TITLE_CAPTIONBAR=MySQL Commercial Servers and Clients 3.23.56 Setup
|
||||
PRODUCT_NAME16=Product
|
||||
ERROR_FILE=File:
|
||||
ERROR_VGARESOLUTION=This program requires VGA or better resolution.
|
||||
PRODUCT_KEY=yourapp.Exe
|
||||
UNINST_DISPLAY_NAME=MySQL Commercial Servers and Clients 3.23.56
|
||||
ERROR_UNINSTSETUP=unInstaller setup failed to initialize. You may not be able to uninstall this product.
|
||||
PRODUCT_NAME=MySQL Commercial Servers and Clients 3.23.56
|
||||
|
||||
[General]
|
||||
Language=0009
|
||||
Type=STRINGTABLESPECIFIC
|
||||
Version=1.00.000
|
||||
|
74
VC++Files/InstallShield/3.23.XXcom/String Tables/Default.shl
Normal file
74
VC++Files/InstallShield/3.23.XXcom/String Tables/Default.shl
Normal file
@ -0,0 +1,74 @@
|
||||
[TITLE_MAIN]
|
||||
Comment=
|
||||
|
||||
[ERROR_COMPONENT]
|
||||
Comment=
|
||||
|
||||
[COMPANY_NAME]
|
||||
Comment=
|
||||
|
||||
[COMPANY_NAME16]
|
||||
Comment=
|
||||
|
||||
[ERROR_FILEGROUP]
|
||||
Comment=
|
||||
|
||||
[ERROR_MOVEDATA]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_VERSION]
|
||||
Comment=
|
||||
|
||||
[UNINST_KEY]
|
||||
Comment=
|
||||
|
||||
[Language]
|
||||
Lang0=0009
|
||||
CurrentLang=0
|
||||
|
||||
[TITLE_CAPTIONBAR]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_NAME16]
|
||||
Comment=
|
||||
|
||||
[Data]
|
||||
Entry0=ERROR_VGARESOLUTION
|
||||
Entry1=TITLE_MAIN
|
||||
Entry2=TITLE_CAPTIONBAR
|
||||
Entry3=UNINST_KEY
|
||||
Entry4=UNINST_DISPLAY_NAME
|
||||
Entry5=COMPANY_NAME
|
||||
Entry6=PRODUCT_NAME
|
||||
Entry7=PRODUCT_VERSION
|
||||
Entry8=PRODUCT_KEY
|
||||
Entry10=ERROR_UNINSTSETUP
|
||||
Entry9=ERROR_MOVEDATA
|
||||
Entry11=COMPANY_NAME16
|
||||
Entry12=PRODUCT_NAME16
|
||||
Entry13=ERROR_COMPONENT
|
||||
Entry14=ERROR_FILEGROUP
|
||||
Entry15=ERROR_FILE
|
||||
|
||||
[ERROR_FILE]
|
||||
Comment=
|
||||
|
||||
[ERROR_VGARESOLUTION]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_KEY]
|
||||
Comment=
|
||||
|
||||
[UNINST_DISPLAY_NAME]
|
||||
Comment=
|
||||
|
||||
[General]
|
||||
Type=STRINGTABLE
|
||||
Version=1.00.000
|
||||
|
||||
[ERROR_UNINSTSETUP]
|
||||
Comment=
|
||||
|
||||
[PRODUCT_NAME]
|
||||
Comment=
|
||||
|
@ -0,0 +1,56 @@
|
||||
[<HKCR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKUS>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<WINSYSDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<COMMONFILES>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<WINDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[Data]
|
||||
Key0=<PROGRAMFILES>
|
||||
Key1=<COMMONFILES>
|
||||
Key2=<WINDIR>
|
||||
Key3=<WINSYSDIR>
|
||||
Key4=<HKLM>
|
||||
Key5=<HKCU>
|
||||
Key6=<HKCC>
|
||||
Key7=<HKDD>
|
||||
Key8=<HKUS>
|
||||
Key9=<HKCR>
|
||||
|
||||
[General]
|
||||
Type=TEXTSUB
|
||||
Version=1.00.000
|
||||
|
||||
[<HKCU>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKLM>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKDD>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKCC>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
@ -0,0 +1,76 @@
|
||||
[<HKCR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKUS>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<SRCDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<PROGRAMFILES>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<TARGETDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<WINSYSDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<COMMONFILES>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<WINDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[Data]
|
||||
Key0=<PROGRAMFILES>
|
||||
Key1=<COMMONFILES>
|
||||
Key2=<WINDIR>
|
||||
Key3=<WINSYSDIR>
|
||||
Key4=<TARGETDIR>
|
||||
Key10=<HKDD>
|
||||
Key5=<SUPPORTDIR>
|
||||
Key11=<HKUS>
|
||||
Key6=<SRCDIR>
|
||||
Key12=<HKCR>
|
||||
Key7=<HKLM>
|
||||
Key13=<SHELL_OBJECT_FOLDER>
|
||||
Key8=<HKCU>
|
||||
Key9=<HKCC>
|
||||
|
||||
[<SHELL_OBJECT_FOLDER>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<SUPPORTDIR>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[General]
|
||||
Type=TEXTSUB
|
||||
Version=1.00.000
|
||||
|
||||
[<HKCU>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKLM>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKDD>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
||||
[<HKCC>]
|
||||
KeyType=4
|
||||
Value=
|
||||
|
118
acinclude.m4
118
acinclude.m4
@ -90,7 +90,7 @@ mysql_cv_btype_last_arg_accept=none
|
||||
],
|
||||
[int a = accept(1, (struct sockaddr *) 0, (socklen_t *) 0); return (a != 0);],
|
||||
mysql_cv_btype_last_arg_accept=socklen_t)]
|
||||
if test $mysql_cv_btype_last_arg_accept = none; then
|
||||
if test "$mysql_cv_btype_last_arg_accept" = "none"; then
|
||||
[AC_TRY_COMPILE([#if defined(inline)
|
||||
#undef inline
|
||||
#endif
|
||||
@ -101,7 +101,7 @@ if test $mysql_cv_btype_last_arg_accept = none; then
|
||||
[int a = accept(1, (struct sockaddr *) 0, (size_t *) 0); return (a != 0);],
|
||||
mysql_cv_btype_last_arg_accept=size_t)]
|
||||
fi
|
||||
if test $mysql_cv_btype_last_arg_accept = none; then
|
||||
if test "$mysql_cv_btype_last_arg_accept" = "none"; then
|
||||
mysql_cv_btype_last_arg_accept=int
|
||||
fi)
|
||||
AC_LANG_RESTORE
|
||||
@ -166,12 +166,19 @@ AC_DEFUN(MYSQL_CHECK_ZLIB_WITH_COMPRESS, [
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="-l$1 $LIBS"
|
||||
AC_CACHE_CHECK([if libz with compress], mysql_cv_compress,
|
||||
[AC_TRY_LINK([#include <zlib.h>
|
||||
[AC_TRY_RUN([#include <zlib.h>
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
],
|
||||
[ return compress(0, (unsigned long*) 0, "", 0);
|
||||
int main(int argv, char **argc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int link_test()
|
||||
{
|
||||
return compress(0, (unsigned long*) 0, "", 0);
|
||||
}
|
||||
], mysql_cv_compress=yes, mysql_cv_compress=no)])
|
||||
if test "$mysql_cv_compress" = "yes"
|
||||
then
|
||||
@ -386,11 +393,11 @@ AC_CACHE_VAL(mysql_cv_termcap_lib,
|
||||
[AC_CHECK_LIB(termcap, tgetent, mysql_cv_termcap_lib=libtermcap,
|
||||
mysql_cv_termcap_lib=NOT_FOUND)])])])
|
||||
AC_MSG_CHECKING(for termcap functions library)
|
||||
if test $mysql_cv_termcap_lib = NOT_FOUND; then
|
||||
if test "$mysql_cv_termcap_lib" = "NOT_FOUND"; then
|
||||
AC_MSG_ERROR([No curses/termcap library found])
|
||||
elif test $mysql_cv_termcap_lib = libtermcap; then
|
||||
elif test "$mysql_cv_termcap_lib" = "libtermcap"; then
|
||||
TERMCAP_LIB=-ltermcap
|
||||
elif test $mysql_cv_termcap_lib = libncurses; then
|
||||
elif test "$mysql_cv_termcap_lib" = "libncurses"; then
|
||||
TERMCAP_LIB=-lncurses
|
||||
else
|
||||
TERMCAP_LIB=-lcurses
|
||||
@ -446,7 +453,7 @@ AC_CACHE_VAL(mysql_cv_can_redecl_getpw,
|
||||
extern struct passwd *getpwent();], [struct passwd *z; z = getpwent();],
|
||||
mysql_cv_can_redecl_getpw=yes,mysql_cv_can_redecl_getpw=no)])
|
||||
AC_MSG_RESULT($mysql_cv_can_redecl_getpw)
|
||||
if test $mysql_cv_can_redecl_getpw = no; then
|
||||
if test "$mysql_cv_can_redecl_getpw" = "no"; then
|
||||
AC_DEFINE(HAVE_GETPW_DECLS)
|
||||
fi
|
||||
])
|
||||
@ -458,7 +465,7 @@ AC_CACHE_VAL(mysql_cv_tiocgwinsz_in_ioctl,
|
||||
#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
|
||||
mysql_cv_tiocgwinsz_in_ioctl=yes,mysql_cv_tiocgwinsz_in_ioctl=no)])
|
||||
AC_MSG_RESULT($mysql_cv_tiocgwinsz_in_ioctl)
|
||||
if test $mysql_cv_tiocgwinsz_in_ioctl = yes; then
|
||||
if test "$mysql_cv_tiocgwinsz_in_ioctl" = "yes"; then
|
||||
AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
|
||||
fi
|
||||
])
|
||||
@ -470,7 +477,7 @@ AC_CACHE_VAL(mysql_cv_fionread_in_ioctl,
|
||||
#include <sys/ioctl.h>], [int x = FIONREAD;],
|
||||
mysql_cv_fionread_in_ioctl=yes,mysql_cv_fionread_in_ioctl=no)])
|
||||
AC_MSG_RESULT($mysql_cv_fionread_in_ioctl)
|
||||
if test $mysql_cv_fionread_in_ioctl = yes; then
|
||||
if test "$mysql_cv_fionread_in_ioctl" = "yes"; then
|
||||
AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
|
||||
fi
|
||||
])
|
||||
@ -482,7 +489,7 @@ AC_CACHE_VAL(mysql_cv_tiocstat_in_ioctl,
|
||||
#include <sys/ioctl.h>], [int x = TIOCSTAT;],
|
||||
mysql_cv_tiocstat_in_ioctl=yes,mysql_cv_tiocstat_in_ioctl=no)])
|
||||
AC_MSG_RESULT($mysql_cv_tiocstat_in_ioctl)
|
||||
if test $mysql_cv_tiocstat_in_ioctl = yes; then
|
||||
if test "$mysql_cv_tiocstat_in_ioctl" = "yes"; then
|
||||
AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
|
||||
fi
|
||||
])
|
||||
@ -515,7 +522,7 @@ AC_CACHE_VAL(mysql_cv_dirent_has_dino,
|
||||
struct dirent d; int z; z = d.d_ino;
|
||||
], mysql_cv_dirent_has_dino=yes, mysql_cv_dirent_has_dino=no)])
|
||||
AC_MSG_RESULT($mysql_cv_dirent_has_dino)
|
||||
if test $mysql_cv_dirent_has_dino = yes; then
|
||||
if test "$mysql_cv_dirent_has_dino" = "yes"; then
|
||||
AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
|
||||
fi
|
||||
])
|
||||
@ -534,7 +541,7 @@ extern "C"
|
||||
void (*signal ()) ();],
|
||||
[int i;], mysql_cv_void_sighandler=yes, mysql_cv_void_sighandler=no)])dnl
|
||||
AC_MSG_RESULT($mysql_cv_void_sighandler)
|
||||
if test $mysql_cv_void_sighandler = yes; then
|
||||
if test "$mysql_cv_void_sighandler" = "yes"; then
|
||||
AC_DEFINE(VOID_SIGHANDLER)
|
||||
fi
|
||||
])
|
||||
@ -593,7 +600,7 @@ then
|
||||
AC_CACHE_CHECK([for working alloca.h], ac_cv_header_alloca_h,
|
||||
[AC_TRY_LINK([#include <alloca.h>], [char *p = alloca(2 * sizeof(int));],
|
||||
ac_cv_header_alloca_h=yes, ac_cv_header_alloca_h=no)])
|
||||
if test $ac_cv_header_alloca_h = yes
|
||||
if test "$ac_cv_header_alloca_h" = "yes"
|
||||
then
|
||||
AC_DEFINE(HAVE_ALLOCA)
|
||||
fi
|
||||
@ -617,11 +624,11 @@ then
|
||||
#endif
|
||||
], [char *p = (char *) alloca(1);],
|
||||
ac_cv_func_alloca_works=yes, ac_cv_func_alloca_works=no)])
|
||||
if test $ac_cv_func_alloca_works = yes; then
|
||||
if test "$ac_cv_func_alloca_works" = "yes"; then
|
||||
AC_DEFINE(HAVE_ALLOCA)
|
||||
fi
|
||||
|
||||
if test $ac_cv_func_alloca_works = no; then
|
||||
if test "$ac_cv_func_alloca_works" = "no"; then
|
||||
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
|
||||
# that cause trouble. Some versions do not even contain alloca or
|
||||
# contain a buggy version. If you still want to use their alloca,
|
||||
@ -637,7 +644,7 @@ then
|
||||
wenotbecray
|
||||
#endif
|
||||
], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
|
||||
if test $ac_cv_os_cray = yes; then
|
||||
if test "$ac_cv_os_cray" = "yes"; then
|
||||
for ac_func in _getb67 GETB67 getb67; do
|
||||
AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func)
|
||||
break])
|
||||
@ -742,26 +749,52 @@ AC_DEFUN(MYSQL_CHECK_VIO, [
|
||||
])
|
||||
|
||||
AC_DEFUN(MYSQL_FIND_OPENSSL, [
|
||||
for d in /usr/ssl/include /usr/local/ssl/include /usr/include \
|
||||
incs="$1"
|
||||
libs="$2"
|
||||
case "$incs---$libs" in
|
||||
---)
|
||||
for d in /usr/ssl/include /usr/local/ssl/include /usr/include \
|
||||
/usr/include/ssl /opt/ssl/include /opt/openssl/include \
|
||||
/usr/local/ssl/include /usr/local/include ; do
|
||||
if test -f $d/openssl/ssl.h ; then
|
||||
OPENSSL_INCLUDE=$d
|
||||
if test -f $d/openssl/ssl.h ; then
|
||||
OPENSSL_INCLUDE=-I$d
|
||||
fi
|
||||
done
|
||||
|
||||
for d in /usr/ssl/lib /usr/local/ssl/lib /usr/lib/openssl \
|
||||
/usr/lib /usr/lib64 /opt/ssl/lib /opt/openssl/lib /usr/local/lib/ ; do
|
||||
if test -f $d/libssl.a ; then
|
||||
OPENSSL_LIB=$d
|
||||
fi
|
||||
done
|
||||
;;
|
||||
---* | *---)
|
||||
AC_MSG_ERROR([if either 'includes' or 'libs' is specified, both must be specified])
|
||||
;;
|
||||
* )
|
||||
if test -f $incs/openssl/ssl.h ; then
|
||||
OPENSSL_INCLUDE=-I$incs
|
||||
fi
|
||||
if test -f $libs/libssl.a ; then
|
||||
OPENSSL_LIB=$libs
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# On RedHat 9 we need kerberos to compile openssl
|
||||
for d in /usr/kerberos/include
|
||||
do
|
||||
if test -f $d/krb5.h ; then
|
||||
OPENSSL_KERBEROS_INCLUDE="$d"
|
||||
fi
|
||||
done
|
||||
|
||||
for d in /usr/ssl/lib /usr/local/ssl/lib /usr/lib/openssl \
|
||||
/usr/lib /opt/ssl/lib /opt/openssl/lib /usr/local/lib/ ; do
|
||||
if test -f $d/libssl.a ; then
|
||||
OPENSSL_LIB=$d
|
||||
fi
|
||||
done
|
||||
|
||||
if test -z "$OPENSSL_LIB" -o -z "$OPENSSL_INCLUDE" ; then
|
||||
echo "Could not find an installation of OpenSSL"
|
||||
if test -n "$OPENSSL_LIB" ; then
|
||||
if test "$IS_LINUX" = "true"; then
|
||||
echo "Looks like you've forgotted to install OpenSSL development RPM"
|
||||
echo "Looks like you've forgotten to install OpenSSL development RPM"
|
||||
fi
|
||||
fi
|
||||
exit 1
|
||||
@ -776,11 +809,23 @@ AC_MSG_CHECKING(for OpenSSL)
|
||||
[openssl="$withval"],
|
||||
[openssl=no])
|
||||
|
||||
openssl_libs=""
|
||||
openssl_includes=""
|
||||
AC_ARG_WITH([openssl-includes],
|
||||
[
|
||||
--with-openssl-includes=DIR
|
||||
Find OpenSSL headers in DIR],
|
||||
[openssl_includes="$withval"],
|
||||
[openssl_includes=""])
|
||||
|
||||
AC_ARG_WITH([openssl-libs],
|
||||
[
|
||||
--with-openssl-libs=DIR
|
||||
Find OpenSSL libraries in DIR],
|
||||
[openssl_libs="$withval"],
|
||||
[openssl_libs=""])
|
||||
|
||||
if test "$openssl" = "yes"
|
||||
then
|
||||
MYSQL_FIND_OPENSSL
|
||||
MYSQL_FIND_OPENSSL([$openssl_includes], [$openssl_libs])
|
||||
#force VIO use
|
||||
vio_dir="vio"
|
||||
vio_libs="../vio/libvio.la"
|
||||
@ -789,9 +834,14 @@ AC_MSG_CHECKING(for OpenSSL)
|
||||
openssl_libs="-L$OPENSSL_LIB -lssl -lcrypto"
|
||||
# Don't set openssl_includes to /usr/include as this gives us a lot of
|
||||
# compiler warnings when using gcc 3.x
|
||||
if test "$OPENSSL_INCLUDE" != "/usr/include"
|
||||
openssl_includes=""
|
||||
if test "$OPENSSL_INCLUDE" != "-I/usr/include"
|
||||
then
|
||||
openssl_includes="-I$OPENSSL_INCLUDE"
|
||||
openssl_includes="$OPENSSL_INCLUDE"
|
||||
fi
|
||||
if test "$OPENSSL_KERBEROS_INCLUDE"
|
||||
then
|
||||
openssl_includes="$openssl_includes -I$OPENSSL_KERBEROS_INCLUDE"
|
||||
fi
|
||||
AC_DEFINE(HAVE_OPENSSL)
|
||||
|
||||
@ -802,7 +852,7 @@ AC_MSG_CHECKING(for OpenSSL)
|
||||
case "$CLIENT_EXTRA_LDFLAGS $MYSQLD_EXTRA_LDFLAGS" in
|
||||
*-all-static*) using_static="yes" ;;
|
||||
esac
|
||||
if test $using_static = "yes"
|
||||
if test "$using_static" = "yes"
|
||||
then
|
||||
echo "You can't use the --all-static link option when using openssl."
|
||||
exit 1
|
||||
|
@ -70,7 +70,7 @@ char *get_tty_password(char *opt_message)
|
||||
char *pos=to,*end=to+sizeof(to)-1;
|
||||
int i=0;
|
||||
DBUG_ENTER("get_tty_password");
|
||||
fprintf(stderr,opt_message ? opt_message : "Enter password: ");
|
||||
_cputs(opt_message ? opt_message : "Enter password: ");
|
||||
for (;;)
|
||||
{
|
||||
char tmp;
|
||||
|
@ -133,7 +133,8 @@ static my_bool info_flag=0,ignore_errors=0,wait_flag=0,quick=0,
|
||||
opt_compress=0, using_opt_local_infile=0,
|
||||
vertical=0, line_numbers=1, column_names=1,opt_html=0,
|
||||
opt_xml=0,opt_nopager=1, opt_outfile=0, named_cmds= 0,
|
||||
tty_password= 0, opt_nobeep=0, opt_reconnect=1;
|
||||
tty_password= 0, opt_nobeep=0, opt_reconnect=1,
|
||||
default_charset_used= 0;
|
||||
static uint verbose=0,opt_silent=0,opt_mysql_port=0, opt_local_infile=0;
|
||||
static my_string opt_mysql_unix_port=0;
|
||||
static int connect_flag=CLIENT_INTERACTIVE;
|
||||
@ -651,6 +652,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
strmov(mysql_charsets_dir, argument);
|
||||
charsets_dir = mysql_charsets_dir;
|
||||
break;
|
||||
case OPT_DEFAULT_CHARSET:
|
||||
default_charset_used= 1;
|
||||
break;
|
||||
case OPT_DELIMITER:
|
||||
if (argument == disabled_my_option)
|
||||
strmov(delimiter, DEFAULT_DELIMITER);
|
||||
@ -2563,7 +2567,8 @@ sql_real_connect(char *host,char *database,char *user,char *password,
|
||||
select_limit,max_join_size);
|
||||
mysql_options(&mysql, MYSQL_INIT_COMMAND, init_command);
|
||||
}
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
if (default_charset_used)
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
if (!mysql_real_connect(&mysql, host, user, password,
|
||||
database, opt_mysql_port, opt_mysql_unix_port,
|
||||
connect_flag | CLIENT_MULTI_QUERIES))
|
||||
@ -2645,7 +2650,8 @@ com_status(String *buffer __attribute__((unused)),
|
||||
(void) mysql_fetch_row(result); // Read eof
|
||||
}
|
||||
#ifdef HAVE_OPENSSL
|
||||
if (mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_))
|
||||
if (mysql.net.vio && mysql.net.vio->ssl_ &&
|
||||
SSL_get_cipher(mysql.net.vio->ssl_))
|
||||
tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n",
|
||||
SSL_get_cipher(mysql.net.vio->ssl_));
|
||||
else
|
||||
@ -2924,12 +2930,11 @@ static void mysql_end_timer(ulong start_time,char *buff)
|
||||
|
||||
static const char* construct_prompt()
|
||||
{
|
||||
//erase the old prompt
|
||||
processed_prompt.free();
|
||||
//get the date struct
|
||||
time_t lclock = time(NULL);
|
||||
processed_prompt.free(); // Erase the old prompt
|
||||
time_t lclock = time(NULL); // Get the date struct
|
||||
struct tm *t = localtime(&lclock);
|
||||
//parse thru the settings for the prompt
|
||||
|
||||
/* parse thru the settings for the prompt */
|
||||
for (char *c = current_prompt; *c ; *c++)
|
||||
{
|
||||
if (*c != PROMPT_CHAR)
|
||||
@ -2938,8 +2943,7 @@ static const char* construct_prompt()
|
||||
{
|
||||
switch (*++c) {
|
||||
case '\0':
|
||||
//stop it from going beyond if ends with %
|
||||
c--;
|
||||
c--; // stop it from going beyond if ends with %
|
||||
break;
|
||||
case 'c':
|
||||
add_int_to_prompt(++prompt_counter);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2001 MySQL AB
|
||||
/* Copyright (C) 2001-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
|
||||
@ -51,21 +51,19 @@ static bool short_form = 0;
|
||||
static ulonglong offset = 0;
|
||||
static const char* host = "localhost";
|
||||
static int port = MYSQL_PORT;
|
||||
static const char* sock= MYSQL_UNIX_ADDR;
|
||||
static const char* user = "test";
|
||||
static const char* pass = "";
|
||||
static ulonglong position = 0;
|
||||
static bool use_remote = 0;
|
||||
static short binlog_flags = 0;
|
||||
static MYSQL* mysql = NULL;
|
||||
static const char* table = 0;
|
||||
|
||||
static const char* dirname_for_local_load= 0;
|
||||
|
||||
static void dump_local_log_entries(const char* logname);
|
||||
static void dump_remote_log_entries(const char* logname);
|
||||
static void dump_log_entries(const char* logname);
|
||||
static void dump_remote_file(NET* net, const char* fname);
|
||||
static void dump_remote_table(NET* net, const char* db, const char* table);
|
||||
static void die(const char* fmt, ...);
|
||||
static MYSQL* safe_connect();
|
||||
|
||||
@ -224,8 +222,9 @@ static struct my_option my_long_options[] =
|
||||
{"short-form", 's', "Just show the queries, no extra info.",
|
||||
(gptr*) &short_form, (gptr*) &short_form, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
{"table", 't', "Get raw table dump using COM_TABLE_DUMB.", (gptr*) &table,
|
||||
(gptr*) &table, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"socket", 'S', "Socket file to use for connection.",
|
||||
(gptr*) &sock, (gptr*) &sock, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
{"user", 'u', "Connect to the remote server as username.",
|
||||
(gptr*) &user, (gptr*) &user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
@ -369,7 +368,7 @@ static MYSQL* safe_connect()
|
||||
if(!local_mysql)
|
||||
die("Failed on mysql_init");
|
||||
|
||||
if (!mysql_real_connect(local_mysql, host, user, pass, 0, port, 0, 0))
|
||||
if (!mysql_real_connect(local_mysql, host, user, pass, 0, port, sock, 0))
|
||||
die("failed on connect: %s", mysql_error(local_mysql));
|
||||
|
||||
return local_mysql;
|
||||
@ -383,35 +382,6 @@ static void dump_log_entries(const char* logname)
|
||||
dump_local_log_entries(logname);
|
||||
}
|
||||
|
||||
static void dump_remote_table(NET* net, const char* db, const char* table)
|
||||
{
|
||||
char buf[1024];
|
||||
char * p = buf;
|
||||
uint table_len = (uint) strlen(table);
|
||||
uint db_len = (uint) strlen(db);
|
||||
if (table_len + db_len > sizeof(buf) - 2)
|
||||
die("Buffer overrun");
|
||||
|
||||
*p++ = db_len;
|
||||
memcpy(p, db, db_len);
|
||||
p += db_len;
|
||||
*p++ = table_len;
|
||||
memcpy(p, table, table_len);
|
||||
|
||||
if (simple_command(mysql, COM_TABLE_DUMP, buf, p - buf + table_len, 1))
|
||||
die("Error sending the table dump command");
|
||||
|
||||
for (;;)
|
||||
{
|
||||
uint packet_len = my_net_read(net);
|
||||
if (packet_len == 0) break; // end of file
|
||||
if (packet_len == packet_error)
|
||||
die("Error reading packet in table dump");
|
||||
my_fwrite(result_file, (byte*)net->read_pos, packet_len, MYF(MY_WME));
|
||||
fflush(result_file);
|
||||
}
|
||||
}
|
||||
|
||||
static int check_master_version(MYSQL* mysql)
|
||||
{
|
||||
MYSQL_RES* res = 0;
|
||||
@ -491,7 +461,7 @@ static void dump_remote_log_entries(const char* logname)
|
||||
len = net_safe_read(mysql);
|
||||
if (len == packet_error)
|
||||
die("Error reading packet from server: %s", mysql_error(mysql));
|
||||
if (len == 1 && net->read_pos[0] == 254)
|
||||
if (len < 8 && net->read_pos[0] == 254)
|
||||
break; // end of data
|
||||
DBUG_PRINT("info",( "len= %u, net->read_pos[5] = %d\n",
|
||||
len, net->read_pos[5]));
|
||||
@ -527,8 +497,8 @@ static int check_header(IO_CACHE* file)
|
||||
if (buf[4] == START_EVENT)
|
||||
{
|
||||
uint event_len;
|
||||
event_len = uint4korr(buf + 4);
|
||||
old_format = (event_len < LOG_EVENT_HEADER_LEN + START_HEADER_LEN);
|
||||
event_len = uint4korr(buf + EVENT_LEN_OFFSET);
|
||||
old_format = (event_len < (LOG_EVENT_HEADER_LEN + START_HEADER_LEN));
|
||||
}
|
||||
}
|
||||
my_b_seek(file, pos);
|
||||
@ -673,7 +643,7 @@ int main(int argc, char** argv)
|
||||
MY_INIT(argv[0]);
|
||||
parse_args(&argc, (char***)&argv);
|
||||
|
||||
if (!argc && !table)
|
||||
if (!argc)
|
||||
{
|
||||
usage();
|
||||
return -1;
|
||||
@ -696,22 +666,8 @@ int main(int argc, char** argv)
|
||||
else
|
||||
load_processor.init_by_cur_dir();
|
||||
|
||||
if (table)
|
||||
{
|
||||
if (!use_remote)
|
||||
die("You must specify connection parameter to get table dump");
|
||||
char* db = (char*) table;
|
||||
char* tbl = (char*) strchr(table, '.');
|
||||
if (!tbl)
|
||||
die("You must use database.table syntax to specify the table");
|
||||
*tbl++ = 0;
|
||||
dump_remote_table(&mysql->net, db, tbl);
|
||||
}
|
||||
else
|
||||
{
|
||||
while (--argc >= 0)
|
||||
dump_log_entries(*(argv++));
|
||||
}
|
||||
while (--argc >= 0)
|
||||
dump_log_entries(*(argv++));
|
||||
if (tmpdir.list)
|
||||
free_tmpdir(&tmpdir);
|
||||
if (result_file != stdout)
|
||||
|
@ -722,8 +722,8 @@ int do_wait_for_slave_to_stop(struct st_query* q __attribute__((unused)))
|
||||
int done;
|
||||
LINT_INIT(res);
|
||||
|
||||
if (mysql_query(mysql,"show status like 'Slave_running'")
|
||||
|| !(res=mysql_store_result(mysql)))
|
||||
if (mysql_query(mysql,"show status like 'Slave_running'") ||
|
||||
!(res=mysql_store_result(mysql)))
|
||||
die("Query failed while probing slave for stop: %s",
|
||||
mysql_error(mysql));
|
||||
if (!(row=mysql_fetch_row(res)) || !row[1])
|
||||
@ -1014,7 +1014,8 @@ int do_sync_with_master2(const char* p)
|
||||
if (!(row = mysql_fetch_row(res)))
|
||||
die("line %u: empty result in %s", start_lineno, query_buf);
|
||||
if (!row[0])
|
||||
die("Error on slave while syncing with master");
|
||||
die("line %u: could not sync with master ('%s' returned NULL)",
|
||||
start_lineno, query_buf);
|
||||
mysql_free_result(res);
|
||||
last_result=0;
|
||||
if (rpl_parse)
|
||||
@ -2182,19 +2183,21 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags)
|
||||
goto end; /* Ok */
|
||||
}
|
||||
}
|
||||
if (i)
|
||||
{
|
||||
replace_dynstr_append_mem(ds, mysql_error(mysql),
|
||||
strlen(mysql_error(mysql)));
|
||||
dynstr_append_mem(ds,"\n",1);
|
||||
verbose_msg("query '%s' failed with wrong errno %d instead of %d...",
|
||||
q->query, mysql_errno(mysql), q->expected_errno[0]);
|
||||
error=1;
|
||||
goto end;
|
||||
}
|
||||
replace_dynstr_append_mem(ds,mysql_error(mysql),
|
||||
DBUG_PRINT("info",("i: %d expected_errors: %d", i, q->expected_errors));
|
||||
dynstr_append_mem(ds,"ERROR ",6);
|
||||
replace_dynstr_append_mem(ds, mysql_sqlstate(mysql),
|
||||
strlen(mysql_sqlstate(mysql)));
|
||||
dynstr_append_mem(ds,": ",2);
|
||||
replace_dynstr_append_mem(ds, mysql_error(mysql),
|
||||
strlen(mysql_error(mysql)));
|
||||
dynstr_append_mem(ds,"\n",1);
|
||||
if (i)
|
||||
{
|
||||
verbose_msg("query '%s' failed with wrong errno %d instead of %d...",
|
||||
q->query, mysql_errno(mysql), q->expected_errno[0]);
|
||||
error= 1;
|
||||
goto end;
|
||||
}
|
||||
verbose_msg("query '%s' failed: %d: %s", q->query, mysql_errno(mysql),
|
||||
mysql_error(mysql));
|
||||
/*
|
||||
@ -2607,7 +2610,8 @@ int main(int argc, char **argv)
|
||||
}
|
||||
dynstr_free(&ds_res);
|
||||
|
||||
if (!silent) {
|
||||
if (!silent)
|
||||
{
|
||||
if (error)
|
||||
printf("not ok\n");
|
||||
else
|
||||
|
24
configure.in
24
configure.in
@ -755,7 +755,7 @@ AC_CHECK_LIB(crypt, crypt)
|
||||
AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT))
|
||||
|
||||
# For sem_xxx functions on Solaris 2.6
|
||||
AC_CHECK_FUNC(sem_init, , AC_CHECK_LIB(posix4))
|
||||
AC_CHECK_FUNC(sem_init, , AC_CHECK_LIB(posix4, sem_init))
|
||||
|
||||
# For compress in zlib
|
||||
MYSQL_CHECK_ZLIB_WITH_COMPRESS($with_named_zlib)
|
||||
@ -1280,12 +1280,12 @@ then
|
||||
AC_MSG_ERROR([On SCO UNIX MySQL must be compiled with gcc. See the Installation chapter in the Reference Manual.]);
|
||||
fi
|
||||
AC_MSG_RESULT("yes")
|
||||
# Hack for SCO UnixWare 7.1
|
||||
# Hack for SCO UnixWare 7.1.x
|
||||
#
|
||||
elif test "$with_named_thread" = "no"
|
||||
then
|
||||
AC_MSG_RESULT("no")
|
||||
AC_MSG_CHECKING("SCO UnixWare 7.1 native threads")
|
||||
AC_MSG_CHECKING("SCO UnixWare 7.1.x native threads")
|
||||
if expr "$SYSTEM_TYPE" : ".*sco.*" > /dev/null
|
||||
then
|
||||
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
|
||||
@ -1308,11 +1308,11 @@ then
|
||||
AC_MSG_CHECKING("for gcc")
|
||||
if expr "$CC" : ".*gcc.*"
|
||||
then
|
||||
CC="$CC -pthread -DUNIXWARE_7";
|
||||
CXX="$CXX -pthread -DUNIXWARE_7";
|
||||
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
else
|
||||
CC="$CC -Kthread -DUNIXWARE_7";
|
||||
CXX="$CXX -Kthread -DUNIXWARE_7";
|
||||
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
fi
|
||||
else
|
||||
{ echo "configure: error: Can't find thread libs on SCO UnixWare7. See the Installation chapter in the Reference Manual." 1>&2; exit 1; };
|
||||
@ -1348,10 +1348,11 @@ then
|
||||
AC_MSG_CHECKING("for gcc")
|
||||
if expr "$CC" : ".*gcc.*"
|
||||
then
|
||||
{ echo "configure: error: On SCO UnixWare7 MySQL must be compiled with cc. See the Installation chapter in the Reference Manual." 1>&2; exit 1; };
|
||||
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
else
|
||||
CC="$CC -Kthread -DUNIXWARE_7";
|
||||
CXX="$CXX -Kthread -DUNIXWARE_7";
|
||||
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
fi
|
||||
AC_MSG_RESULT("yes")
|
||||
else
|
||||
@ -1383,7 +1384,8 @@ then
|
||||
AC_MSG_CHECKING("for gcc")
|
||||
if expr "$CC" : ".*gcc.*"
|
||||
then
|
||||
{ echo "configure: error: On OpenUNIX8 and UnixWare7 MySQL must be compiled with cc. See the Installation chapter in the Reference Manual." 1>&2; exit 1; };
|
||||
CC="$CC -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
CXX="$CXX -pthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
else
|
||||
CC="$CC -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
CXX="$CXX -Kthread -DUNIXWARE_7 -DHAVE_BROKEN_RWLOCK";
|
||||
|
@ -111,7 +111,7 @@ static void usage(void)
|
||||
{
|
||||
print_version();
|
||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
|
||||
printf("Print a description for a system error code or a error code from\na MyISAM/ISAM/BDB table handler.\n");
|
||||
printf("Print a description for a system error code or an error code from\na MyISAM/ISAM/BDB table handler.\n");
|
||||
printf("If you want to get the error for a negative error code, you should use\n-- before the first error code to tell perror that there was no more options.\n\n");
|
||||
printf("Usage: %s [OPTIONS] [ERRORCODE [ERRORCODE...]]\n",my_progname);
|
||||
my_print_help(my_long_options);
|
||||
|
@ -50,6 +50,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef,
|
||||
length+= keyinfo->seg[j].length;
|
||||
if (keyinfo->seg[j].null_bit)
|
||||
{
|
||||
length++;
|
||||
if (!(keyinfo->flag & HA_NULL_ARE_EQUAL))
|
||||
keyinfo->flag|= HA_NULL_PART_KEY;
|
||||
if (keyinfo->algorithm == HA_KEY_ALG_BTREE)
|
||||
|
@ -253,7 +253,6 @@ inline double ulonglong2double(ulonglong value)
|
||||
|
||||
#define HAVE_PERROR
|
||||
#define HAVE_VFPRINT
|
||||
#define HAVE_CHSIZE /* System has chsize() function */
|
||||
#define HAVE_RENAME /* Have rename() as function */
|
||||
#define HAVE_BINARY_STREAMS /* Have "b" flag in streams */
|
||||
#define HAVE_LONG_JMP /* Have long jump function */
|
||||
|
@ -79,7 +79,7 @@ enum my_lex_states
|
||||
{
|
||||
MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT,
|
||||
MY_LEX_IDENT_SEP, MY_LEX_IDENT_START,
|
||||
MY_LEX_FOUND_IDENT, MY_LEX_SIGNED_NUMBER, MY_LEX_REAL, MY_LEX_HEX_NUMBER,
|
||||
MY_LEX_FOUND_IDENT, MY_LEX_REAL, MY_LEX_HEX_NUMBER,
|
||||
MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END,
|
||||
MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL,
|
||||
MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE,
|
||||
|
@ -257,7 +257,8 @@ enum ha_base_keytype {
|
||||
#define HA_ERR_CANNOT_ADD_FOREIGN 150 /* Cannot add a foreign key constr. */
|
||||
#define HA_ERR_NO_REFERENCED_ROW 151 /* Cannot add a child row */
|
||||
#define HA_ERR_ROW_IS_REFERENCED 152 /* Cannot delete a parent row */
|
||||
#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 153 /* Non unique key block size */
|
||||
#define HA_ERR_NO_SAVEPOINT 153 /* No savepoint with that name */
|
||||
#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 154 /* Non unique key block size */
|
||||
|
||||
/* Other constants */
|
||||
|
||||
|
@ -43,6 +43,10 @@
|
||||
#define HAVE_ERRNO_AS_DEFINE
|
||||
#endif /* __CYGWIN__ */
|
||||
|
||||
#if defined(i386) && !defined(__i386__)
|
||||
#define __i386__
|
||||
#endif
|
||||
|
||||
/* Macros to make switching between C and C++ mode easier */
|
||||
#ifdef __cplusplus
|
||||
#define C_MODE_START extern "C" {
|
||||
@ -283,7 +287,9 @@ C_MODE_END
|
||||
#endif
|
||||
#ifdef HAVE_ATOMIC_ADD
|
||||
#define __SMP__
|
||||
#ifndef CONFIG_SMP
|
||||
#define CONFIG_SMP
|
||||
#endif
|
||||
#include <asm/atomic.h>
|
||||
#endif
|
||||
#include <errno.h> /* Recommended by debian */
|
||||
@ -660,7 +666,6 @@ typedef long my_ptrdiff_t;
|
||||
typedef long long my_ptrdiff_t;
|
||||
#endif
|
||||
|
||||
|
||||
#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1))
|
||||
#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double))
|
||||
/* Size to make adressable obj. */
|
||||
@ -737,9 +742,6 @@ typedef unsigned __int64 my_ulonglong;
|
||||
typedef unsigned long long my_ulonglong;
|
||||
#endif
|
||||
|
||||
/* typedef used for length of string; Should be unsigned! */
|
||||
typedef ulong size_str;
|
||||
|
||||
#ifdef USE_RAID
|
||||
/*
|
||||
The following is done with a if to not get problems with pre-processors
|
||||
@ -920,8 +922,11 @@ typedef union {
|
||||
double v;
|
||||
long m[2];
|
||||
} doubleget_union;
|
||||
#define doubleget(V,M) { ((doubleget_union *)&V)->m[0] = *((long*) M); \
|
||||
((doubleget_union *)&V)->m[1] = *(((long*) M)+1); }
|
||||
#define doubleget(V,M) \
|
||||
{ doubleget_union _tmp; \
|
||||
_tmp.m[0] = *((long*)(M)); \
|
||||
_tmp.m[1] = *(((long*) (M))+1); \
|
||||
(V) = _tmp.v; }
|
||||
#define doublestore(T,V) { *((long *) T) = ((doubleget_union *)&V)->m[0]; \
|
||||
*(((long *) T)+1) = ((doubleget_union *)&V)->m[1]; }
|
||||
#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); }
|
||||
|
@ -135,7 +135,7 @@ extern int NEAR my_errno; /* Last error in mysys */
|
||||
#define QUICK_SAFEMALLOC sf_malloc_quick=1
|
||||
#define NORMAL_SAFEMALLOC sf_malloc_quick=0
|
||||
extern uint sf_malloc_prehunc,sf_malloc_endhunc,sf_malloc_quick;
|
||||
extern ulonglong safemalloc_mem_limit;
|
||||
extern ulonglong sf_malloc_mem_limit;
|
||||
|
||||
#define CALLER_INFO_PROTO , const char *sFile, uint uLine
|
||||
#define CALLER_INFO , __FILE__, __LINE__
|
||||
@ -240,7 +240,7 @@ extern int NEAR my_umask, /* Default creation mask */
|
||||
NEAR my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */
|
||||
NEAR my_dont_interrupt; /* call remember_intr when set */
|
||||
extern my_bool NEAR mysys_uses_curses, my_use_symdir;
|
||||
extern long lCurMemory,lMaxMemory; /* from safemalloc */
|
||||
extern ulong sf_malloc_cur_memory, sf_malloc_max_memory;
|
||||
|
||||
extern ulong my_default_record_cache_size;
|
||||
extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io,
|
||||
|
@ -253,8 +253,8 @@ unsigned long my_net_read(NET *net);
|
||||
Currently it's used internally by manager.c
|
||||
*/
|
||||
struct sockaddr;
|
||||
my_bool my_connect(my_socket s, const struct sockaddr *name,
|
||||
unsigned int namelen, unsigned int timeout);
|
||||
int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
|
||||
unsigned int timeout);
|
||||
|
||||
struct rand_struct {
|
||||
unsigned long seed1,seed2,max_value;
|
||||
|
@ -253,39 +253,40 @@
|
||||
#define ER_CANT_USE_OPTION_HERE 1234
|
||||
#define ER_NOT_SUPPORTED_YET 1235
|
||||
#define ER_MASTER_FATAL_ERROR_READING_BINLOG 1236
|
||||
#define ER_WRONG_FK_DEF 1237
|
||||
#define ER_KEY_REF_DO_NOT_MATCH_TABLE_REF 1238
|
||||
#define ER_CARDINALITY_COL 1239
|
||||
#define ER_SUBSELECT_NO_1_ROW 1240
|
||||
#define ER_UNKNOWN_STMT_HANDLER 1241
|
||||
#define ER_CORRUPT_HELP_DB 1242
|
||||
#define ER_CYCLIC_REFERENCE 1243
|
||||
#define ER_AUTO_CONVERT 1244
|
||||
#define ER_ILLEGAL_REFERENCE 1245
|
||||
#define ER_DERIVED_MUST_HAVE_ALIAS 1246
|
||||
#define ER_SELECT_REDUCED 1247
|
||||
#define ER_TABLENAME_NOT_ALLOWED_HERE 1248
|
||||
#define ER_NOT_SUPPORTED_AUTH_MODE 1249
|
||||
#define ER_SPATIAL_CANT_HAVE_NULL 1250
|
||||
#define ER_COLLATION_CHARSET_MISMATCH 1251
|
||||
#define ER_SLAVE_WAS_RUNNING 1252
|
||||
#define ER_SLAVE_WAS_NOT_RUNNING 1253
|
||||
#define ER_TOO_BIG_FOR_UNCOMPRESS 1254
|
||||
#define ER_ZLIB_Z_MEM_ERROR 1255
|
||||
#define ER_ZLIB_Z_BUF_ERROR 1256
|
||||
#define ER_ZLIB_Z_DATA_ERROR 1257
|
||||
#define ER_CUT_VALUE_GROUP_CONCAT 1258
|
||||
#define ER_WARN_TOO_FEW_RECORDS 1259
|
||||
#define ER_WARN_TOO_MANY_RECORDS 1260
|
||||
#define ER_WARN_NULL_TO_NOTNULL 1261
|
||||
#define ER_WARN_DATA_OUT_OF_RANGE 1262
|
||||
#define ER_WARN_DATA_TRUNCATED 1263
|
||||
#define ER_WARN_USING_OTHER_HANDLER 1264
|
||||
#define ER_CANT_AGGREGATE_2COLLATIONS 1265
|
||||
#define ER_DROP_USER 1266
|
||||
#define ER_REVOKE_GRANTS 1267
|
||||
#define ER_CANT_AGGREGATE_3COLLATIONS 1268
|
||||
#define ER_CANT_AGGREGATE_NCOLLATIONS 1269
|
||||
#define ER_VARIABLE_IS_NOT_STRUCT 1270
|
||||
#define ER_UNKNOWN_COLLATION 1271
|
||||
#define ER_ERROR_MESSAGES 272
|
||||
#define ER_SLAVE_IGNORED_TABLE 1237
|
||||
#define ER_WRONG_FK_DEF 1238
|
||||
#define ER_KEY_REF_DO_NOT_MATCH_TABLE_REF 1239
|
||||
#define ER_CARDINALITY_COL 1240
|
||||
#define ER_SUBSELECT_NO_1_ROW 1241
|
||||
#define ER_UNKNOWN_STMT_HANDLER 1242
|
||||
#define ER_CORRUPT_HELP_DB 1243
|
||||
#define ER_CYCLIC_REFERENCE 1244
|
||||
#define ER_AUTO_CONVERT 1245
|
||||
#define ER_ILLEGAL_REFERENCE 1246
|
||||
#define ER_DERIVED_MUST_HAVE_ALIAS 1247
|
||||
#define ER_SELECT_REDUCED 1248
|
||||
#define ER_TABLENAME_NOT_ALLOWED_HERE 1249
|
||||
#define ER_NOT_SUPPORTED_AUTH_MODE 1250
|
||||
#define ER_SPATIAL_CANT_HAVE_NULL 1251
|
||||
#define ER_COLLATION_CHARSET_MISMATCH 1252
|
||||
#define ER_SLAVE_WAS_RUNNING 1253
|
||||
#define ER_SLAVE_WAS_NOT_RUNNING 1254
|
||||
#define ER_TOO_BIG_FOR_UNCOMPRESS 1255
|
||||
#define ER_ZLIB_Z_MEM_ERROR 1256
|
||||
#define ER_ZLIB_Z_BUF_ERROR 1257
|
||||
#define ER_ZLIB_Z_DATA_ERROR 1258
|
||||
#define ER_CUT_VALUE_GROUP_CONCAT 1259
|
||||
#define ER_WARN_TOO_FEW_RECORDS 1260
|
||||
#define ER_WARN_TOO_MANY_RECORDS 1261
|
||||
#define ER_WARN_NULL_TO_NOTNULL 1262
|
||||
#define ER_WARN_DATA_OUT_OF_RANGE 1263
|
||||
#define ER_WARN_DATA_TRUNCATED 1264
|
||||
#define ER_WARN_USING_OTHER_HANDLER 1265
|
||||
#define ER_CANT_AGGREGATE_2COLLATIONS 1266
|
||||
#define ER_DROP_USER 1267
|
||||
#define ER_REVOKE_GRANTS 1268
|
||||
#define ER_CANT_AGGREGATE_3COLLATIONS 1269
|
||||
#define ER_CANT_AGGREGATE_NCOLLATIONS 1270
|
||||
#define ER_VARIABLE_IS_NOT_STRUCT 1271
|
||||
#define ER_UNKNOWN_COLLATION 1272
|
||||
#define ER_ERROR_MESSAGES 273
|
||||
|
@ -822,9 +822,16 @@ btr_page_reorganize_low(
|
||||
{
|
||||
page_t* new_page;
|
||||
ulint log_mode;
|
||||
ulint data_size1;
|
||||
ulint data_size2;
|
||||
ulint max_ins_size1;
|
||||
ulint max_ins_size2;
|
||||
|
||||
ut_ad(mtr_memo_contains(mtr, buf_block_align(page),
|
||||
MTR_MEMO_PAGE_X_FIX));
|
||||
data_size1 = page_get_data_size(page);
|
||||
max_ins_size1 = page_get_max_insert_size_after_reorganize(page, 1);
|
||||
|
||||
/* Write the log record */
|
||||
mlog_write_initial_log_record(page, MLOG_PAGE_REORGANIZE, mtr);
|
||||
|
||||
@ -859,6 +866,19 @@ btr_page_reorganize_low(
|
||||
lock_move_reorganize_page(page, new_page);
|
||||
}
|
||||
|
||||
data_size2 = page_get_data_size(page);
|
||||
max_ins_size2 = page_get_max_insert_size_after_reorganize(page, 1);
|
||||
|
||||
if (data_size1 != data_size2 || max_ins_size1 != max_ins_size2) {
|
||||
buf_page_print(page);
|
||||
buf_page_print(new_page);
|
||||
fprintf(stderr,
|
||||
"InnoDB: Error: page old data size %lu new data size %lu\n"
|
||||
"InnoDB: Error: page old max ins size %lu new max ins size %lu\n"
|
||||
"InnoDB: Make a detailed bug report and send it to mysql@lists.mysql.com\n",
|
||||
data_size1, data_size2, max_ins_size1, max_ins_size2);
|
||||
}
|
||||
|
||||
buf_frame_free(new_page);
|
||||
|
||||
/* Restore logging mode */
|
||||
@ -1945,11 +1965,20 @@ btr_compress(
|
||||
|
||||
btr_page_reorganize(merge_page, mtr);
|
||||
|
||||
max_ins_size = page_get_max_insert_size(merge_page, n_recs);
|
||||
|
||||
ut_ad(page_validate(merge_page, cursor->index));
|
||||
ut_ad(page_get_max_insert_size(merge_page, n_recs)
|
||||
== max_ins_size_reorg);
|
||||
}
|
||||
|
||||
if (data_size > max_ins_size) {
|
||||
|
||||
/* Add fault tolerance, though this should never happen */
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
btr_search_drop_page_hash_index(page);
|
||||
|
||||
/* Remove the page from the level list */
|
||||
|
@ -1110,6 +1110,10 @@ btr_cur_pessimistic_insert(
|
||||
|
||||
if (big_rec_vec == NULL) {
|
||||
|
||||
if (n_extents > 0) {
|
||||
fil_space_release_free_extents(index->space,
|
||||
n_extents);
|
||||
}
|
||||
return(DB_TOO_BIG_RECORD);
|
||||
}
|
||||
}
|
||||
@ -1367,7 +1371,8 @@ btr_cur_update_sec_rec_in_place(
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
Updates a record when the update causes no size changes in its fields. */
|
||||
Updates a record when the update causes no size changes in its fields.
|
||||
We assume here that the ordering fields of the record do not change. */
|
||||
|
||||
ulint
|
||||
btr_cur_update_in_place(
|
||||
@ -1458,7 +1463,8 @@ btr_cur_update_in_place(
|
||||
Tries to update a record on a page in an index tree. It is assumed that mtr
|
||||
holds an x-latch on the page. The operation does not succeed if there is too
|
||||
little space on the page or if the update would result in too empty a page,
|
||||
so that tree compression is recommended. */
|
||||
so that tree compression is recommended. We assume here that the ordering
|
||||
fields of the record do not change. */
|
||||
|
||||
ulint
|
||||
btr_cur_optimistic_update(
|
||||
@ -1510,10 +1516,11 @@ btr_cur_optimistic_update(
|
||||
|
||||
ut_ad(mtr_memo_contains(mtr, buf_block_align(page),
|
||||
MTR_MEMO_PAGE_X_FIX));
|
||||
if (!row_upd_changes_field_size(rec, index, update)) {
|
||||
if (!row_upd_changes_field_size_or_external(rec, index, update)) {
|
||||
|
||||
/* The simplest and most common case: the update does not
|
||||
change the size of any field */
|
||||
/* The simplest and the most common case: the update does not
|
||||
change the size of any field and none of the updated fields is
|
||||
externally stored in rec or update */
|
||||
|
||||
return(btr_cur_update_in_place(flags, cursor, update,
|
||||
cmpl_info, thr, mtr));
|
||||
@ -1542,7 +1549,7 @@ btr_cur_optimistic_update(
|
||||
|
||||
new_entry = row_rec_to_index_entry(ROW_COPY_DATA, index, rec, heap);
|
||||
|
||||
row_upd_clust_index_replace_new_col_vals(new_entry, update);
|
||||
row_upd_index_replace_new_col_vals(new_entry, index, update, NULL);
|
||||
|
||||
old_rec_size = rec_get_size(rec);
|
||||
new_rec_size = rec_get_converted_size(new_entry);
|
||||
@ -1672,54 +1679,13 @@ btr_cur_pess_upd_restore_supremum(
|
||||
lock_rec_reset_and_inherit_gap_locks(page_get_supremum_rec(prev_page),
|
||||
rec);
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
Replaces and copies the data in the new column values stored in the
|
||||
update vector to the clustered index entry given. */
|
||||
static
|
||||
void
|
||||
btr_cur_copy_new_col_vals(
|
||||
/*======================*/
|
||||
dtuple_t* entry, /* in/out: index entry where replaced */
|
||||
upd_t* update, /* in: update vector */
|
||||
mem_heap_t* heap) /* in: heap where data is copied */
|
||||
{
|
||||
upd_field_t* upd_field;
|
||||
dfield_t* dfield;
|
||||
dfield_t* new_val;
|
||||
ulint field_no;
|
||||
byte* data;
|
||||
ulint i;
|
||||
|
||||
dtuple_set_info_bits(entry, update->info_bits);
|
||||
|
||||
for (i = 0; i < upd_get_n_fields(update); i++) {
|
||||
|
||||
upd_field = upd_get_nth_field(update, i);
|
||||
|
||||
field_no = upd_field->field_no;
|
||||
|
||||
dfield = dtuple_get_nth_field(entry, field_no);
|
||||
|
||||
new_val = &(upd_field->new_val);
|
||||
|
||||
if (new_val->len == UNIV_SQL_NULL) {
|
||||
data = NULL;
|
||||
} else {
|
||||
data = mem_heap_alloc(heap, new_val->len);
|
||||
|
||||
ut_memcpy(data, new_val->data, new_val->len);
|
||||
}
|
||||
|
||||
dfield_set_data(dfield, data, new_val->len);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
Performs an update of a record on a page of a tree. It is assumed
|
||||
that mtr holds an x-latch on the tree and on the cursor page. If the
|
||||
update is made on the leaf level, to avoid deadlocks, mtr must also
|
||||
own x-latches to brothers of page, if those brothers exist. */
|
||||
own x-latches to brothers of page, if those brothers exist. We assume
|
||||
here that the ordering fields of the record do not change. */
|
||||
|
||||
ulint
|
||||
btr_cur_pessimistic_update(
|
||||
@ -1816,7 +1782,7 @@ btr_cur_pessimistic_update(
|
||||
|
||||
new_entry = row_rec_to_index_entry(ROW_COPY_DATA, index, rec, heap);
|
||||
|
||||
btr_cur_copy_new_col_vals(new_entry, update, heap);
|
||||
row_upd_index_replace_new_col_vals(new_entry, index, update, heap);
|
||||
|
||||
if (!(flags & BTR_KEEP_SYS_FLAG)) {
|
||||
row_upd_index_entry_sys_field(new_entry, index, DATA_ROLL_PTR,
|
||||
@ -1825,21 +1791,6 @@ btr_cur_pessimistic_update(
|
||||
trx->id);
|
||||
}
|
||||
|
||||
page_cursor = btr_cur_get_page_cur(cursor);
|
||||
|
||||
/* Store state of explicit locks on rec on the page infimum record,
|
||||
before deleting rec. The page infimum acts as a dummy carrier of the
|
||||
locks, taking care also of lock releases, before we can move the locks
|
||||
back on the actual record. There is a special case: if we are
|
||||
inserting on the root page and the insert causes a call of
|
||||
btr_root_raise_and_insert. Therefore we cannot in the lock system
|
||||
delete the lock structs set on the root page even if the root
|
||||
page carries just node pointers. */
|
||||
|
||||
lock_rec_store_on_page_infimum(rec);
|
||||
|
||||
btr_search_update_hash_on_delete(cursor);
|
||||
|
||||
if (flags & BTR_NO_UNDO_LOG_FLAG) {
|
||||
/* We are in a transaction rollback undoing a row
|
||||
update: we must free possible externally stored fields
|
||||
@ -1860,10 +1811,6 @@ btr_cur_pessimistic_update(
|
||||
ext_vect = mem_heap_alloc(heap, sizeof(ulint) * rec_get_n_fields(rec));
|
||||
n_ext_vect = btr_push_update_extern_fields(ext_vect, rec, update);
|
||||
|
||||
page_cur_delete_rec(page_cursor, mtr);
|
||||
|
||||
page_cur_move_to_prev(page_cursor);
|
||||
|
||||
if ((rec_get_converted_size(new_entry) >=
|
||||
page_get_free_space_of_empty() / 2)
|
||||
|| (rec_get_converted_size(new_entry) >= REC_MAX_DATA_SIZE)) {
|
||||
@ -1874,10 +1821,31 @@ btr_cur_pessimistic_update(
|
||||
|
||||
mem_heap_free(heap);
|
||||
|
||||
err = DB_TOO_BIG_RECORD;
|
||||
|
||||
goto return_after_reservations;
|
||||
}
|
||||
}
|
||||
|
||||
page_cursor = btr_cur_get_page_cur(cursor);
|
||||
|
||||
/* Store state of explicit locks on rec on the page infimum record,
|
||||
before deleting rec. The page infimum acts as a dummy carrier of the
|
||||
locks, taking care also of lock releases, before we can move the locks
|
||||
back on the actual record. There is a special case: if we are
|
||||
inserting on the root page and the insert causes a call of
|
||||
btr_root_raise_and_insert. Therefore we cannot in the lock system
|
||||
delete the lock structs set on the root page even if the root
|
||||
page carries just node pointers. */
|
||||
|
||||
lock_rec_store_on_page_infimum(rec);
|
||||
|
||||
btr_search_update_hash_on_delete(cursor);
|
||||
|
||||
page_cur_delete_rec(page_cursor, mtr);
|
||||
|
||||
page_cur_move_to_prev(page_cursor);
|
||||
|
||||
rec = btr_cur_insert_if_possible(cursor, new_entry,
|
||||
&dummy_reorganized, mtr);
|
||||
ut_a(rec || optim_err != DB_UNDERFLOW);
|
||||
@ -3372,8 +3340,8 @@ btr_free_externally_stored_field(
|
||||
page_no = mach_read_from_4(data + local_len
|
||||
+ BTR_EXTERN_PAGE_NO);
|
||||
|
||||
offset = mach_read_from_4(data + local_len + BTR_EXTERN_OFFSET);
|
||||
|
||||
offset = mach_read_from_4(data + local_len
|
||||
+ BTR_EXTERN_OFFSET);
|
||||
extern_len = mach_read_from_4(data + local_len
|
||||
+ BTR_EXTERN_LEN + 4);
|
||||
|
||||
|
@ -381,6 +381,8 @@ btr_pcur_move_to_next_page(
|
||||
btr_leaf_page_release(page, cursor->latch_mode, mtr);
|
||||
|
||||
page_cur_set_before_first(next_page, btr_pcur_get_page_cur(cursor));
|
||||
|
||||
page_check_dir(next_page);
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
|
@ -34,6 +34,7 @@ Created 11/5/1995 Heikki Tuuri
|
||||
#include "ibuf0ibuf.h"
|
||||
#include "dict0dict.h"
|
||||
#include "log0recv.h"
|
||||
#include "log0log.h"
|
||||
#include "trx0undo.h"
|
||||
#include "srv0srv.h"
|
||||
|
||||
@ -231,12 +232,12 @@ ibool buf_debug_prints = FALSE; /* If this is set TRUE,
|
||||
|
||||
/************************************************************************
|
||||
Calculates a page checksum which is stored to the page when it is written
|
||||
to a file. Note that we must be careful to calculate the same value
|
||||
on 32-bit and 64-bit architectures. */
|
||||
to a file. Note that we must be careful to calculate the same value on
|
||||
32-bit and 64-bit architectures. */
|
||||
|
||||
ulint
|
||||
buf_calc_page_checksum(
|
||||
/*===================*/
|
||||
buf_calc_page_new_checksum(
|
||||
/*=======================*/
|
||||
/* out: checksum */
|
||||
byte* page) /* in: buffer page */
|
||||
{
|
||||
@ -244,12 +245,39 @@ buf_calc_page_checksum(
|
||||
|
||||
/* Since the fields FIL_PAGE_FILE_FLUSH_LSN and ..._ARCH_LOG_NO
|
||||
are written outside the buffer pool to the first pages of data
|
||||
files, we have to skip them in page checksum calculation */
|
||||
files, we have to skip them in the page checksum calculation.
|
||||
We must also skip the field FIL_PAGE_SPACE_OR_CHKSUM where the
|
||||
checksum is stored, and also the last 8 bytes of page because
|
||||
there we store the old formula checksum. */
|
||||
|
||||
checksum = ut_fold_binary(page + FIL_PAGE_OFFSET,
|
||||
FIL_PAGE_FILE_FLUSH_LSN - FIL_PAGE_OFFSET)
|
||||
+ ut_fold_binary(page + FIL_PAGE_DATA,
|
||||
UNIV_PAGE_SIZE - FIL_PAGE_DATA
|
||||
- FIL_PAGE_END_LSN_OLD_CHKSUM);
|
||||
checksum = checksum & 0xFFFFFFFF;
|
||||
|
||||
return(checksum);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
In versions < 4.0.14 and < 4.1.1 there was a bug that the checksum only
|
||||
looked at the first few bytes of the page. This calculates that old
|
||||
checksum.
|
||||
NOTE: we must first store the new formula checksum to
|
||||
FIL_PAGE_SPACE_OR_CHKSUM before calculating and storing this old checksum
|
||||
because this takes that field as an input! */
|
||||
|
||||
ulint
|
||||
buf_calc_page_old_checksum(
|
||||
/*=======================*/
|
||||
/* out: checksum */
|
||||
byte* page) /* in: buffer page */
|
||||
{
|
||||
ulint checksum;
|
||||
|
||||
checksum = ut_fold_binary(page, FIL_PAGE_FILE_FLUSH_LSN);
|
||||
+ ut_fold_binary(page + FIL_PAGE_DATA,
|
||||
UNIV_PAGE_SIZE - FIL_PAGE_DATA
|
||||
- FIL_PAGE_END_LSN);
|
||||
|
||||
checksum = checksum & 0xFFFFFFFF;
|
||||
|
||||
return(checksum);
|
||||
@ -265,27 +293,69 @@ buf_page_is_corrupted(
|
||||
byte* read_buf) /* in: a database page */
|
||||
{
|
||||
ulint checksum;
|
||||
ulint old_checksum;
|
||||
ulint checksum_field;
|
||||
ulint old_checksum_field;
|
||||
dulint current_lsn;
|
||||
|
||||
checksum = buf_calc_page_checksum(read_buf);
|
||||
if (mach_read_from_4(read_buf + FIL_PAGE_LSN + 4)
|
||||
!= mach_read_from_4(read_buf + UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN_OLD_CHKSUM + 4)) {
|
||||
|
||||
/* Stored log sequence numbers at the start and the end
|
||||
of page do not match */
|
||||
|
||||
/* Note that InnoDB initializes empty pages to zero, and
|
||||
early versions of InnoDB did not store page checksum to
|
||||
the 4 most significant bytes of the page lsn field at the
|
||||
end of a page: */
|
||||
|
||||
if ((mach_read_from_4(read_buf + FIL_PAGE_LSN + 4)
|
||||
!= mach_read_from_4(read_buf + UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN + 4))
|
||||
|| (checksum != mach_read_from_4(read_buf
|
||||
+ UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN)
|
||||
&& mach_read_from_4(read_buf + FIL_PAGE_LSN)
|
||||
!= mach_read_from_4(read_buf
|
||||
+ UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN))) {
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
if (recv_lsn_checks_on && log_peek_lsn(¤t_lsn)) {
|
||||
if (ut_dulint_cmp(current_lsn,
|
||||
mach_read_from_8(read_buf + FIL_PAGE_LSN))
|
||||
< 0) {
|
||||
ut_print_timestamp(stderr);
|
||||
|
||||
fprintf(stderr,
|
||||
" InnoDB: Error: page %lu log sequence number %lu %lu\n"
|
||||
"InnoDB: is in the future! Current system log sequence number %lu %lu.\n"
|
||||
"InnoDB: Your database may be corrupt.\n",
|
||||
mach_read_from_4(read_buf + FIL_PAGE_OFFSET),
|
||||
ut_dulint_get_high(
|
||||
mach_read_from_8(read_buf + FIL_PAGE_LSN)),
|
||||
ut_dulint_get_low(
|
||||
mach_read_from_8(read_buf + FIL_PAGE_LSN)),
|
||||
ut_dulint_get_high(current_lsn),
|
||||
ut_dulint_get_low(current_lsn));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
old_checksum = buf_calc_page_old_checksum(read_buf);
|
||||
|
||||
old_checksum_field = mach_read_from_4(read_buf + UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN_OLD_CHKSUM);
|
||||
|
||||
/* There are 2 valid formulas for old_checksum_field:
|
||||
1. Very old versions of InnoDB only stored 8 byte lsn to the start
|
||||
and the end of the page.
|
||||
2. Newer InnoDB versions store the old formula checksum there. */
|
||||
|
||||
if (old_checksum_field != mach_read_from_4(read_buf + FIL_PAGE_LSN)
|
||||
&& old_checksum_field != old_checksum) {
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
checksum = buf_calc_page_new_checksum(read_buf);
|
||||
checksum_field = mach_read_from_4(read_buf + FIL_PAGE_SPACE_OR_CHKSUM);
|
||||
|
||||
/* InnoDB versions < 4.0.14 and < 4.1.1 stored the space id
|
||||
(always equal to 0), to FIL_PAGE_SPACE_SPACE_OR_CHKSUM */
|
||||
|
||||
if (checksum_field != 0 && checksum_field != checksum) {
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
@ -299,6 +369,7 @@ buf_page_print(
|
||||
{
|
||||
dict_index_t* index;
|
||||
ulint checksum;
|
||||
ulint old_checksum;
|
||||
char* buf;
|
||||
|
||||
buf = mem_alloc(4 * UNIV_PAGE_SIZE);
|
||||
@ -313,19 +384,23 @@ buf_page_print(
|
||||
|
||||
mem_free(buf);
|
||||
|
||||
checksum = buf_calc_page_checksum(read_buf);
|
||||
checksum = buf_calc_page_new_checksum(read_buf);
|
||||
old_checksum = buf_calc_page_old_checksum(read_buf);
|
||||
|
||||
ut_print_timestamp(stderr);
|
||||
fprintf(stderr, " InnoDB: Page checksum %lu stored checksum %lu\n",
|
||||
checksum, mach_read_from_4(read_buf
|
||||
+ UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN));
|
||||
fprintf(stderr,
|
||||
" InnoDB: Page checksum %lu, prior-to-4.0.14-form checksum %lu\n"
|
||||
"InnoDB: stored checksum %lu, prior-to-4.0.14-form stored checksum %lu\n",
|
||||
checksum, old_checksum,
|
||||
mach_read_from_4(read_buf + FIL_PAGE_SPACE_OR_CHKSUM),
|
||||
mach_read_from_4(read_buf + UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN_OLD_CHKSUM));
|
||||
fprintf(stderr,
|
||||
"InnoDB: Page lsn %lu %lu, low 4 bytes of lsn at page end %lu\n",
|
||||
mach_read_from_4(read_buf + FIL_PAGE_LSN),
|
||||
mach_read_from_4(read_buf + FIL_PAGE_LSN + 4),
|
||||
mach_read_from_4(read_buf + UNIV_PAGE_SIZE
|
||||
- FIL_PAGE_END_LSN + 4));
|
||||
- FIL_PAGE_END_LSN_OLD_CHKSUM + 4));
|
||||
if (mach_read_from_2(read_buf + TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_TYPE)
|
||||
== TRX_UNDO_INSERT) {
|
||||
fprintf(stderr,
|
||||
|
@ -361,21 +361,29 @@ buf_flush_init_for_writing(
|
||||
ulint space, /* in: space id */
|
||||
ulint page_no) /* in: page number */
|
||||
{
|
||||
/* Write the newest modification lsn to the page */
|
||||
UT_NOT_USED(space);
|
||||
|
||||
/* Write the newest modification lsn to the page header and trailer */
|
||||
mach_write_to_8(page + FIL_PAGE_LSN, newest_lsn);
|
||||
|
||||
mach_write_to_8(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN, newest_lsn);
|
||||
mach_write_to_8(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM,
|
||||
newest_lsn);
|
||||
/* Write the page number */
|
||||
|
||||
/* Write to the page the space id and page number */
|
||||
|
||||
mach_write_to_4(page + FIL_PAGE_SPACE, space);
|
||||
mach_write_to_4(page + FIL_PAGE_OFFSET, page_no);
|
||||
|
||||
/* We overwrite the first 4 bytes of the end lsn field to store
|
||||
a page checksum */
|
||||
/* Store the new formula checksum */
|
||||
|
||||
mach_write_to_4(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN,
|
||||
buf_calc_page_checksum(page));
|
||||
mach_write_to_4(page + FIL_PAGE_SPACE_OR_CHKSUM,
|
||||
buf_calc_page_new_checksum(page));
|
||||
|
||||
/* We overwrite the first 4 bytes of the end lsn field to store
|
||||
the old formula checksum. Since it depends also on the field
|
||||
FIL_PAGE_SPACE_OR_CHKSUM, it has to be calculated after storing the
|
||||
new formula checksum. */
|
||||
|
||||
mach_write_to_4(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM,
|
||||
buf_calc_page_old_checksum(page));
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
|
@ -584,8 +584,7 @@ dtuple_convert_big_rec(
|
||||
* sizeof(big_rec_field_t));
|
||||
|
||||
/* Decide which fields to shorten: the algorithm is to look for
|
||||
the longest field which does not occur in the ordering part
|
||||
of any index on the table */
|
||||
the longest field whose type is DATA_BLOB */
|
||||
|
||||
n_fields = 0;
|
||||
|
||||
@ -610,12 +609,9 @@ dtuple_convert_big_rec(
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip over fields which are ordering in some index */
|
||||
|
||||
if (!is_externally_stored &&
|
||||
dict_field_get_col(
|
||||
dict_index_get_nth_field(index, i))
|
||||
->ord_part == 0) {
|
||||
if (!is_externally_stored
|
||||
&& dict_index_get_nth_type(index, i)->mtype
|
||||
== DATA_BLOB) {
|
||||
|
||||
dfield = dtuple_get_nth_field(entry, i);
|
||||
|
||||
@ -629,9 +625,13 @@ dtuple_convert_big_rec(
|
||||
}
|
||||
}
|
||||
|
||||
if (longest < BTR_EXTERN_FIELD_REF_SIZE + 10
|
||||
+ REC_1BYTE_OFFS_LIMIT) {
|
||||
/* We do not store externally fields which are smaller than
|
||||
DICT_MAX_COL_PREFIX_LEN */
|
||||
|
||||
ut_a(DICT_MAX_COL_PREFIX_LEN > REC_1BYTE_OFFS_LIMIT);
|
||||
|
||||
if (longest < BTR_EXTERN_FIELD_REF_SIZE + 10
|
||||
+ DICT_MAX_COL_PREFIX_LEN) {
|
||||
/* Cannot shorten more */
|
||||
|
||||
mem_heap_free(heap);
|
||||
@ -644,13 +644,19 @@ dtuple_convert_big_rec(
|
||||
drop below 128 which is the limit for the 2-byte
|
||||
offset storage format in a physical record. This
|
||||
we accomplish by storing 128 bytes of data in entry
|
||||
itself, and only the remaining part to big rec vec. */
|
||||
itself, and only the remaining part to big rec vec.
|
||||
|
||||
We store the first bytes locally to the record. Then
|
||||
we can calculate all ordering fields in all indexes
|
||||
from locally stored data. */
|
||||
|
||||
dfield = dtuple_get_nth_field(entry, longest_i);
|
||||
vector->fields[n_fields].field_no = longest_i;
|
||||
|
||||
ut_a(dfield->len > DICT_MAX_COL_PREFIX_LEN);
|
||||
|
||||
vector->fields[n_fields].len = dfield->len
|
||||
- REC_1BYTE_OFFS_LIMIT;
|
||||
- DICT_MAX_COL_PREFIX_LEN;
|
||||
|
||||
vector->fields[n_fields].data = mem_heap_alloc(heap,
|
||||
vector->fields[n_fields].len);
|
||||
|
@ -85,8 +85,6 @@ dtype_print(
|
||||
printf("DATA_MIX_ID");
|
||||
} else if (prtype == DATA_ENGLISH) {
|
||||
printf("DATA_ENGLISH");
|
||||
} else if (prtype == DATA_FINNISH) {
|
||||
printf("DATA_FINNISH");
|
||||
} else {
|
||||
printf("prtype %lu", mtype);
|
||||
}
|
||||
|
@ -276,7 +276,7 @@ dict_boot(void)
|
||||
DICT_HDR_SPACE,
|
||||
DICT_UNIQUE | DICT_CLUSTERED, 1);
|
||||
|
||||
dict_mem_index_add_field(index, (char *) "NAME", 0);
|
||||
dict_mem_index_add_field(index, (char *) "NAME", 0, 0);
|
||||
|
||||
index->page_no = mtr_read_ulint(dict_hdr + DICT_HDR_TABLES,
|
||||
MLOG_4BYTES, &mtr);
|
||||
@ -287,7 +287,7 @@ dict_boot(void)
|
||||
index = dict_mem_index_create((char *) "SYS_TABLES",
|
||||
(char *) "ID_IND", DICT_HDR_SPACE,
|
||||
DICT_UNIQUE, 1);
|
||||
dict_mem_index_add_field(index, (char *) "ID", 0);
|
||||
dict_mem_index_add_field(index, (char *) "ID", 0, 0);
|
||||
|
||||
index->page_no = mtr_read_ulint(dict_hdr + DICT_HDR_TABLE_IDS,
|
||||
MLOG_4BYTES, &mtr);
|
||||
@ -313,8 +313,8 @@ dict_boot(void)
|
||||
(char *) "CLUST_IND", DICT_HDR_SPACE,
|
||||
DICT_UNIQUE | DICT_CLUSTERED, 2);
|
||||
|
||||
dict_mem_index_add_field(index, (char *) "TABLE_ID", 0);
|
||||
dict_mem_index_add_field(index, (char *) "POS", 0);
|
||||
dict_mem_index_add_field(index, (char *) "TABLE_ID", 0, 0);
|
||||
dict_mem_index_add_field(index, (char *) "POS", 0, 0);
|
||||
|
||||
index->page_no = mtr_read_ulint(dict_hdr + DICT_HDR_COLUMNS,
|
||||
MLOG_4BYTES, &mtr);
|
||||
@ -343,8 +343,8 @@ dict_boot(void)
|
||||
(char *) "CLUST_IND", DICT_HDR_SPACE,
|
||||
DICT_UNIQUE | DICT_CLUSTERED, 2);
|
||||
|
||||
dict_mem_index_add_field(index, (char *) "TABLE_ID", 0);
|
||||
dict_mem_index_add_field(index, (char *) "ID", 0);
|
||||
dict_mem_index_add_field(index, (char *) "TABLE_ID", 0, 0);
|
||||
dict_mem_index_add_field(index, (char *) "ID", 0, 0);
|
||||
|
||||
index->page_no = mtr_read_ulint(dict_hdr + DICT_HDR_INDEXES,
|
||||
MLOG_4BYTES, &mtr);
|
||||
@ -365,8 +365,8 @@ dict_boot(void)
|
||||
(char *) "CLUST_IND", DICT_HDR_SPACE,
|
||||
DICT_UNIQUE | DICT_CLUSTERED, 2);
|
||||
|
||||
dict_mem_index_add_field(index, (char *) "INDEX_ID", 0);
|
||||
dict_mem_index_add_field(index, (char *) "POS", 0);
|
||||
dict_mem_index_add_field(index, (char *) "INDEX_ID", 0, 0);
|
||||
dict_mem_index_add_field(index, (char *) "POS", 0, 0);
|
||||
|
||||
index->page_no = mtr_read_ulint(dict_hdr + DICT_HDR_FIELDS,
|
||||
MLOG_4BYTES, &mtr);
|
||||
|
@ -337,7 +337,7 @@ dict_create_index_for_cluster_step(
|
||||
|
||||
for (i = 0; i < table->n_cols; i++) {
|
||||
col = dict_table_get_nth_col(table, i);
|
||||
dict_mem_index_add_field(index, col->name, 0);
|
||||
dict_mem_index_add_field(index, col->name, 0, 0);
|
||||
}
|
||||
|
||||
(node->cluster)->index = index;
|
||||
@ -450,9 +450,17 @@ dict_create_sys_fields_tuple(
|
||||
dict_field_t* field;
|
||||
dfield_t* dfield;
|
||||
byte* ptr;
|
||||
ibool index_contains_column_prefix_field = FALSE;
|
||||
ulint j;
|
||||
|
||||
ut_ad(index && heap);
|
||||
|
||||
for (j = 0; j < index->n_fields; j++) {
|
||||
if (dict_index_get_nth_field(index, j)->prefix_len > 0) {
|
||||
index_contains_column_prefix_field = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
field = dict_index_get_nth_field(index, i);
|
||||
|
||||
sys_fields = dict_sys->sys_fields;
|
||||
@ -466,11 +474,25 @@ dict_create_sys_fields_tuple(
|
||||
mach_write_to_8(ptr, index->id);
|
||||
|
||||
dfield_set_data(dfield, ptr, 8);
|
||||
/* 1: POS ----------------------------*/
|
||||
/* 1: POS + PREFIX LENGTH ----------------------------*/
|
||||
|
||||
dfield = dtuple_get_nth_field(entry, 1);
|
||||
|
||||
ptr = mem_heap_alloc(heap, 4);
|
||||
mach_write_to_4(ptr, i);
|
||||
|
||||
if (index_contains_column_prefix_field) {
|
||||
/* If there are column prefix fields in the index, then
|
||||
we store the number of the field to the 2 HIGH bytes
|
||||
and the prefix length to the 2 low bytes, */
|
||||
|
||||
mach_write_to_4(ptr, (i << 16) + field->prefix_len);
|
||||
} else {
|
||||
/* Else we store the number of the field to the 2 LOW bytes.
|
||||
This is to keep the storage format compatible with
|
||||
InnoDB versions < 4.0.14. */
|
||||
|
||||
mach_write_to_4(ptr, i);
|
||||
}
|
||||
|
||||
dfield_set_data(dfield, ptr, 4);
|
||||
/* 4: COL_NAME -------------------------*/
|
||||
|
@ -88,15 +88,6 @@ dict_index_remove_from_cache(
|
||||
dict_table_t* table, /* in: table */
|
||||
dict_index_t* index); /* in, own: index */
|
||||
/***********************************************************************
|
||||
Adds a column to index. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
dict_index_add_col(
|
||||
/*===============*/
|
||||
dict_index_t* index, /* in: index */
|
||||
dict_col_t* col, /* in: column */
|
||||
ulint order); /* in: order criterion */
|
||||
/***********************************************************************
|
||||
Copies fields contained in index2 to index1. */
|
||||
static
|
||||
void
|
||||
@ -482,8 +473,9 @@ dict_index_get_nth_col_pos(
|
||||
ut_ad(index);
|
||||
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
|
||||
|
||||
col = dict_table_get_nth_col(index->table, n);
|
||||
|
||||
if (index->type & DICT_CLUSTERED) {
|
||||
col = dict_table_get_nth_col(index->table, n);
|
||||
|
||||
return(col->clust_pos);
|
||||
}
|
||||
@ -492,9 +484,8 @@ dict_index_get_nth_col_pos(
|
||||
|
||||
for (pos = 0; pos < n_fields; pos++) {
|
||||
field = dict_index_get_nth_field(index, pos);
|
||||
col = field->col;
|
||||
|
||||
if (dict_col_get_no(col) == n) {
|
||||
if (col == field->col && field->prefix_len == 0) {
|
||||
|
||||
return(pos);
|
||||
}
|
||||
@ -502,7 +493,86 @@ dict_index_get_nth_col_pos(
|
||||
|
||||
return(ULINT_UNDEFINED);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
Returns TRUE if the index contains a column or a prefix of that column. */
|
||||
|
||||
ibool
|
||||
dict_index_contains_col_or_prefix(
|
||||
/*==============================*/
|
||||
/* out: TRUE if contains the column or its
|
||||
prefix */
|
||||
dict_index_t* index, /* in: index */
|
||||
ulint n) /* in: column number */
|
||||
{
|
||||
dict_field_t* field;
|
||||
dict_col_t* col;
|
||||
ulint pos;
|
||||
ulint n_fields;
|
||||
|
||||
ut_ad(index);
|
||||
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
|
||||
|
||||
if (index->type & DICT_CLUSTERED) {
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
col = dict_table_get_nth_col(index->table, n);
|
||||
|
||||
n_fields = dict_index_get_n_fields(index);
|
||||
|
||||
for (pos = 0; pos < n_fields; pos++) {
|
||||
field = dict_index_get_nth_field(index, pos);
|
||||
|
||||
if (col == field->col) {
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
Looks for a matching field in an index. The column and the prefix len have
|
||||
to be the same. */
|
||||
|
||||
ulint
|
||||
dict_index_get_nth_field_pos(
|
||||
/*=========================*/
|
||||
/* out: position in internal representation
|
||||
of the index; if not contained, returns
|
||||
ULINT_UNDEFINED */
|
||||
dict_index_t* index, /* in: index from which to search */
|
||||
dict_index_t* index2, /* in: index */
|
||||
ulint n) /* in: field number in index2 */
|
||||
{
|
||||
dict_field_t* field;
|
||||
dict_field_t* field2;
|
||||
ulint n_fields;
|
||||
ulint pos;
|
||||
|
||||
ut_ad(index);
|
||||
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
|
||||
|
||||
field2 = dict_index_get_nth_field(index2, n);
|
||||
|
||||
n_fields = dict_index_get_n_fields(index);
|
||||
|
||||
for (pos = 0; pos < n_fields; pos++) {
|
||||
field = dict_index_get_nth_field(index, pos);
|
||||
|
||||
if (field->col == field2->col
|
||||
&& field->prefix_len == field2->prefix_len) {
|
||||
|
||||
return(pos);
|
||||
}
|
||||
}
|
||||
|
||||
return(ULINT_UNDEFINED);
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Returns a table object, based on table id, and memoryfixes it. */
|
||||
|
||||
@ -622,8 +692,7 @@ dict_table_get(
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Returns a table object and increments MySQL open handle count on the table.
|
||||
*/
|
||||
Returns a table object and increments MySQL open handle count on the table. */
|
||||
|
||||
dict_table_t*
|
||||
dict_table_get_and_increment_handle_count(
|
||||
@ -732,11 +801,12 @@ dict_table_add_to_cache(
|
||||
}
|
||||
|
||||
/* Add table to hash table of tables */
|
||||
HASH_INSERT(dict_table_t, name_hash, dict_sys->table_hash, fold, table);
|
||||
HASH_INSERT(dict_table_t, name_hash, dict_sys->table_hash, fold,
|
||||
table);
|
||||
|
||||
/* Add table to hash table of tables based on table id */
|
||||
HASH_INSERT(dict_table_t, id_hash, dict_sys->table_id_hash, id_fold,
|
||||
table);
|
||||
table);
|
||||
/* Add table to LRU list of tables */
|
||||
UT_LIST_ADD_FIRST(table_LRU, dict_sys->table_LRU, table);
|
||||
|
||||
@ -828,7 +898,7 @@ dict_table_rename_in_cache(
|
||||
|
||||
/* Remove table from the hash tables of tables */
|
||||
HASH_DELETE(dict_table_t, name_hash, dict_sys->table_hash,
|
||||
ut_fold_string(table->name), table);
|
||||
ut_fold_string(table->name), table);
|
||||
|
||||
name_buf = mem_heap_alloc(table->heap, ut_strlen(new_name) + 1);
|
||||
|
||||
@ -837,7 +907,8 @@ dict_table_rename_in_cache(
|
||||
table->name = name_buf;
|
||||
|
||||
/* Add table to hash table of tables */
|
||||
HASH_INSERT(dict_table_t, name_hash, dict_sys->table_hash, fold, table);
|
||||
HASH_INSERT(dict_table_t, name_hash, dict_sys->table_hash, fold,
|
||||
table);
|
||||
|
||||
dict_sys->size += (mem_heap_get_size(table->heap) - old_size);
|
||||
|
||||
@ -1128,7 +1199,6 @@ dict_index_add_to_cache(
|
||||
ulint n_ord;
|
||||
ibool success;
|
||||
ulint i;
|
||||
ulint j;
|
||||
|
||||
ut_ad(index);
|
||||
ut_ad(mutex_own(&(dict_sys->mutex)));
|
||||
@ -1158,28 +1228,6 @@ dict_index_add_to_cache(
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
/* Check that the same column does not appear twice in the index.
|
||||
InnoDB assumes this in its algorithms, e.g., update of an index
|
||||
entry */
|
||||
|
||||
for (i = 0; i < dict_index_get_n_fields(index); i++) {
|
||||
|
||||
for (j = 0; j < i; j++) {
|
||||
if (dict_index_get_nth_field(index, j)->col
|
||||
== dict_index_get_nth_field(index, i)->col) {
|
||||
|
||||
ut_print_timestamp(stderr);
|
||||
|
||||
fprintf(stderr,
|
||||
" InnoDB: Error: column %s appears twice in index %s of table %s\n"
|
||||
"InnoDB: This is not allowed in InnoDB.\n"
|
||||
"InnoDB: UPDATE can cause such an index to become corrupt in InnoDB.\n",
|
||||
dict_index_get_nth_field(index, i)->col->name,
|
||||
index->name, table->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Build the cache internal representation of the index,
|
||||
containing also the added system fields */
|
||||
@ -1223,8 +1271,8 @@ dict_index_add_to_cache(
|
||||
|
||||
cluster = dict_table_get_low(table->cluster_name);
|
||||
|
||||
tree = dict_index_get_tree(UT_LIST_GET_FIRST(cluster->indexes));
|
||||
|
||||
tree = dict_index_get_tree(
|
||||
UT_LIST_GET_FIRST(cluster->indexes));
|
||||
new_index->tree = tree;
|
||||
new_index->page_no = tree->page;
|
||||
} else {
|
||||
@ -1352,13 +1400,14 @@ UNIV_INLINE
|
||||
void
|
||||
dict_index_add_col(
|
||||
/*===============*/
|
||||
dict_index_t* index, /* in: index */
|
||||
dict_col_t* col, /* in: column */
|
||||
ulint order) /* in: order criterion */
|
||||
dict_index_t* index, /* in: index */
|
||||
dict_col_t* col, /* in: column */
|
||||
ulint order, /* in: order criterion */
|
||||
ulint prefix_len) /* in: column prefix length */
|
||||
{
|
||||
dict_field_t* field;
|
||||
|
||||
dict_mem_index_add_field(index, col->name, order);
|
||||
dict_mem_index_add_field(index, col->name, order, prefix_len);
|
||||
|
||||
field = dict_index_get_nth_field(index, index->n_def - 1);
|
||||
|
||||
@ -1384,7 +1433,8 @@ dict_index_copy(
|
||||
for (i = start; i < end; i++) {
|
||||
|
||||
field = dict_index_get_nth_field(index2, i);
|
||||
dict_index_add_col(index1, field->col, field->order);
|
||||
dict_index_add_col(index1, field->col, field->order,
|
||||
field->prefix_len);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1487,7 +1537,7 @@ dict_index_build_internal_clust(
|
||||
|
||||
/* Add the mix id column */
|
||||
dict_index_add_col(new_index,
|
||||
dict_table_get_sys_col(table, DATA_MIX_ID), 0);
|
||||
dict_table_get_sys_col(table, DATA_MIX_ID), 0, 0);
|
||||
|
||||
/* Copy the rest of fields */
|
||||
dict_index_copy(new_index, index, table->mix_len,
|
||||
@ -1525,14 +1575,15 @@ dict_index_build_internal_clust(
|
||||
|
||||
if (!(index->type & DICT_UNIQUE)) {
|
||||
dict_index_add_col(new_index,
|
||||
dict_table_get_sys_col(table, DATA_ROW_ID), 0);
|
||||
dict_table_get_sys_col(table, DATA_ROW_ID), 0, 0);
|
||||
trx_id_pos++;
|
||||
}
|
||||
|
||||
dict_index_add_col(new_index,
|
||||
dict_table_get_sys_col(table, DATA_TRX_ID), 0);
|
||||
dict_table_get_sys_col(table, DATA_TRX_ID), 0, 0);
|
||||
|
||||
dict_index_add_col(new_index,
|
||||
dict_table_get_sys_col(table, DATA_ROLL_PTR), 0);
|
||||
dict_table_get_sys_col(table, DATA_ROLL_PTR), 0, 0);
|
||||
|
||||
for (i = 0; i < trx_id_pos; i++) {
|
||||
|
||||
@ -1561,7 +1612,14 @@ dict_index_build_internal_clust(
|
||||
for (i = 0; i < new_index->n_def; i++) {
|
||||
|
||||
field = dict_index_get_nth_field(new_index, i);
|
||||
(field->col)->aux = 0;
|
||||
|
||||
/* If there is only a prefix of the column in the index
|
||||
field, do not mark the column as contained in the index */
|
||||
|
||||
if (field->prefix_len == 0) {
|
||||
|
||||
field->col->aux = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add to new_index non-system columns of table not yet included
|
||||
@ -1572,7 +1630,7 @@ dict_index_build_internal_clust(
|
||||
ut_ad(col->type.mtype != DATA_SYS);
|
||||
|
||||
if (col->aux == ULINT_UNDEFINED) {
|
||||
dict_index_add_col(new_index, col, 0);
|
||||
dict_index_add_col(new_index, col, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1584,7 +1642,11 @@ dict_index_build_internal_clust(
|
||||
|
||||
for (i = 0; i < new_index->n_def; i++) {
|
||||
field = dict_index_get_nth_field(new_index, i);
|
||||
(field->col)->clust_pos = i;
|
||||
|
||||
if (field->prefix_len == 0) {
|
||||
|
||||
field->col->clust_pos = i;
|
||||
}
|
||||
}
|
||||
|
||||
new_index->cached = TRUE;
|
||||
@ -1646,25 +1708,33 @@ dict_index_build_internal_non_clust(
|
||||
for (i = 0; i < clust_index->n_uniq; i++) {
|
||||
|
||||
field = dict_index_get_nth_field(clust_index, i);
|
||||
(field->col)->aux = ULINT_UNDEFINED;
|
||||
field->col->aux = ULINT_UNDEFINED;
|
||||
}
|
||||
|
||||
/* Mark with 0 table columns already contained in new_index */
|
||||
for (i = 0; i < new_index->n_def; i++) {
|
||||
|
||||
field = dict_index_get_nth_field(new_index, i);
|
||||
(field->col)->aux = 0;
|
||||
|
||||
/* If there is only a prefix of the column in the index
|
||||
field, do not mark the column as contained in the index */
|
||||
|
||||
if (field->prefix_len == 0) {
|
||||
|
||||
field->col->aux = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add to new_index columns necessary to determine the clustered
|
||||
/* Add to new_index the columns necessary to determine the clustered
|
||||
index entry uniquely */
|
||||
|
||||
for (i = 0; i < clust_index->n_uniq; i++) {
|
||||
|
||||
field = dict_index_get_nth_field(clust_index, i);
|
||||
|
||||
if ((field->col)->aux == ULINT_UNDEFINED) {
|
||||
dict_index_add_col(new_index, field->col, 0);
|
||||
if (field->col->aux == ULINT_UNDEFINED) {
|
||||
dict_index_add_col(new_index, field->col, 0,
|
||||
field->prefix_len);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1787,6 +1857,14 @@ dict_foreign_find_index(
|
||||
for (i = 0; i < n_cols; i++) {
|
||||
col_name = dict_index_get_nth_field(index, i)
|
||||
->col->name;
|
||||
if (dict_index_get_nth_field(index, i)
|
||||
->prefix_len != 0) {
|
||||
/* We do not accept column prefix
|
||||
indexes here */
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (ut_strlen(columns[i]) !=
|
||||
ut_strlen(col_name)
|
||||
|| 0 != ut_cmp_in_lower_case(columns[i],
|
||||
@ -2327,9 +2405,12 @@ dict_strip_comments(
|
||||
ptr = str;
|
||||
|
||||
for (;;) {
|
||||
scan_more:
|
||||
if (*sptr == '\0') {
|
||||
*ptr = '\0';
|
||||
|
||||
ut_a(ptr <= str + strlen(sql_string));
|
||||
|
||||
return(str);
|
||||
}
|
||||
|
||||
@ -2343,7 +2424,7 @@ dict_strip_comments(
|
||||
|| *sptr == (char)0x0D
|
||||
|| *sptr == '\0') {
|
||||
|
||||
break;
|
||||
goto scan_more;
|
||||
}
|
||||
|
||||
sptr++;
|
||||
@ -2357,12 +2438,12 @@ dict_strip_comments(
|
||||
|
||||
sptr += 2;
|
||||
|
||||
break;
|
||||
goto scan_more;
|
||||
}
|
||||
|
||||
if (*sptr == '\0') {
|
||||
|
||||
break;
|
||||
goto scan_more;
|
||||
}
|
||||
|
||||
sptr++;
|
||||
@ -3776,6 +3857,10 @@ dict_field_print_low(
|
||||
ut_ad(mutex_own(&(dict_sys->mutex)));
|
||||
|
||||
printf(" %s", field->name);
|
||||
|
||||
if (field->prefix_len != 0) {
|
||||
printf("(%lu)", field->prefix_len);
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
|
@ -301,6 +301,8 @@ dict_load_fields(
|
||||
dtuple_t* tuple;
|
||||
dfield_t* dfield;
|
||||
char* col_name;
|
||||
ulint pos_and_prefix_len;
|
||||
ulint prefix_len;
|
||||
rec_t* rec;
|
||||
byte* field;
|
||||
ulint len;
|
||||
@ -345,8 +347,28 @@ dict_load_fields(
|
||||
ut_a(ut_memcmp(buf, field, len) == 0);
|
||||
|
||||
field = rec_get_nth_field(rec, 1, &len);
|
||||
ut_ad(len == 4);
|
||||
ut_a(i == mach_read_from_4(field));
|
||||
ut_a(len == 4);
|
||||
|
||||
/* The next field stores the field position in the index
|
||||
and a possible column prefix length if the index field
|
||||
does not contain the whole column. The storage format is
|
||||
like this: if there is at least one prefix field in the index,
|
||||
then the HIGH 2 bytes contain the field number (== i) and the
|
||||
low 2 bytes the prefix length for the field. Otherwise the
|
||||
field number (== i) is contained in the 2 LOW bytes. */
|
||||
|
||||
pos_and_prefix_len = mach_read_from_4(field);
|
||||
|
||||
ut_a((pos_and_prefix_len & 0xFFFF) == i
|
||||
|| (pos_and_prefix_len & 0xFFFF0000) == (i << 16));
|
||||
|
||||
if ((i == 0 && pos_and_prefix_len > 0)
|
||||
|| (pos_and_prefix_len & 0xFFFF0000) > 0) {
|
||||
|
||||
prefix_len = pos_and_prefix_len & 0xFFFF;
|
||||
} else {
|
||||
prefix_len = 0;
|
||||
}
|
||||
|
||||
ut_a(0 == ut_strcmp((char*) "COL_NAME",
|
||||
dict_field_get_col(
|
||||
@ -359,7 +381,7 @@ dict_load_fields(
|
||||
ut_memcpy(col_name, field, len);
|
||||
col_name[len] = '\0';
|
||||
|
||||
dict_mem_index_add_field(index, col_name, 0);
|
||||
dict_mem_index_add_field(index, col_name, 0, prefix_len);
|
||||
|
||||
btr_pcur_move_to_next_user_rec(&pcur, &mtr);
|
||||
}
|
||||
|
@ -266,10 +266,13 @@ by the column name may be released only after publishing the index. */
|
||||
void
|
||||
dict_mem_index_add_field(
|
||||
/*=====================*/
|
||||
dict_index_t* index, /* in: index */
|
||||
char* name, /* in: column name */
|
||||
ulint order) /* in: order criterion; 0 means an ascending
|
||||
order */
|
||||
dict_index_t* index, /* in: index */
|
||||
char* name, /* in: column name */
|
||||
ulint order, /* in: order criterion; 0 means an
|
||||
ascending order */
|
||||
ulint prefix_len) /* in: 0 or the column prefix length
|
||||
in a MySQL index like
|
||||
INDEX (textcol(25)) */
|
||||
{
|
||||
dict_field_t* field;
|
||||
|
||||
@ -282,6 +285,8 @@ dict_mem_index_add_field(
|
||||
|
||||
field->name = name;
|
||||
field->order = order;
|
||||
|
||||
field->prefix_len = prefix_len;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
|
@ -632,7 +632,7 @@ fil_space_create(
|
||||
/* Spaces with an odd id number are reserved to replicate spaces
|
||||
used in log debugging */
|
||||
|
||||
ut_a((purpose == FIL_LOG) || (id % 2 == 0));
|
||||
ut_anp((purpose == FIL_LOG) || (id % 2 == 0));
|
||||
#endif
|
||||
mutex_enter(&(system->mutex));
|
||||
|
||||
@ -831,6 +831,34 @@ fil_space_release_free_extents(
|
||||
mutex_exit(&(system->mutex));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
Gets the number of reserved extents. If the database is silent, this number
|
||||
should be zero. */
|
||||
|
||||
ulint
|
||||
fil_space_get_n_reserved_extents(
|
||||
/*=============================*/
|
||||
ulint id) /* in: space id */
|
||||
{
|
||||
fil_space_t* space;
|
||||
fil_system_t* system = fil_system;
|
||||
ulint n;
|
||||
|
||||
ut_ad(system);
|
||||
|
||||
mutex_enter(&(system->mutex));
|
||||
|
||||
HASH_SEARCH(hash, system->spaces, id, space, space->id == id);
|
||||
|
||||
ut_a(space);
|
||||
|
||||
n = space->n_reserved_extents;
|
||||
|
||||
mutex_exit(&(system->mutex));
|
||||
|
||||
return(n);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
Prepares a file node for i/o. Opens the file if it is closed. Updates the
|
||||
pending i/o's field in the node and the system appropriately. Takes the node
|
||||
@ -1202,8 +1230,8 @@ loop:
|
||||
|
||||
/* Do aio */
|
||||
|
||||
ut_a(byte_offset % OS_FILE_LOG_BLOCK_SIZE == 0);
|
||||
ut_a((len % OS_FILE_LOG_BLOCK_SIZE) == 0);
|
||||
ut_anp(byte_offset % OS_FILE_LOG_BLOCK_SIZE == 0);
|
||||
ut_anp((len % OS_FILE_LOG_BLOCK_SIZE) == 0);
|
||||
|
||||
/* Queue the aio request */
|
||||
ret = os_aio(type, mode | wake_later, node->name, node->handle, buf,
|
||||
|
@ -778,7 +778,7 @@ fsp_init_file_page_low(
|
||||
page[i] = 0xFF;
|
||||
}
|
||||
#endif
|
||||
mach_write_to_8(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN,
|
||||
mach_write_to_8(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM,
|
||||
ut_dulint_zero);
|
||||
mach_write_to_8(page + FIL_PAGE_LSN, ut_dulint_zero);
|
||||
}
|
||||
@ -2709,10 +2709,52 @@ fseg_free_page_low(
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
fprintf(stderr,
|
||||
"InnoDB: InnoDB is freeing space %lu page %lu,\n"
|
||||
"InnoDB: which belongs to descr seg %lu %lu\n"
|
||||
"InnoDB: segment %lu %lu.\n",
|
||||
space, page,
|
||||
ut_dulint_get_high(
|
||||
mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr)),
|
||||
ut_dulint_get_low(
|
||||
mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr)),
|
||||
ut_dulint_get_high(
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)),
|
||||
ut_dulint_get_low(
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)));
|
||||
*/
|
||||
/* If we get here, the page is in some extent of the segment */
|
||||
ut_a(0 == ut_dulint_cmp(
|
||||
if (0 != ut_dulint_cmp(
|
||||
mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr),
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)));
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr))) {
|
||||
|
||||
ut_sprintf_buf(errbuf, descr, 40);
|
||||
fprintf(stderr,
|
||||
"InnoDB: Dump of the tablespace extent descriptor: %s\n", errbuf);
|
||||
ut_sprintf_buf(errbuf, seg_inode, 40);
|
||||
fprintf(stderr,
|
||||
"InnoDB: Dump of the segment inode: %s\n", errbuf);
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
|
||||
"InnoDB: which does not belong to segment %lu %lu but belongs\n"
|
||||
"InnoDB: to segment %lu %lu.\n",
|
||||
space, page,
|
||||
ut_dulint_get_high(
|
||||
mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr)),
|
||||
ut_dulint_get_low(
|
||||
mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr)),
|
||||
ut_dulint_get_high(
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)),
|
||||
ut_dulint_get_low(
|
||||
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)));
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: If the InnoDB recovery crashes here, see section 6.1\n"
|
||||
"InnoDB: of http://www.innodb.com/ibman.html about forcing recovery.\n");
|
||||
ut_a(0);
|
||||
}
|
||||
|
||||
not_full_n_used = mtr_read_ulint(seg_inode + FSEG_NOT_FULL_N_USED,
|
||||
MLOG_4BYTES, mtr);
|
||||
@ -2875,7 +2917,7 @@ fseg_free_step(
|
||||
freed yet */
|
||||
|
||||
ut_a(descr);
|
||||
ut_a(xdes_get_bit(descr, XDES_FREE_BIT, buf_frame_get_page_no(header)
|
||||
ut_anp(xdes_get_bit(descr, XDES_FREE_BIT, buf_frame_get_page_no(header)
|
||||
% FSP_EXTENT_SIZE, mtr) == FALSE);
|
||||
inode = fseg_inode_get(header, mtr);
|
||||
|
||||
|
@ -293,11 +293,13 @@ ha_print_info(
|
||||
hash_table_t* table) /* in: hash table */
|
||||
{
|
||||
hash_cell_t* cell;
|
||||
/* ha_node_t* node; */
|
||||
/* ulint nodes = 0; */
|
||||
/*
|
||||
ha_node_t* node;
|
||||
ulint len = 0;
|
||||
ulint max_len = 0;
|
||||
ulint nodes = 0;
|
||||
*/
|
||||
ulint cells = 0;
|
||||
/* ulint len = 0; */
|
||||
/* ulint max_len = 0; */
|
||||
ulint n_bufs;
|
||||
ulint i;
|
||||
|
||||
|
@ -170,7 +170,7 @@ dropped! So, there seems to be no problem. */
|
||||
|
||||
/**********************************************************************
|
||||
Validates the ibuf data structures when the caller owns ibuf_mutex. */
|
||||
static
|
||||
|
||||
ibool
|
||||
ibuf_validate_low(void);
|
||||
/*===================*/
|
||||
@ -484,8 +484,8 @@ ibuf_data_init_for_space(
|
||||
index = dict_mem_index_create(buf, (char *) "CLUST_IND", space,
|
||||
DICT_CLUSTERED | DICT_UNIVERSAL | DICT_IBUF,2);
|
||||
|
||||
dict_mem_index_add_field(index, (char *) "PAGE_NO", 0);
|
||||
dict_mem_index_add_field(index, (char *) "TYPES", 0);
|
||||
dict_mem_index_add_field(index, (char *) "PAGE_NO", 0, 0);
|
||||
dict_mem_index_add_field(index, (char *) "TYPES", 0, 0);
|
||||
|
||||
index->page_no = FSP_IBUF_TREE_ROOT_PAGE_NO;
|
||||
|
||||
@ -2727,7 +2727,7 @@ reset_bit:
|
||||
|
||||
/**********************************************************************
|
||||
Validates the ibuf data structures when the caller owns ibuf_mutex. */
|
||||
static
|
||||
|
||||
ibool
|
||||
ibuf_validate_low(void)
|
||||
/*===================*/
|
||||
|
@ -690,7 +690,13 @@ and sleep this many microseconds in between */
|
||||
#define BTR_CUR_RETRY_DELETE_N_TIMES 100
|
||||
#define BTR_CUR_RETRY_SLEEP_TIME 50000
|
||||
|
||||
/* The reference in a field of which data is stored on a different page */
|
||||
/* The reference in a field for which data is stored on a different page.
|
||||
The reference is at the end of the 'locally' stored part of the field.
|
||||
'Locally' means storage in the index record.
|
||||
We store locally a long enough prefix of each column so that we can determine
|
||||
the ordering parts of each index record without looking into the externally
|
||||
stored part. */
|
||||
|
||||
/*--------------------------------------*/
|
||||
#define BTR_EXTERN_SPACE_ID 0 /* space id where stored */
|
||||
#define BTR_EXTERN_PAGE_NO 4 /* page no where stored */
|
||||
|
@ -388,11 +388,24 @@ to a file. Note that we must be careful to calculate the same value
|
||||
on 32-bit and 64-bit architectures. */
|
||||
|
||||
ulint
|
||||
buf_calc_page_checksum(
|
||||
/*===================*/
|
||||
buf_calc_page_new_checksum(
|
||||
/*=======================*/
|
||||
/* out: checksum */
|
||||
byte* page); /* in: buffer page */
|
||||
/************************************************************************
|
||||
In versions < 4.0.14 and < 4.1.1 there was a bug that the checksum only
|
||||
looked at the first few bytes of the page. This calculates that old
|
||||
checksum.
|
||||
NOTE: we must first store the new formula checksum to
|
||||
FIL_PAGE_SPACE_OR_CHKSUM before calculating and storing this old checksum
|
||||
because this takes that field as an input! */
|
||||
|
||||
ulint
|
||||
buf_calc_page_old_checksum(
|
||||
/*=======================*/
|
||||
/* out: checksum */
|
||||
byte* page); /* in: buffer page */
|
||||
/************************************************************************
|
||||
Checks if a page is corrupt. */
|
||||
|
||||
ibool
|
||||
|
@ -453,8 +453,6 @@ struct dfield_struct{
|
||||
void* data; /* pointer to data */
|
||||
ulint len; /* data length; UNIV_SQL_NULL if SQL null; */
|
||||
dtype_t type; /* type of data */
|
||||
ulint col_no; /* when building index entries, the column
|
||||
number can be stored here */
|
||||
};
|
||||
|
||||
struct dtuple_struct {
|
||||
|
@ -18,14 +18,16 @@ typedef struct dtype_struct dtype_t;
|
||||
data type */
|
||||
extern dtype_t* dtype_binary;
|
||||
|
||||
/* Data main types of SQL data; NOTE! character data types requiring
|
||||
collation transformation must have the smallest codes! All codes must be
|
||||
less than 256! */
|
||||
/* Data main types of SQL data */
|
||||
#define DATA_VARCHAR 1 /* character varying */
|
||||
#define DATA_CHAR 2 /* fixed length character */
|
||||
#define DATA_FIXBINARY 3 /* binary string of fixed length */
|
||||
#define DATA_BINARY 4 /* binary string */
|
||||
#define DATA_BLOB 5 /* binary large object */
|
||||
#define DATA_BLOB 5 /* binary large object, or a TEXT type; if
|
||||
prtype & DATA_NONLATIN1 != 0 the data must
|
||||
be compared by MySQL as a whole field; if
|
||||
prtype & DATA_BINARY_TYPE == 0, then this is
|
||||
actually a TEXT column */
|
||||
#define DATA_INT 6 /* integer: can be any size 1 - 8 bytes */
|
||||
#define DATA_SYS_CHILD 7 /* address of the child page in node pointer */
|
||||
#define DATA_SYS 8 /* system column */
|
||||
@ -34,35 +36,55 @@ binary strings */
|
||||
#define DATA_FLOAT 9
|
||||
#define DATA_DOUBLE 10
|
||||
#define DATA_DECIMAL 11 /* decimal number stored as an ASCII string */
|
||||
#define DATA_VARMYSQL 12 /* data types for which comparisons must be */
|
||||
#define DATA_MYSQL 13 /* made by MySQL */
|
||||
#define DATA_ERROR 111 /* error value */
|
||||
#define DATA_MTYPE_MAX 255
|
||||
#define DATA_VARMYSQL 12 /* non-latin1 varying length char */
|
||||
#define DATA_MYSQL 13 /* non-latin1 fixed length char */
|
||||
#define DATA_MTYPE_MAX 63 /* dtype_store_for_order_and_null_size()
|
||||
requires the values are <= 63 */
|
||||
/*-------------------------------------------*/
|
||||
/* Precise data types for system columns; NOTE: the values must run
|
||||
from 0 up in the order given! All codes must be less than 256! */
|
||||
/* In the lowest byte in the precise type we store the MySQL type code
|
||||
(not applicable for system columns). */
|
||||
|
||||
#define DATA_ENGLISH 4 /* English language character string: this
|
||||
is a relic from pre-MySQL time and only used
|
||||
for InnoDB's own system tables */
|
||||
#define DATA_ERROR 111 /* another relic from pre-MySQL time */
|
||||
|
||||
#define DATA_MYSQL_TYPE_MASK 255 /* AND with this mask to extract the MySQL
|
||||
type from the precise type */
|
||||
|
||||
/* Precise data types for system columns and the length of those columns;
|
||||
NOTE: the values must run from 0 up in the order given! All codes must
|
||||
be less than 256 */
|
||||
#define DATA_ROW_ID 0 /* row id: a dulint */
|
||||
#define DATA_ROW_ID_LEN 6 /* stored length for row id */
|
||||
|
||||
#define DATA_TRX_ID 1 /* transaction id: 6 bytes */
|
||||
#define DATA_TRX_ID_LEN 6
|
||||
|
||||
#define DATA_ROLL_PTR 2 /* rollback data pointer: 7 bytes */
|
||||
#define DATA_ROLL_PTR_LEN 7
|
||||
|
||||
#define DATA_MIX_ID 3 /* mixed index label: a dulint, stored in
|
||||
a row in a compressed form */
|
||||
#define DATA_MIX_ID_LEN 9 /* maximum stored length for mix id (in a
|
||||
compressed dulint form) */
|
||||
#define DATA_N_SYS_COLS 4 /* number of system columns defined above */
|
||||
/*-------------------------------------------*/
|
||||
/* Flags ORed to the precise data type */
|
||||
#define DATA_NOT_NULL 256 /* this is ORed to the precise type when
|
||||
the column is declared as NOT NULL */
|
||||
#define DATA_UNSIGNED 512 /* this id ORed to the precise type when
|
||||
we have an unsigned integer type */
|
||||
#define DATA_BINARY_TYPE 1024 /* if the data type is a binary character
|
||||
string, this is ORed to the precise type:
|
||||
this only holds for tables created with
|
||||
>= MySQL-4.0.14 */
|
||||
#define DATA_NONLATIN1 2048 /* if the data type is a DATA_BLOB (actually
|
||||
TEXT) of a non-latin1 type, this is ORed to
|
||||
the precise type: this only holds for tables
|
||||
created with >= MySQL-4.0.14 */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
/* Precise types of a char or varchar data. All codes must be less than 256! */
|
||||
#define DATA_ENGLISH 4 /* English language character string */
|
||||
#define DATA_FINNISH 5 /* Finnish */
|
||||
#define DATA_PRTYPE_MAX 255
|
||||
|
||||
/* This many bytes we need to store the type information affecting the
|
||||
alphabetical order for a single field and decide the storage size of an
|
||||
SQL null*/
|
||||
@ -123,7 +145,7 @@ dtype_get_pad_char(
|
||||
/*===============*/
|
||||
/* out: padding character code, or
|
||||
ULINT_UNDEFINED if no padding specified */
|
||||
dtype_t* type); /* in: typeumn */
|
||||
dtype_t* type); /* in: type */
|
||||
/***************************************************************************
|
||||
Returns the size of a fixed size data type, 0 if not a fixed size type. */
|
||||
UNIV_INLINE
|
||||
@ -150,24 +172,24 @@ dtype_is_fixed_size(
|
||||
/* out: TRUE if fixed size */
|
||||
dtype_t* type); /* in: type */
|
||||
/**************************************************************************
|
||||
Stores to a type the information which determines its alphabetical
|
||||
ordering. */
|
||||
Stores for a type the information which determines its alphabetical ordering
|
||||
and the storage size of an SQL NULL value. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
dtype_store_for_order_and_null_size(
|
||||
/*================================*/
|
||||
byte* buf, /* in: buffer for DATA_ORDER_NULL_TYPE_BUF_SIZE
|
||||
bytes */
|
||||
bytes where we store the info */
|
||||
dtype_t* type); /* in: type struct */
|
||||
/**************************************************************************
|
||||
Reads of a type the stored information which determines its alphabetical
|
||||
ordering. */
|
||||
Reads to a type the stored information which determines its alphabetical
|
||||
ordering and the storage size of an SQL NULL value. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
dtype_read_for_order_and_null_size(
|
||||
/*===============================*/
|
||||
dtype_t* type, /* in: type struct */
|
||||
byte* buf); /* in: buffer for type order info */
|
||||
byte* buf); /* in: buffer for the stored order info */
|
||||
/*************************************************************************
|
||||
Validates a data type structure. */
|
||||
|
||||
|
@ -110,7 +110,9 @@ dtype_get_pad_char(
|
||||
if (type->mtype == DATA_CHAR
|
||||
|| type->mtype == DATA_VARCHAR
|
||||
|| type->mtype == DATA_BINARY
|
||||
|| type->mtype == DATA_FIXBINARY) {
|
||||
|| type->mtype == DATA_FIXBINARY
|
||||
|| type->mtype == DATA_MYSQL
|
||||
|| type->mtype == DATA_VARMYSQL) {
|
||||
|
||||
/* Space is the padding character for all char and binary
|
||||
strings */
|
||||
@ -124,39 +126,56 @@ dtype_get_pad_char(
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Stores to a type the information which determines its alphabetical
|
||||
ordering. */
|
||||
Stores for a type the information which determines its alphabetical ordering
|
||||
and the storage size of an SQL NULL value. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
dtype_store_for_order_and_null_size(
|
||||
/*================================*/
|
||||
byte* buf, /* in: buffer for DATA_ORDER_NULL_TYPE_BUF_SIZE
|
||||
bytes */
|
||||
bytes where we store the info */
|
||||
dtype_t* type) /* in: type struct */
|
||||
{
|
||||
ut_ad(4 == DATA_ORDER_NULL_TYPE_BUF_SIZE);
|
||||
|
||||
buf[0] = (byte)(type->mtype & 0xFF);
|
||||
|
||||
if (type->prtype & DATA_BINARY_TYPE) {
|
||||
buf[0] = buf[0] | 128;
|
||||
}
|
||||
|
||||
if (type->prtype & DATA_NONLATIN1) {
|
||||
buf[0] = buf[0] | 64;
|
||||
}
|
||||
|
||||
buf[1] = (byte)(type->prtype & 0xFF);
|
||||
|
||||
mach_write_to_2(buf + 2, type->len & 0xFFFF);
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Reads of a type the stored information which determines its alphabetical
|
||||
ordering. */
|
||||
Reads to a type the stored information which determines its alphabetical
|
||||
ordering and the storage size of an SQL NULL value. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
dtype_read_for_order_and_null_size(
|
||||
/*===============================*/
|
||||
dtype_t* type, /* in: type struct */
|
||||
byte* buf) /* in: buffer for type order info */
|
||||
byte* buf) /* in: buffer for stored type order info */
|
||||
{
|
||||
ut_ad(4 == DATA_ORDER_NULL_TYPE_BUF_SIZE);
|
||||
|
||||
type->mtype = buf[0];
|
||||
type->mtype = buf[0] & 63;
|
||||
type->prtype = buf[1];
|
||||
|
||||
if (buf[0] & 128) {
|
||||
type->prtype = type->prtype | DATA_BINARY_TYPE;
|
||||
}
|
||||
|
||||
if (buf[0] & 64) {
|
||||
type->prtype = type->prtype | DATA_NONLATIN1;
|
||||
}
|
||||
|
||||
type->len = mach_read_from_2(buf + 2);
|
||||
}
|
||||
|
||||
|
@ -44,8 +44,10 @@ Created 5/24/1996 Heikki Tuuri
|
||||
#define DB_CORRUPTION 39 /* data structure corruption noticed */
|
||||
#define DB_COL_APPEARS_TWICE_IN_INDEX 40 /* InnoDB cannot handle an index
|
||||
where same column appears twice */
|
||||
#define DB_CANNOT_DROP_CONSTRAINT 40 /* dropping a foreign key constraint
|
||||
#define DB_CANNOT_DROP_CONSTRAINT 41 /* dropping a foreign key constraint
|
||||
from a table failed */
|
||||
#define DB_NO_SAVEPOINT 42 /* no savepoint exists with the given
|
||||
name */
|
||||
|
||||
/* The following are partial failure codes */
|
||||
#define DB_FAIL 1000
|
||||
|
@ -569,6 +569,29 @@ dict_index_get_nth_col_pos(
|
||||
dict_index_t* index, /* in: index */
|
||||
ulint n); /* in: column number */
|
||||
/************************************************************************
|
||||
Returns TRUE if the index contains a column or a prefix of that column. */
|
||||
|
||||
ibool
|
||||
dict_index_contains_col_or_prefix(
|
||||
/*==============================*/
|
||||
/* out: TRUE if contains the column or its
|
||||
prefix */
|
||||
dict_index_t* index, /* in: index */
|
||||
ulint n); /* in: column number */
|
||||
/************************************************************************
|
||||
Looks for a matching field in an index. The column and the prefix len has
|
||||
to be the same. */
|
||||
|
||||
ulint
|
||||
dict_index_get_nth_field_pos(
|
||||
/*=========================*/
|
||||
/* out: position in internal representation
|
||||
of the index; if not contained, returns
|
||||
ULINT_UNDEFINED */
|
||||
dict_index_t* index, /* in: index from which to search */
|
||||
dict_index_t* index2, /* in: index */
|
||||
ulint n); /* in: field number in index2 */
|
||||
/************************************************************************
|
||||
Looks for column n position in the clustered index. */
|
||||
|
||||
ulint
|
||||
|
@ -203,7 +203,6 @@ dict_index_get_n_fields(
|
||||
{
|
||||
ut_ad(index);
|
||||
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
|
||||
ut_ad(index->cached);
|
||||
|
||||
return(index->n_fields);
|
||||
}
|
||||
|
@ -111,10 +111,13 @@ by the column name may be released only after publishing the index. */
|
||||
void
|
||||
dict_mem_index_add_field(
|
||||
/*=====================*/
|
||||
dict_index_t* index, /* in: index */
|
||||
char* name, /* in: column name */
|
||||
ulint order); /* in: order criterion; 0 means an ascending
|
||||
order */
|
||||
dict_index_t* index, /* in: index */
|
||||
char* name, /* in: column name */
|
||||
ulint order, /* in: order criterion; 0 means an
|
||||
ascending order */
|
||||
ulint prefix_len); /* in: 0 or the column prefix length
|
||||
in a MySQL index like
|
||||
INDEX (textcol(25)) */
|
||||
/**************************************************************************
|
||||
Frees an index memory object. */
|
||||
|
||||
@ -158,12 +161,18 @@ struct dict_col_struct{
|
||||
in some of the functions below */
|
||||
};
|
||||
|
||||
#define DICT_MAX_COL_PREFIX_LEN 512
|
||||
|
||||
/* Data structure for a field in an index */
|
||||
struct dict_field_struct{
|
||||
dict_col_t* col; /* pointer to the table column */
|
||||
char* name; /* name of the column */
|
||||
ulint order; /* flags for ordering this field:
|
||||
DICT_DESCEND, ... */
|
||||
dict_col_t* col; /* pointer to the table column */
|
||||
char* name; /* name of the column */
|
||||
ulint order; /* flags for ordering this field:
|
||||
DICT_DESCEND, ... */
|
||||
ulint prefix_len; /* 0 or the length of the column
|
||||
prefix in a MySQL index of type, e.g.,
|
||||
INDEX (textcol(25)); must be smaller
|
||||
than DICT_MAX_COL_PREFIX_LEN */
|
||||
};
|
||||
|
||||
/* Data structure for an index tree */
|
||||
|
@ -43,7 +43,10 @@ struct fil_addr_struct{
|
||||
extern fil_addr_t fil_addr_null;
|
||||
|
||||
/* The byte offsets on a file page for various variables */
|
||||
#define FIL_PAGE_SPACE 0 /* space id the page belongs to */
|
||||
#define FIL_PAGE_SPACE_OR_CHKSUM 0 /* in < MySQL-4.0.14 space id the
|
||||
page belongs to (== 0) but in later
|
||||
versions the 'new' checksum of the
|
||||
page */
|
||||
#define FIL_PAGE_OFFSET 4 /* page offset inside space */
|
||||
#define FIL_PAGE_PREV 8 /* if there is a 'natural' predecessor
|
||||
of the page, its offset */
|
||||
@ -64,7 +67,7 @@ extern fil_addr_t fil_addr_null;
|
||||
#define FIL_PAGE_DATA 38 /* start of the data on the page */
|
||||
|
||||
/* File page trailer */
|
||||
#define FIL_PAGE_END_LSN 8 /* the low 4 bytes of this are used
|
||||
#define FIL_PAGE_END_LSN_OLD_CHKSUM 8 /* the low 4 bytes of this are used
|
||||
to store the page checksum, the
|
||||
last 4 bytes should be identical
|
||||
to the last 4 bytes of FIL_PAGE_LSN */
|
||||
@ -383,6 +386,14 @@ fil_space_release_free_extents(
|
||||
/*===========================*/
|
||||
ulint id, /* in: space id */
|
||||
ulint n_reserved); /* in: how many one reserved */
|
||||
/***********************************************************************
|
||||
Gets the number of reserved extents. If the database is silent, this number
|
||||
should be zero. */
|
||||
|
||||
ulint
|
||||
fil_space_get_n_reserved_extents(
|
||||
/*=============================*/
|
||||
ulint id); /* in: space id */
|
||||
|
||||
typedef struct fil_space_struct fil_space_t;
|
||||
|
||||
|
@ -450,6 +450,18 @@ lock_rec_get_mutex_for_addr(
|
||||
ulint space, /* in: space id */
|
||||
ulint page_no);/* in: page number */
|
||||
/*************************************************************************
|
||||
Checks that a transaction id is sensible, i.e., not in the future. */
|
||||
|
||||
ibool
|
||||
lock_check_trx_id_sanity(
|
||||
/*=====================*/
|
||||
/* out: TRUE if ok */
|
||||
dulint trx_id, /* in: trx id */
|
||||
rec_t* rec, /* in: user record */
|
||||
dict_index_t* index, /* in: clustered index */
|
||||
ibool has_kernel_mutex);/* in: TRUE if the caller owns the
|
||||
kernel mutex */
|
||||
/*************************************************************************
|
||||
Validates the lock queue on a single record. */
|
||||
|
||||
ibool
|
||||
|
@ -173,6 +173,12 @@ log_write_up_to(
|
||||
/* in: TRUE if we want the written log also to be
|
||||
flushed to disk */
|
||||
/********************************************************************
|
||||
Does a syncronous flush of the log buffer to disk. */
|
||||
|
||||
void
|
||||
log_buffer_flush_to_disk(void);
|
||||
/*==========================*/
|
||||
/********************************************************************
|
||||
Advances the smallest lsn for which there are unflushed dirty blocks in the
|
||||
buffer pool and also may make a new checkpoint. NOTE: this function may only
|
||||
be called if the calling thread owns no synchronization objects! */
|
||||
@ -507,6 +513,15 @@ log_print(
|
||||
/*======*/
|
||||
char* buf, /* in/out: buffer where to print */
|
||||
char* buf_end);/* in: buffer end */
|
||||
/**********************************************************
|
||||
Peeks the current lsn. */
|
||||
|
||||
ibool
|
||||
log_peek_lsn(
|
||||
/*=========*/
|
||||
/* out: TRUE if success, FALSE if could not get the
|
||||
log system mutex */
|
||||
dulint* lsn); /* out: if returns TRUE, current lsn is here */
|
||||
/**************************************************************************
|
||||
Refreshes the statistics used to print per-second averages. */
|
||||
|
||||
@ -779,6 +794,11 @@ struct log_struct{
|
||||
called */
|
||||
|
||||
/* Fields involved in checkpoints */
|
||||
ulint log_group_capacity; /* capacity of the log group; if
|
||||
the checkpoint age exceeds this, it is
|
||||
a serious error because it is possible
|
||||
we will then overwrite log and spoil
|
||||
crash recovery */
|
||||
ulint max_modified_age_async;
|
||||
/* when this recommended value for lsn
|
||||
- buf_pool_get_oldest_modification()
|
||||
|
@ -333,6 +333,8 @@ extern ibool recv_recovery_on;
|
||||
extern ibool recv_no_ibuf_operations;
|
||||
extern ibool recv_needed_recovery;
|
||||
|
||||
extern ibool recv_lsn_checks_on;
|
||||
|
||||
extern ibool recv_is_making_a_backup;
|
||||
extern ulint recv_max_parsed_page_no;
|
||||
|
||||
|
@ -146,6 +146,21 @@ os_file_create_simple(
|
||||
ulint access_type,/* in: OS_FILE_READ_ONLY or OS_FILE_READ_WRITE */
|
||||
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
||||
/********************************************************************
|
||||
A simple function to open or create a file. */
|
||||
|
||||
os_file_t
|
||||
os_file_create_simple_no_error_handling(
|
||||
/*====================================*/
|
||||
/* out, own: handle to the file, not defined if error,
|
||||
error number can be retrieved with os_get_last_error */
|
||||
char* name, /* in: name of the file or path as a null-terminated
|
||||
string */
|
||||
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is opened
|
||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
||||
file is created (if exists, error) */
|
||||
ulint access_type,/* in: OS_FILE_READ_ONLY or OS_FILE_READ_WRITE */
|
||||
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
||||
/********************************************************************
|
||||
Opens an existing file or creates a new. */
|
||||
|
||||
os_file_t
|
||||
@ -160,7 +175,11 @@ os_file_create(
|
||||
file is created (if exists, error), OS_FILE_OVERWRITE
|
||||
if a new file is created or an old overwritten */
|
||||
ulint purpose,/* in: OS_FILE_AIO, if asynchronous, non-buffered i/o
|
||||
is desired, OS_FILE_NORMAL, if any normal file */
|
||||
is desired, OS_FILE_NORMAL, if any normal file;
|
||||
NOTE that it also depends on type, os_aio_.. and srv_..
|
||||
variables whether we really use async i/o or
|
||||
unbuffered i/o: look in the function source code for
|
||||
the exact rules */
|
||||
ulint type, /* in: OS_DATA_FILE or OS_LOG_FILE */
|
||||
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
||||
/***************************************************************************
|
||||
@ -173,6 +192,14 @@ os_file_close(
|
||||
/* out: TRUE if success */
|
||||
os_file_t file); /* in, own: handle to a file */
|
||||
/***************************************************************************
|
||||
Closes a file handle. */
|
||||
|
||||
ibool
|
||||
os_file_close_no_error_handling(
|
||||
/*============================*/
|
||||
/* out: TRUE if success */
|
||||
os_file_t file); /* in, own: handle to a file */
|
||||
/***************************************************************************
|
||||
Gets a file size. */
|
||||
|
||||
ibool
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user