mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
This commit is contained in:
commit
65a36828c8
96 changed files with 4180 additions and 235 deletions
|
@ -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"
|
||||
|
|
|
@ -17,6 +17,7 @@ bk@admin.bk
|
|||
davida@isil.mysql.com
|
||||
gluh@gluh.(none)
|
||||
gluh@gluh.mysql.r18.ru
|
||||
greg@gcw.ath.cx
|
||||
greg@mysql.com
|
||||
guilhem@mysql.com
|
||||
gweir@work.mysql.com
|
||||
|
@ -49,6 +50,7 @@ miguel@hegel.br
|
|||
miguel@hegel.local
|
||||
miguel@light.
|
||||
miguel@light.local
|
||||
miguel@sartre.local
|
||||
mmatthew@markslaptop.
|
||||
monty@bitch.mysql.fi
|
||||
monty@butch.
|
||||
|
|
|
@ -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=
|
||||
|
|
@ -55,13 +55,11 @@ static ulonglong position = 0;
|
|||
static bool use_remote = 0;
|
||||
static short binlog_flags = 0;
|
||||
static MYSQL* mysql = NULL;
|
||||
static const char* table = 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();
|
||||
|
||||
|
@ -96,8 +94,6 @@ 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},
|
||||
{"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},
|
||||
|
@ -252,35 +248,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;
|
||||
|
@ -379,7 +346,7 @@ static void dump_remote_log_entries(const char* logname)
|
|||
}
|
||||
|
||||
|
||||
static int check_header(IO_CACHE* file)
|
||||
static int check_header(IO_CACHE* file, const char *fname)
|
||||
{
|
||||
byte header[BIN_LOG_HEADER_SIZE];
|
||||
byte buf[PROBE_HEADER_LEN];
|
||||
|
@ -390,7 +357,7 @@ static int check_header(IO_CACHE* file)
|
|||
if (my_b_read(file, header, sizeof(header)))
|
||||
die("Failed reading header; Probably an empty file");
|
||||
if (memcmp(header, BINLOG_MAGIC, sizeof(header)))
|
||||
die("File is not a binary log file");
|
||||
die("File %s is not a binary log file",fname);
|
||||
if (!my_b_read(file, buf, sizeof(buf)))
|
||||
{
|
||||
if (buf[4] == START_EVENT)
|
||||
|
@ -423,14 +390,14 @@ static void dump_local_log_entries(const char* logname)
|
|||
if (init_io_cache(file, fd, 0, READ_CACHE, (my_off_t) position, 0,
|
||||
MYF(MY_WME | MY_NABP)))
|
||||
exit(1);
|
||||
old_format = check_header(file);
|
||||
old_format = check_header(file,logname);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (init_io_cache(file, fileno(result_file), 0, READ_CACHE, (my_off_t) 0,
|
||||
0, MYF(MY_WME | MY_NABP | MY_DONT_CHECK_FILESIZE)))
|
||||
exit(1);
|
||||
old_format = check_header(file);
|
||||
old_format = check_header(file,"");
|
||||
if (position)
|
||||
{
|
||||
/* skip 'position' characters from stdout */
|
||||
|
@ -516,7 +483,7 @@ int main(int argc, char** argv)
|
|||
MY_INIT(argv[0]);
|
||||
parse_args(&argc, (char***)&argv);
|
||||
|
||||
if (!argc && !table)
|
||||
if (!argc)
|
||||
{
|
||||
usage();
|
||||
return -1;
|
||||
|
@ -525,22 +492,9 @@ int main(int argc, char** argv)
|
|||
if (use_remote)
|
||||
mysql = safe_connect();
|
||||
|
||||
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 (result_file != stdout)
|
||||
my_fclose(result_file, MYF(0));
|
||||
if (use_remote)
|
||||
|
|
|
@ -80,15 +80,17 @@ int mi_status(MI_INFO *info, register MI_ISAMINFO *x, uint flag)
|
|||
(HA_OPTION_PACK_RECORD | HA_OPTION_COMPRESS_RECORD)) ?
|
||||
0L : share->base.pack_reclength);
|
||||
x->sortkey= -1; /* No clustering */
|
||||
/* The following should be included even if we are not compiling with
|
||||
USE_RAID as the client must be able to request it! */
|
||||
x->rec_per_key = share->state.rec_per_key_part;
|
||||
x->raid_type= share->base.raid_type;
|
||||
x->raid_chunks= share->base.raid_chunks;
|
||||
x->raid_chunksize= share->base.raid_chunksize;
|
||||
x->key_map = share->state.key_map;
|
||||
x->data_file_name = share->data_file_name;
|
||||
x->index_file_name = share->index_file_name;
|
||||
/*
|
||||
The following should be included even if we are not compiling with
|
||||
USE_RAID as the client must be able to request it!
|
||||
*/
|
||||
x->raid_type= share->base.raid_type;
|
||||
x->raid_chunks= share->base.raid_chunks;
|
||||
x->raid_chunksize= share->base.raid_chunksize;
|
||||
}
|
||||
if ((flag & HA_STATUS_TIME) && !my_fstat(info->dfile,&state,MYF(0)))
|
||||
x->update_time=state.st_mtime;
|
||||
|
|
17
mysql-test/r/convert.result
Normal file
17
mysql-test/r/convert.result
Normal file
|
@ -0,0 +1,17 @@
|
|||
select @@convert_character_set;
|
||||
@@convert_character_set
|
||||
|
||||
select @@global.convert_character_set;
|
||||
@@global.convert_character_set
|
||||
|
||||
show variables like "%convert_character_set%";
|
||||
Variable_name Value
|
||||
convert_character_set
|
||||
SET CHARACTER SET cp1251_koi8;
|
||||
select @@convert_character_set;
|
||||
@@convert_character_set
|
||||
cp1251_koi8
|
||||
SET CHARACTER SET DEFAULT;
|
||||
select @@convert_character_set;
|
||||
@@convert_character_set
|
||||
|
|
@ -161,7 +161,7 @@ SELECT DISTINCT UserId FROM t1 WHERE UserId=22;
|
|||
UserId
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a int(10) unsigned not null primary key,b int(10) unsigned);
|
||||
INSERT INTO t1 VALUES (1,1),(2,1);
|
||||
INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1);
|
||||
CREATE TABLE t2 (a int(10) unsigned not null, key (A));
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
CREATE TABLE t3 (a int(10) unsigned, key(A), b text);
|
||||
|
@ -189,7 +189,7 @@ insert into t4 select * from t3;
|
|||
insert into t3 select * from t4;
|
||||
explain select distinct t1.a from t1,t3 where t1.a=t3.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 index PRIMARY PRIMARY 4 NULL 2 Using index; Using temporary
|
||||
t1 index PRIMARY PRIMARY 4 NULL 4 Using index; Using temporary
|
||||
t3 ref a a 5 t1.a 10 Using where; Using index; Distinct
|
||||
select distinct t1.a from t1,t3 where t1.a=t3.a;
|
||||
a
|
||||
|
@ -200,16 +200,16 @@ select distinct 1 from t1,t3 where t1.a=t3.a;
|
|||
1
|
||||
explain SELECT distinct t1.a from t1;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 index NULL PRIMARY 4 NULL 2 Using index
|
||||
t1 index NULL PRIMARY 4 NULL 4 Using index
|
||||
explain SELECT distinct t1.a from t1 order by a desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 index NULL PRIMARY 4 NULL 2 Using index
|
||||
t1 index NULL PRIMARY 4 NULL 4 Using index
|
||||
explain SELECT t1.a from t1 group by a order by a desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 index NULL PRIMARY 4 NULL 2 Using index
|
||||
t1 index NULL PRIMARY 4 NULL 4 Using index
|
||||
explain SELECT distinct t1.a from t1 order by a desc limit 1;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 index NULL PRIMARY 4 NULL 2 Using index
|
||||
t1 index NULL PRIMARY 4 NULL 4 Using index
|
||||
explain SELECT distinct a from t3 order by a desc limit 2;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t3 index NULL a 5 NULL 204 Using index
|
||||
|
|
|
@ -534,11 +534,11 @@ a b
|
|||
explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
|
||||
t2 ALL a NULL NULL NULL 4 Using where
|
||||
t2 ALL a NULL NULL NULL 3 Using where
|
||||
explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL NULL NULL NULL NULL 6 Using temporary
|
||||
t2 ALL a NULL NULL NULL 4 Using where
|
||||
t2 ALL a NULL NULL NULL 3 Using where
|
||||
drop table t1,t2;
|
||||
create table t1 (a int, b int);
|
||||
insert into t1 values (1, 4),(10, 40),(1, 4),(10, 43),(1, 4),(10, 41),(1, 4),(10, 43),(1, 4);
|
||||
|
|
|
@ -166,7 +166,7 @@ alter table t1 add column new_col char(1) not null, add key (btn,new_col), drop
|
|||
update t1 set new_col=btn;
|
||||
explain select * from t1 where btn="a";
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL btn NULL NULL NULL 14 Using where
|
||||
t1 ALL btn NULL NULL NULL 11 Using where
|
||||
explain select * from t1 where btn="a" and new_col="a";
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ref btn btn 11 const,const 10 Using where
|
||||
|
|
|
@ -65,7 +65,7 @@ insert into t1 values (1), (NULL), (2);
|
|||
select * from t1;
|
||||
id
|
||||
1
|
||||
8
|
||||
0
|
||||
2
|
||||
drop table t1;
|
||||
drop database if exists foo;
|
||||
|
|
|
@ -21,8 +21,7 @@ payoutID
|
|||
20
|
||||
22
|
||||
drop table t1,t2;
|
||||
DROP TABLE IF EXISTS crash1,crash2;
|
||||
CREATE TABLE `crash1` (
|
||||
CREATE TABLE `t1` (
|
||||
`numeropost` bigint(20) unsigned NOT NULL default '0',
|
||||
`icone` tinyint(4) unsigned NOT NULL default '0',
|
||||
`numreponse` bigint(20) unsigned NOT NULL auto_increment,
|
||||
|
@ -37,7 +36,7 @@ KEY `date` (`date`),
|
|||
KEY `pseudo` (`pseudo`),
|
||||
KEY `numreponse` (`numreponse`)
|
||||
) TYPE=MyISAM;
|
||||
CREATE TABLE `crash2` (
|
||||
CREATE TABLE `t2` (
|
||||
`numeropost` bigint(20) unsigned NOT NULL default '0',
|
||||
`icone` tinyint(4) unsigned NOT NULL default '0',
|
||||
`numreponse` bigint(20) unsigned NOT NULL auto_increment,
|
||||
|
@ -52,22 +51,20 @@ KEY `date` (`date`),
|
|||
KEY `pseudo` (`pseudo`),
|
||||
KEY `numreponse` (`numreponse`)
|
||||
) TYPE=MyISAM;
|
||||
INSERT INTO crash2
|
||||
INSERT INTO t2
|
||||
(numeropost,icone,numreponse,contenu,pseudo,date,ip,signature) VALUES
|
||||
(9,1,56,'test','joce','2001-07-25 13:50:53'
|
||||
,3649052399,0);
|
||||
INSERT INTO crash1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1618,icone,contenu,pseudo,date,signature,ip FROM crash2
|
||||
INSERT INTO t1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1618,icone,contenu,pseudo,date,signature,ip FROM t2
|
||||
WHERE numeropost=9 ORDER BY numreponse ASC;
|
||||
show variables like '%bulk%';
|
||||
Variable_name Value
|
||||
bulk_insert_buffer_size 8388608
|
||||
INSERT INTO crash1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1718,icone,contenu,pseudo,date,signature,ip FROM crash2
|
||||
INSERT INTO t1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1718,icone,contenu,pseudo,date,signature,ip FROM t2
|
||||
WHERE numeropost=9 ORDER BY numreponse ASC;
|
||||
DROP TABLE IF EXISTS crash1,crash2;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
DROP TABLE t1,t2;
|
||||
create table t1(a int, unique(a));
|
||||
insert into t1 values(2);
|
||||
create table t2(a int);
|
||||
|
|
|
@ -104,9 +104,7 @@ KEY category (category,county,state)
|
|||
INSERT INTO t2 VALUES (3,2,11,12,5400,7800);
|
||||
INSERT INTO t2 VALUES (4,2,25,12,6500,11200);
|
||||
INSERT INTO t2 VALUES (5,1,37,6,10000,12000);
|
||||
select a.id, b.category as catid, b.state as stateid, b.county as
|
||||
countyid from t1 a, t2 b where (a.token =
|
||||
'a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id);
|
||||
select a.id, b.category as catid, b.state as stateid, b.county as countyid from t1 a, t2 b ignore index (primary) where (a.token ='a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id);
|
||||
id catid stateid countyid
|
||||
27 2 12 11
|
||||
28 2 12 11
|
||||
|
|
|
@ -659,3 +659,11 @@ i i i
|
|||
1 NULL NULL
|
||||
2 2 2
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (f1 integer,f2 integer,f3 integer);
|
||||
create table t2 (f2 integer,f4 integer);
|
||||
create table t3 (f3 integer,f5 integer);
|
||||
select * from t1
|
||||
left outer join t2 using (f2)
|
||||
left outer join t3 using (f3);
|
||||
Unknown column 'test.t2.f3' in 'on clause'
|
||||
drop table t1,t2,t3;
|
||||
|
|
|
@ -36,7 +36,7 @@ a a a a
|
|||
explain select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL a NULL NULL NULL 5
|
||||
t2 ALL b NULL NULL NULL 5 Using where
|
||||
t2 ALL b NULL NULL NULL 4 Using where
|
||||
select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B order by binary t1.a,t2.a;
|
||||
a b a b
|
||||
A B a a
|
||||
|
|
|
@ -335,12 +335,12 @@ t1 1 c_2 1 c A 5 NULL NULL YES BTREE
|
|||
t1 1 c_2 2 a A 5 NULL NULL BTREE
|
||||
explain select * from t1,t2 where t1.a=t2.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL a NULL NULL NULL 5
|
||||
t2 ALL a NULL NULL NULL 2 Using where
|
||||
t2 ALL a NULL NULL NULL 2
|
||||
t1 ALL a NULL NULL NULL 4 Using where
|
||||
explain select * from t1,t2 force index(a) where t1.a=t2.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t2 ALL a NULL NULL NULL 2
|
||||
t1 ALL a NULL NULL NULL 5 Using where
|
||||
t1 ALL a NULL NULL NULL 4 Using where
|
||||
explain select * from t1 force index(a),t2 force index(a) where t1.a=t2.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t2 ALL a NULL NULL NULL 2
|
||||
|
@ -351,8 +351,8 @@ t2 ALL b NULL NULL NULL 2
|
|||
t1 ref b b 5 t2.b 1 Using where
|
||||
explain select * from t1,t2 force index(c) where t1.a=t2.a;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL a NULL NULL NULL 5
|
||||
t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
t2 ALL NULL NULL NULL NULL 2
|
||||
t1 ALL a NULL NULL NULL 4 Using where
|
||||
explain select * from t1 where a=0 or a=2;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL a NULL NULL NULL 5 Using where
|
||||
|
|
|
@ -307,17 +307,17 @@ table type possible_keys key key_len ref rows Extra
|
|||
t1 range a a 9 NULL 8 Using where; Using index
|
||||
explain select * from t1 where a = 2 and b >0 order by a desc,b desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 range a a 9 NULL 5 Using where; Using index
|
||||
t1 range a a 9 NULL 4 Using where; Using index
|
||||
explain select * from t1 where a = 2 and b is null order by a desc,b desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ref a a 9 const,const 1 Using where; Using index; Using filesort
|
||||
explain select * from t1 where a = 2 and (b is null or b > 0) order by a
|
||||
desc,b desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 range a a 9 NULL 6 Using where; Using index
|
||||
t1 range a a 9 NULL 5 Using where; Using index
|
||||
explain select * from t1 where a = 2 and b > 0 order by a desc,b desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 range a a 9 NULL 5 Using where; Using index
|
||||
t1 range a a 9 NULL 4 Using where; Using index
|
||||
explain select * from t1 where a = 2 and b < 2 order by a desc,b desc;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 range a a 9 NULL 2 Using where; Using index
|
||||
|
|
|
@ -2569,16 +2569,46 @@ fld1 fld1
|
|||
250503 250505
|
||||
250504 250505
|
||||
250505 250505
|
||||
insert into t2 (fld1, companynr) values (999999,99);
|
||||
select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
||||
companynr companyname
|
||||
99 NULL
|
||||
select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
|
||||
count(*)
|
||||
1199
|
||||
explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t2 ALL NULL NULL NULL NULL 1199
|
||||
t2 ALL NULL NULL NULL NULL 1200
|
||||
t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t4 ALL NULL NULL NULL NULL 12
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where; Not exists
|
||||
t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists
|
||||
delete from t2 where fld1=999999;
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||
t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||
t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||
t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t4 ALL NULL NULL NULL NULL 12
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t4 ALL PRIMARY NULL NULL NULL 12
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t4 ALL NULL NULL NULL NULL 12
|
||||
t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||
select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
|
||||
companynr companynr
|
||||
37 36
|
||||
|
|
|
@ -13,7 +13,7 @@ a b
|
|||
1 test
|
||||
2 test2
|
||||
update t1 set b="a" where a=1;
|
||||
select 1 from t1,t1 as t2,t1 as t3,t1 as t4;
|
||||
select 1 from t1,t1 as t2,t1 as t3;
|
||||
1
|
||||
1
|
||||
1
|
||||
|
@ -35,18 +35,19 @@ update t1 set b="a" limit 1;
|
|||
update t1 set b="a" where b="b" limit 2;
|
||||
delete from t1 where b="test" limit 1;
|
||||
delete from t1 where a+0=1 limit 2;
|
||||
alter table t1 add key b (b);
|
||||
SET MAX_JOIN_SIZE=2;
|
||||
SELECT @@MAX_JOIN_SIZE, @@SQL_BIG_SELECTS;
|
||||
@@max_join_size @@sql_big_selects
|
||||
2 0
|
||||
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
|
||||
SELECT * from t1;
|
||||
SELECT * from t1 order by a;
|
||||
The SELECT would examine more rows than MAX_JOIN_SIZE. Check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok
|
||||
SET SQL_BIG_SELECTS=1;
|
||||
SELECT * from t1;
|
||||
SELECT * from t1 order by a;
|
||||
a b
|
||||
3 a
|
||||
2 test2
|
||||
3 a
|
||||
4 a
|
||||
5 a
|
||||
SET MAX_JOIN_SIZE=2;
|
||||
|
@ -55,9 +56,26 @@ The SELECT would examine more rows than MAX_JOIN_SIZE. Check your WHERE and use
|
|||
SET MAX_JOIN_SIZE=DEFAULT;
|
||||
SELECT * from t1;
|
||||
a b
|
||||
3 a
|
||||
2 test2
|
||||
3 a
|
||||
4 a
|
||||
5 a
|
||||
SELECT @@MAX_SEEKS_FOR_KEY;
|
||||
@@max_seeks_for_key
|
||||
4294967295
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
|
||||
explain select * from t1,t1 as t2 where t1.b=t2.b;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL b NULL NULL NULL 21
|
||||
t2 ALL b NULL NULL NULL 16 Using where
|
||||
set MAX_SEEKS_FOR_KEY=1;
|
||||
explain select * from t1,t1 as t2 where t1.b=t2.b;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL b NULL NULL NULL 21
|
||||
t2 ref b b 21 t1.b 6 Using where
|
||||
SET MAX_SEEKS_FOR_KEY=DEFAULT;
|
||||
drop table t1;
|
||||
SET SQL_SAFE_UPDATES=0,SQL_SELECT_LIMIT=DEFAULT, SQL_MAX_JOIN_SIZE=DEFAULT;
|
||||
|
|
|
@ -30,3 +30,15 @@ explain select * from t1 where i=@vv1;
|
|||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ref i i 4 const 1 Using where
|
||||
drop table t1,t2;
|
||||
select @a:=10, @b:=1, @a > @b, @a < @b;
|
||||
@a:=10 @b:=1 @a > @b @a < @b
|
||||
10 1 1 0
|
||||
select @a:="10", @b:="1", @a > @b, @a < @b;
|
||||
@a:="10" @b:="1" @a > @b @a < @b
|
||||
10 1 1 0
|
||||
select @a:=10, @b:=2, @a > @b, @a < @b;
|
||||
@a:=10 @b:=2 @a > @b @a < @b
|
||||
10 2 1 0
|
||||
select @a:="10", @b:="2", @a > @b, @a < @b;
|
||||
@a:="10" @b:="2" @a > @b @a < @b
|
||||
10 2 0 1
|
||||
|
|
11
mysql-test/t/convert.test
Normal file
11
mysql-test/t/convert.test
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Test of character set conversions
|
||||
|
||||
# Test that SET DEFAULT works
|
||||
|
||||
select @@convert_character_set;
|
||||
select @@global.convert_character_set;
|
||||
show variables like "%convert_character_set%";
|
||||
SET CHARACTER SET cp1251_koi8;
|
||||
select @@convert_character_set;
|
||||
SET CHARACTER SET DEFAULT;
|
||||
select @@convert_character_set;
|
|
@ -60,7 +60,7 @@ drop table t1;
|
|||
#
|
||||
|
||||
CREATE TABLE t1 (a int(10) unsigned not null primary key,b int(10) unsigned);
|
||||
INSERT INTO t1 VALUES (1,1),(2,1);
|
||||
INSERT INTO t1 VALUES (1,1),(2,1),(3,1),(4,1);
|
||||
CREATE TABLE t2 (a int(10) unsigned not null, key (A));
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
CREATE TABLE t3 (a int(10) unsigned, key(A), b text);
|
||||
|
|
|
@ -12,13 +12,13 @@ insert into t2 (payoutID) SELECT payoutID+10 FROM t1;
|
|||
insert ignore into t2 (payoutID) SELECT payoutID+10 FROM t1;
|
||||
select * from t2;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# bug in bulk insert optimization
|
||||
# test case by Fournier Jocelyn <joc@presence-pc.com>
|
||||
#
|
||||
|
||||
DROP TABLE IF EXISTS crash1,crash2;
|
||||
CREATE TABLE `crash1` (
|
||||
CREATE TABLE `t1` (
|
||||
`numeropost` bigint(20) unsigned NOT NULL default '0',
|
||||
`icone` tinyint(4) unsigned NOT NULL default '0',
|
||||
`numreponse` bigint(20) unsigned NOT NULL auto_increment,
|
||||
|
@ -34,7 +34,7 @@ CREATE TABLE `crash1` (
|
|||
KEY `numreponse` (`numreponse`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
CREATE TABLE `crash2` (
|
||||
CREATE TABLE `t2` (
|
||||
`numeropost` bigint(20) unsigned NOT NULL default '0',
|
||||
`icone` tinyint(4) unsigned NOT NULL default '0',
|
||||
`numreponse` bigint(20) unsigned NOT NULL auto_increment,
|
||||
|
@ -50,30 +50,27 @@ CREATE TABLE `crash2` (
|
|||
KEY `numreponse` (`numreponse`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
INSERT INTO crash2
|
||||
INSERT INTO t2
|
||||
(numeropost,icone,numreponse,contenu,pseudo,date,ip,signature) VALUES
|
||||
(9,1,56,'test','joce','2001-07-25 13:50:53'
|
||||
,3649052399,0);
|
||||
|
||||
|
||||
INSERT INTO crash1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1618,icone,contenu,pseudo,date,signature,ip FROM crash2
|
||||
INSERT INTO t1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1618,icone,contenu,pseudo,date,signature,ip FROM t2
|
||||
WHERE numeropost=9 ORDER BY numreponse ASC;
|
||||
|
||||
show variables like '%bulk%';
|
||||
|
||||
INSERT INTO crash1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1718,icone,contenu,pseudo,date,signature,ip FROM crash2
|
||||
INSERT INTO t1 (numeropost,icone,contenu,pseudo,date,signature,ip)
|
||||
SELECT 1718,icone,contenu,pseudo,date,signature,ip FROM t2
|
||||
WHERE numeropost=9 ORDER BY numreponse ASC;
|
||||
|
||||
DROP TABLE IF EXISTS crash1,crash2;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
||||
# Addendum by Guilhem:
|
||||
# Check if a partly-completed INSERT SELECT in a MyISAM table goes
|
||||
# into the binlog
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
|
||||
create table t1(a int, unique(a));
|
||||
insert into t1 values(2);
|
||||
create table t2(a int);
|
||||
|
|
|
@ -98,10 +98,7 @@ CREATE TABLE t2 (
|
|||
INSERT INTO t2 VALUES (3,2,11,12,5400,7800);
|
||||
INSERT INTO t2 VALUES (4,2,25,12,6500,11200);
|
||||
INSERT INTO t2 VALUES (5,1,37,6,10000,12000);
|
||||
|
||||
select a.id, b.category as catid, b.state as stateid, b.county as
|
||||
countyid from t1 a, t2 b where (a.token =
|
||||
'a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id);
|
||||
select a.id, b.category as catid, b.state as stateid, b.county as countyid from t1 a, t2 b ignore index (primary) where (a.token ='a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id);
|
||||
select a.id, b.category as catid, b.state as stateid, b.county as
|
||||
countyid from t1 a, t2 b where (a.token =
|
||||
'a71250b7ed780f6ef3185bfffe027983') and (a.count = b.id) order by a.id;
|
||||
|
|
|
@ -425,3 +425,15 @@ insert into t2 values(2),(3);
|
|||
insert into t3 values(2),(4);
|
||||
select * from t1 natural left join t2 natural left join t3;
|
||||
drop table t1,t2,t3;
|
||||
|
||||
#
|
||||
# Test of USING
|
||||
#
|
||||
create table t1 (f1 integer,f2 integer,f3 integer);
|
||||
create table t2 (f2 integer,f4 integer);
|
||||
create table t3 (f3 integer,f5 integer);
|
||||
--error 1054
|
||||
select * from t1
|
||||
left outer join t2 using (f2)
|
||||
left outer join t3 using (f3);
|
||||
drop table t1,t2,t3;
|
||||
|
|
|
@ -1527,10 +1527,24 @@ select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 25
|
|||
#
|
||||
# Test of left join.
|
||||
#
|
||||
insert into t2 (fld1, companynr) values (999999,99);
|
||||
|
||||
select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
||||
select count(*) from t2 left join t4 using (companynr) where t4.companynr is not null;
|
||||
explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
|
||||
delete from t2 where fld1=999999;
|
||||
|
||||
#
|
||||
# Test left join optimization
|
||||
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
|
||||
# Following can't be optimized
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
|
||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
|
||||
|
||||
#
|
||||
# Joins with forms.
|
||||
|
|
|
@ -12,7 +12,7 @@ delete from t1 where a=1;
|
|||
insert into t1 values(1,"test"),(2,"test2");
|
||||
SELECT SQL_BUFFER_RESULT * from t1;
|
||||
update t1 set b="a" where a=1;
|
||||
select 1 from t1,t1 as t2,t1 as t3,t1 as t4;
|
||||
select 1 from t1,t1 as t2,t1 as t3;
|
||||
|
||||
# The following should give errors:
|
||||
--error 1175
|
||||
|
@ -36,19 +36,31 @@ delete from t1 where a+0=1 limit 2;
|
|||
|
||||
# Test SQL_BIG_SELECTS
|
||||
|
||||
alter table t1 add key b (b);
|
||||
SET MAX_JOIN_SIZE=2;
|
||||
SELECT @@MAX_JOIN_SIZE, @@SQL_BIG_SELECTS;
|
||||
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
|
||||
--error 1104
|
||||
SELECT * from t1;
|
||||
SELECT * from t1 order by a;
|
||||
SET SQL_BIG_SELECTS=1;
|
||||
SELECT * from t1;
|
||||
SELECT * from t1 order by a;
|
||||
SET MAX_JOIN_SIZE=2;
|
||||
--error 1104
|
||||
SELECT * from t1;
|
||||
SET MAX_JOIN_SIZE=DEFAULT;
|
||||
SELECT * from t1;
|
||||
|
||||
#
|
||||
# Test MAX_SEEKS_FOR_KEY
|
||||
#
|
||||
SELECT @@MAX_SEEKS_FOR_KEY;
|
||||
analyze table t1;
|
||||
insert into t1 values (null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a"),(null,"a");
|
||||
explain select * from t1,t1 as t2 where t1.b=t2.b;
|
||||
set MAX_SEEKS_FOR_KEY=1;
|
||||
explain select * from t1,t1 as t2 where t1.b=t2.b;
|
||||
SET MAX_SEEKS_FOR_KEY=DEFAULT;
|
||||
|
||||
drop table t1;
|
||||
|
||||
SET SQL_SAFE_UPDATES=0,SQL_SELECT_LIMIT=DEFAULT, SQL_MAX_JOIN_SIZE=DEFAULT;
|
||||
|
|
|
@ -17,3 +17,9 @@ explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
|
|||
explain select @vv1:=i from t1 where i=@vv1;
|
||||
explain select * from t1 where i=@vv1;
|
||||
drop table t1,t2;
|
||||
|
||||
# Check types of variables
|
||||
select @a:=10, @b:=1, @a > @b, @a < @b;
|
||||
select @a:="10", @b:="1", @a > @b, @a < @b;
|
||||
select @a:=10, @b:=2, @a > @b, @a < @b;
|
||||
select @a:="10", @b:="2", @a > @b, @a < @b;
|
||||
|
|
|
@ -90,6 +90,11 @@ void init_tree(TREE *tree, uint default_alloc_size, uint memory_limit,
|
|||
if (!free_element && size >= 0 &&
|
||||
((uint) size <= sizeof(void*) || ((uint) size & (sizeof(void*)-1))))
|
||||
{
|
||||
/*
|
||||
We know that the data doesn't have to be aligned (like if the key
|
||||
contains a double), so we can store the data combined with the
|
||||
TREE_ELEMENT.
|
||||
*/
|
||||
tree->offset_to_key=sizeof(TREE_ELEMENT); /* Put key after element */
|
||||
/* Fix allocation size so that we don't lose any memory */
|
||||
default_alloc_size/=(sizeof(TREE_ELEMENT)+size);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
/* Copyright (C) 2000-2003 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -118,7 +118,7 @@ set_field_to_null(Field *field)
|
|||
field->reset();
|
||||
return 0;
|
||||
}
|
||||
field->set_default();
|
||||
field->reset();
|
||||
if (current_thd->count_cuted_fields)
|
||||
{
|
||||
current_thd->cuted_fields++; // Increment error counter
|
||||
|
@ -170,7 +170,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions)
|
|||
((Field_timestamp*) field)->set_time();
|
||||
return 0; // Ok to set time to NULL
|
||||
}
|
||||
field->set_default();
|
||||
field->reset();
|
||||
if (field == field->table->next_number_field)
|
||||
return 0; // field is set in handler.cc
|
||||
if (current_thd->count_cuted_fields)
|
||||
|
|
|
@ -184,40 +184,41 @@ class handler :public Sql_alloc
|
|||
{
|
||||
protected:
|
||||
struct st_table *table; /* The table definition */
|
||||
uint active_index;
|
||||
|
||||
public:
|
||||
byte *ref; /* Pointer to current row */
|
||||
byte *dupp_ref; /* Pointer to dupp row */
|
||||
uint ref_length; /* Length of ref (1-8 or the clustered
|
||||
key length) */
|
||||
uint block_size; /* index block size */
|
||||
ha_rows records; /* Records i datafilen */
|
||||
ha_rows deleted; /* Deleted records */
|
||||
ulonglong data_file_length; /* Length off data file */
|
||||
ulonglong max_data_file_length; /* Length off data file */
|
||||
ulonglong index_file_length;
|
||||
ulonglong max_index_file_length;
|
||||
ulonglong delete_length; /* Free bytes */
|
||||
ulonglong auto_increment_value;
|
||||
uint raid_type,raid_chunks;
|
||||
ha_rows records; /* Records in table */
|
||||
ha_rows deleted; /* Deleted records */
|
||||
ulong raid_chunksize;
|
||||
uint errkey; /* Last dup key */
|
||||
uint sortkey, key_used_on_scan;
|
||||
ulong mean_rec_length; /* physical reclength */
|
||||
time_t create_time; /* When table was created */
|
||||
time_t check_time;
|
||||
time_t update_time;
|
||||
ulong mean_rec_length; /* physical reclength */
|
||||
uint errkey; /* Last dup key */
|
||||
uint sortkey, key_used_on_scan;
|
||||
uint active_index;
|
||||
/* Length of ref (1-8 or the clustered key length) */
|
||||
uint ref_length;
|
||||
uint block_size; /* index block size */
|
||||
uint raid_type,raid_chunks;
|
||||
FT_INFO *ft_handler;
|
||||
bool auto_increment_column_changed;
|
||||
|
||||
handler(TABLE *table_arg) : table(table_arg),active_index(MAX_REF_PARTS),
|
||||
ref(0),ref_length(sizeof(my_off_t)), block_size(0),records(0),deleted(0),
|
||||
data_file_length(0), max_data_file_length(0), index_file_length(0),
|
||||
delete_length(0), auto_increment_value(0), raid_type(0),
|
||||
key_used_on_scan(MAX_KEY),
|
||||
create_time(0), check_time(0), update_time(0), mean_rec_length(0),
|
||||
ft_handler(0)
|
||||
handler(TABLE *table_arg) :table(table_arg),
|
||||
ref(0), data_file_length(0), max_data_file_length(0), index_file_length(0),
|
||||
delete_length(0), auto_increment_value(0),
|
||||
records(0), deleted(0), mean_rec_length(0),
|
||||
create_time(0), check_time(0), update_time(0),
|
||||
key_used_on_scan(MAX_KEY), active_index(MAX_REF_PARTS),
|
||||
ref_length(sizeof(my_off_t)), block_size(0),
|
||||
raid_type(0), ft_handler(0)
|
||||
{}
|
||||
virtual ~handler(void) {}
|
||||
int ha_open(const char *name, int mode, int test_if_locked);
|
||||
|
@ -227,7 +228,7 @@ public:
|
|||
uint get_dup_key(int error);
|
||||
void change_table_ptr(TABLE *table_arg) { table=table_arg; }
|
||||
virtual double scan_time()
|
||||
{ return ulonglong2double(data_file_length) / IO_SIZE + 1; }
|
||||
{ return ulonglong2double(data_file_length) / IO_SIZE + 2; }
|
||||
virtual double read_time(uint index, uint ranges, ha_rows rows)
|
||||
{ return rows2double(ranges+rows); }
|
||||
virtual bool fast_key_read() { return 0;}
|
||||
|
|
17
sql/item.h
17
sql/item.h
|
@ -71,7 +71,24 @@ public:
|
|||
virtual double val_result() { return val(); }
|
||||
virtual longlong val_int_result() { return val_int(); }
|
||||
virtual String *str_result(String* tmp) { return val_str(tmp); }
|
||||
/* bit map of tables used by item */
|
||||
virtual table_map used_tables() const { return (table_map) 0L; }
|
||||
/*
|
||||
Return table map of tables that can't be NULL tables (tables that are
|
||||
used in a context where if they would contain a NULL row generated
|
||||
by a LEFT or RIGHT join, the item would not be true).
|
||||
This expression is used on WHERE item to determinate if a LEFT JOIN can be
|
||||
converted to a normal join.
|
||||
Generally this function should return used_tables() if the function
|
||||
would return null if any of the arguments are null
|
||||
As this is only used in the beginning of optimization, the value don't
|
||||
have to be updated in update_used_tables()
|
||||
*/
|
||||
virtual table_map not_null_tables() const { return used_tables(); }
|
||||
/*
|
||||
Returns true if this is a simple constant item like an integer, not
|
||||
a constant expression
|
||||
*/
|
||||
virtual bool basic_const_item() const { return 0; }
|
||||
virtual Item *new_item() { return 0; } /* Only for const items */
|
||||
virtual cond_result eq_cmp_result() const { return COND_OK; }
|
||||
|
|
|
@ -292,10 +292,12 @@ void Item_func_interval::fix_length_and_dec()
|
|||
}
|
||||
}
|
||||
maybe_null=0; max_length=2;
|
||||
used_tables_cache|=item->used_tables();
|
||||
used_tables_cache|= item->used_tables();
|
||||
not_null_tables_cache&= item->not_null_tables();
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
}
|
||||
|
||||
|
||||
void Item_func_interval::split_sum_func(List<Item> &fields)
|
||||
{
|
||||
if (item->with_sum_func && item->type() != SUM_FUNC_ITEM)
|
||||
|
@ -1073,8 +1075,9 @@ void Item_func_in::fix_length_and_dec()
|
|||
}
|
||||
maybe_null= item->maybe_null;
|
||||
max_length=2;
|
||||
used_tables_cache|=item->used_tables();
|
||||
const_item_cache&=item->const_item();
|
||||
used_tables_cache|= item->used_tables();
|
||||
not_null_tables_cache&= item->not_null_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1172,16 +1175,23 @@ Item_cond::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
List_iterator<Item> li(list);
|
||||
Item *item;
|
||||
char buff[sizeof(char*)]; // Max local vars in function
|
||||
used_tables_cache=0;
|
||||
const_item_cache=0;
|
||||
not_null_tables_cache= used_tables_cache= 0;
|
||||
const_item_cache= 0;
|
||||
/*
|
||||
and_table_cache is the value that Item_cond_or() returns for
|
||||
not_null_tables()
|
||||
*/
|
||||
and_tables_cache= ~(table_map) 0;
|
||||
|
||||
if (thd && check_stack_overrun(thd,buff))
|
||||
return 0; // Fatal error flag is set!
|
||||
while ((item=li++))
|
||||
{
|
||||
table_map tmp_table_map;
|
||||
while (item->type() == Item::COND_ITEM &&
|
||||
((Item_cond*) item)->functype() == functype())
|
||||
{ // Identical function
|
||||
|
||||
li.replace(((Item_cond*) item)->list);
|
||||
((Item_cond*) item)->list.empty();
|
||||
#ifdef DELETE_ITEMS
|
||||
|
@ -1193,9 +1203,12 @@ Item_cond::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
item->top_level_item();
|
||||
if (item->fix_fields(thd,tables))
|
||||
return 1; /* purecov: inspected */
|
||||
used_tables_cache|=item->used_tables();
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
const_item_cache&=item->const_item();
|
||||
used_tables_cache|= item->used_tables();
|
||||
tmp_table_map= item->not_null_tables();
|
||||
not_null_tables_cache|= tmp_table_map;
|
||||
and_tables_cache&= tmp_table_map;
|
||||
const_item_cache&= item->const_item();
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
if (item->maybe_null)
|
||||
maybe_null=1;
|
||||
}
|
||||
|
@ -1234,17 +1247,19 @@ Item_cond::used_tables() const
|
|||
return used_tables_cache;
|
||||
}
|
||||
|
||||
|
||||
void Item_cond::update_used_tables()
|
||||
{
|
||||
used_tables_cache=0;
|
||||
const_item_cache=1;
|
||||
List_iterator_fast<Item> li(list);
|
||||
Item *item;
|
||||
|
||||
used_tables_cache=0;
|
||||
const_item_cache=1;
|
||||
while ((item=li++))
|
||||
{
|
||||
item->update_used_tables();
|
||||
used_tables_cache|=item->used_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
used_tables_cache|= item->used_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1348,12 +1363,16 @@ Item *and_expressions(Item *a, Item *b, Item **org_item)
|
|||
{
|
||||
Item_cond *res;
|
||||
if ((res= new Item_cond_and(a, (Item*) b)))
|
||||
{
|
||||
res->used_tables_cache= a->used_tables() | b->used_tables();
|
||||
res->not_null_tables_cache= a->not_null_tables() | b->not_null_tables();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
if (((Item_cond_and*) a)->add((Item*) b))
|
||||
return 0;
|
||||
((Item_cond_and*) a)->used_tables_cache|= b->used_tables();
|
||||
((Item_cond_and*) a)->not_null_tables_cache|= b->not_null_tables();
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -1489,6 +1508,8 @@ Item_func_regex::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
max_length=1; decimals=0;
|
||||
binary=args[0]->binary || args[1]->binary;
|
||||
used_tables_cache=args[0]->used_tables() | args[1]->used_tables();
|
||||
not_null_tables_cache= (args[0]->not_null_tables() |
|
||||
args[1]->not_null_tables());
|
||||
const_item_cache=args[0]->const_item() && args[1]->const_item();
|
||||
if (!regex_compiled && args[1]->const_item())
|
||||
{
|
||||
|
|
|
@ -204,7 +204,7 @@ public:
|
|||
enum Item_result result_type () const { return cached_result_type; }
|
||||
void fix_length_and_dec();
|
||||
const char *func_name() const { return "ifnull"; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -224,7 +224,7 @@ public:
|
|||
}
|
||||
void fix_length_and_dec();
|
||||
const char *func_name() const { return "if"; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -239,7 +239,7 @@ public:
|
|||
enum Item_result result_type () const { return cached_result_type; }
|
||||
void fix_length_and_dec();
|
||||
const char *func_name() const { return "nullif"; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -254,9 +254,10 @@ public:
|
|||
void fix_length_and_dec();
|
||||
enum Item_result result_type () const { return cached_result_type; }
|
||||
const char *func_name() const { return "coalesce"; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
class Item_func_case :public Item_func
|
||||
{
|
||||
Item * first_expr, *else_expr;
|
||||
|
@ -270,6 +271,7 @@ public:
|
|||
String *val_str(String *);
|
||||
void fix_length_and_dec();
|
||||
void update_used_tables();
|
||||
table_map not_null_tables() const { return 0; }
|
||||
enum Item_result result_type () const { return cached_result_type; }
|
||||
const char *func_name() const { return "case"; }
|
||||
void print(String *str);
|
||||
|
@ -479,10 +481,12 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
};
|
||||
|
||||
|
||||
class Item_func_isnotnull :public Item_bool_func
|
||||
{
|
||||
public:
|
||||
|
@ -495,9 +499,10 @@ public:
|
|||
}
|
||||
const char *func_name() const { return "isnotnull"; }
|
||||
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
class Item_func_like :public Item_bool_func2
|
||||
{
|
||||
char escape;
|
||||
|
@ -572,6 +577,8 @@ class Item_cond :public Item_bool_func
|
|||
protected:
|
||||
List<Item> list;
|
||||
bool abort_on_null;
|
||||
table_map and_tables_cache;
|
||||
|
||||
public:
|
||||
/* Item_cond() is only used to create top level items */
|
||||
Item_cond() : Item_bool_func(), abort_on_null(1) { const_item_cache=0; }
|
||||
|
@ -611,6 +618,7 @@ public:
|
|||
enum Functype functype() const { return COND_OR_FUNC; }
|
||||
longlong val_int();
|
||||
const char *func_name() const { return "or"; }
|
||||
table_map not_null_tables() const { return and_tables_cache; }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ Item_func::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
Item **arg,**arg_end;
|
||||
char buff[STACK_BUFF_ALLOC]; // Max argument in function
|
||||
binary=0;
|
||||
used_tables_cache=0;
|
||||
used_tables_cache= not_null_tables_cache= 0;
|
||||
const_item_cache=1;
|
||||
|
||||
if (thd && check_stack_overrun(thd,buff))
|
||||
|
@ -78,8 +78,9 @@ Item_func::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
if (item->binary)
|
||||
binary=1;
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
used_tables_cache|=item->used_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
used_tables_cache|= item->used_tables();
|
||||
not_null_tables_cache|= item->not_null_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
}
|
||||
}
|
||||
fix_length_and_dec();
|
||||
|
@ -122,6 +123,13 @@ table_map Item_func::used_tables() const
|
|||
return used_tables_cache;
|
||||
}
|
||||
|
||||
|
||||
table_map Item_func::not_null_tables() const
|
||||
{
|
||||
return not_null_tables_cache;
|
||||
}
|
||||
|
||||
|
||||
void Item_func::print(String *str)
|
||||
{
|
||||
str->append(func_name());
|
||||
|
@ -1822,6 +1830,7 @@ bool Item_func_set_user_var::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
if (Item_func::fix_fields(thd,tables) ||
|
||||
!(entry= get_variable(&thd->user_vars, name, 1)))
|
||||
return 1;
|
||||
entry->type= cached_result_type;
|
||||
entry->update_query_id=thd->query_id;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ protected:
|
|||
Item **args,*tmp_arg[2];
|
||||
public:
|
||||
uint arg_count;
|
||||
table_map used_tables_cache;
|
||||
table_map used_tables_cache, not_null_tables_cache;
|
||||
bool const_item_cache;
|
||||
enum Functype { UNKNOWN_FUNC,EQ_FUNC,EQUAL_FUNC,NE_FUNC,LT_FUNC,LE_FUNC,
|
||||
GE_FUNC,GT_FUNC,FT_FUNC,
|
||||
|
@ -97,6 +97,7 @@ public:
|
|||
bool fix_fields(THD *,struct st_table_list *);
|
||||
void make_field(Send_field *field);
|
||||
table_map used_tables() const;
|
||||
table_map not_null_tables() const;
|
||||
void update_used_tables();
|
||||
bool eq(const Item *item, bool binary_cmp) const;
|
||||
virtual optimize_type select_optimize() const { return OPTIMIZE_NONE; }
|
||||
|
@ -588,7 +589,8 @@ public:
|
|||
void split_sum_func(List<Item> &fields);
|
||||
void update_used_tables()
|
||||
{
|
||||
item->update_used_tables() ; Item_func::update_used_tables();
|
||||
item->update_used_tables();
|
||||
Item_func::update_used_tables();
|
||||
used_tables_cache|= item->used_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
}
|
||||
|
@ -597,6 +599,7 @@ public:
|
|||
{
|
||||
maybe_null=0; max_length=3;
|
||||
used_tables_cache|= item->used_tables();
|
||||
not_null_tables_cache&= item->not_null_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
}
|
||||
|
@ -736,6 +739,7 @@ public:
|
|||
return res;
|
||||
}
|
||||
Item_result result_type () const { return udf.result_type(); }
|
||||
table_map not_null_tables() const { return 0; }
|
||||
unsigned int size_of() { return sizeof(*this);}
|
||||
};
|
||||
|
||||
|
@ -969,6 +973,7 @@ public:
|
|||
}
|
||||
enum Functype functype() const { return FT_FUNC; }
|
||||
void update_used_tables() {}
|
||||
table_map not_null_tables() const { return 0; }
|
||||
bool fix_fields(THD *thd,struct st_table_list *tlist);
|
||||
bool eq(const Item *, bool binary_cmp) const;
|
||||
longlong val_int() { return val()!=0.0; }
|
||||
|
|
|
@ -606,9 +606,10 @@ void Item_func_concat_ws::fix_length_and_dec()
|
|||
max_length=MAX_BLOB_WIDTH;
|
||||
maybe_null=1;
|
||||
}
|
||||
used_tables_cache|=separator->used_tables();
|
||||
const_item_cache&=separator->const_item();
|
||||
with_sum_func= with_sum_func || separator->with_sum_func;
|
||||
used_tables_cache|= separator->used_tables();
|
||||
not_null_tables_cache&= separator->not_null_tables();
|
||||
const_item_cache&= separator->const_item();
|
||||
with_sum_func= with_sum_func || separator->with_sum_func;
|
||||
}
|
||||
|
||||
void Item_func_concat_ws::update_used_tables()
|
||||
|
@ -1509,8 +1510,9 @@ void Item_func_elt::fix_length_and_dec()
|
|||
}
|
||||
maybe_null=1; // NULL if wrong first arg
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
used_tables_cache|=item->used_tables();
|
||||
const_item_cache&=item->const_item();
|
||||
used_tables_cache|= item->used_tables();
|
||||
not_null_tables_cache&= item->not_null_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1544,13 +1546,11 @@ double Item_func_elt::val()
|
|||
return 0.0;
|
||||
|
||||
double result= args[tmp-1]->val();
|
||||
if (args[tmp-1]->is_null())
|
||||
return 0.0;
|
||||
|
||||
null_value=0;
|
||||
null_value= args[tmp-1]->null_value;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
longlong Item_func_elt::val_int()
|
||||
{
|
||||
uint tmp;
|
||||
|
@ -1559,13 +1559,11 @@ longlong Item_func_elt::val_int()
|
|||
return 0;
|
||||
|
||||
int result= args[tmp-1]->val_int();
|
||||
if (args[tmp-1]->is_null())
|
||||
return 0;
|
||||
|
||||
null_value=0;
|
||||
null_value= args[tmp-1]->null_value;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
String *Item_func_elt::val_str(String *str)
|
||||
{
|
||||
uint tmp;
|
||||
|
@ -1574,10 +1572,7 @@ String *Item_func_elt::val_str(String *str)
|
|||
return NULL;
|
||||
|
||||
String *result= args[tmp-1]->val_str(str);
|
||||
if (args[tmp-1]->is_null())
|
||||
return NULL;
|
||||
|
||||
null_value=0;
|
||||
null_value= args[tmp-1]->null_value;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1600,8 +1595,9 @@ void Item_func_make_set::fix_length_and_dec()
|
|||
max_length=arg_count-1;
|
||||
for (uint i=1 ; i < arg_count ; i++)
|
||||
max_length+=args[i]->max_length;
|
||||
used_tables_cache|=item->used_tables();
|
||||
const_item_cache&=item->const_item();
|
||||
used_tables_cache|= item->used_tables();
|
||||
not_null_tables_cache&= item->not_null_tables();
|
||||
const_item_cache&= item->const_item();
|
||||
with_sum_func= with_sum_func || item->with_sum_func;
|
||||
}
|
||||
|
||||
|
|
|
@ -724,7 +724,9 @@ void Start_log_event::print(FILE* file, bool short_form, char* last_db)
|
|||
print_header(file);
|
||||
fprintf(file, "\tStart: binlog v %d, server v %s created ", binlog_version,
|
||||
server_version);
|
||||
print_timestamp(file, &created);
|
||||
print_timestamp(file);
|
||||
if (created)
|
||||
fprintf(file," at startup");
|
||||
fputc('\n', file);
|
||||
fflush(file);
|
||||
}
|
||||
|
|
|
@ -452,6 +452,26 @@ extern char server_version[SERVER_VERSION_LENGTH];
|
|||
class Start_log_event: public Log_event
|
||||
{
|
||||
public:
|
||||
/*
|
||||
If this event is at the start of the first binary log since server startup
|
||||
'created' should be the timestamp when the event (and the binary log) was
|
||||
created.
|
||||
In the other case (i.e. this event is at the start of a binary log created
|
||||
by FLUSH LOGS or automatic rotation), 'created' should be 0.
|
||||
This "trick" is used by MySQL >=4.0.14 slaves to know if they must drop the
|
||||
stale temporary tables or not.
|
||||
Note that when 'created'!=0, it is always equal to the event's timestamp;
|
||||
indeed Start_log_event is written only in log.cc where the first
|
||||
constructor below is called, in which 'created' is set to 'when'.
|
||||
So in fact 'created' is a useless variable. When it is 0
|
||||
we can read the actual value from timestamp ('when') and when it is
|
||||
non-zero we can read the same value from timestamp ('when'). Conclusion:
|
||||
- we use timestamp to print when the binlog was created.
|
||||
- we use 'created' only to know if this is a first binlog or not.
|
||||
In 3.23.57 we did not pay attention to this identity, so mysqlbinlog in
|
||||
3.23.57 does not print 'created the_date' if created was zero. This is now
|
||||
fixed.
|
||||
*/
|
||||
time_t created;
|
||||
uint16 binlog_version;
|
||||
char server_version[ST_SERVER_VER_LEN];
|
||||
|
|
|
@ -3154,7 +3154,7 @@ enum options {
|
|||
OPT_MAX_BINLOG_CACHE_SIZE, OPT_MAX_BINLOG_SIZE,
|
||||
OPT_MAX_CONNECTIONS, OPT_MAX_CONNECT_ERRORS,
|
||||
OPT_MAX_DELAYED_THREADS, OPT_MAX_HEP_TABLE_SIZE,
|
||||
OPT_MAX_JOIN_SIZE, OPT_MAX_SORT_LENGTH,
|
||||
OPT_MAX_JOIN_SIZE, OPT_MAX_SORT_LENGTH, OPT_MAX_SEEKS_FOR_KEY,
|
||||
OPT_MAX_TMP_TABLES, OPT_MAX_USER_CONNECTIONS,
|
||||
OPT_MAX_WRITE_LOCK_COUNT, OPT_BULK_INSERT_BUFFER_SIZE,
|
||||
OPT_MYISAM_BLOCK_SIZE, OPT_MYISAM_MAX_EXTRA_SORT_FILE_SIZE,
|
||||
|
@ -3832,6 +3832,11 @@ replicating a LOAD DATA INFILE command",
|
|||
(gptr*) &global_system_variables.max_join_size,
|
||||
(gptr*) &max_system_variables.max_join_size, 0, GET_HA_ROWS, REQUIRED_ARG,
|
||||
~0L, 1, ~0L, 0, 1, 0},
|
||||
{ "max_seeks_for_key", OPT_MAX_SEEKS_FOR_KEY,
|
||||
"Limit assumed max number of seeks when looking up rows based on a key",
|
||||
(gptr*) &global_system_variables.max_seeks_for_key,
|
||||
(gptr*) &max_system_variables.max_seeks_for_key, 0, GET_ULONG,
|
||||
REQUIRED_ARG, ~0L, 1, ~0L, 0, 1, 0 },
|
||||
{"max_sort_length", OPT_MAX_SORT_LENGTH,
|
||||
"The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored).",
|
||||
(gptr*) &global_system_variables.max_sort_length,
|
||||
|
|
|
@ -21,6 +21,9 @@
|
|||
Read packets are reallocated dynamicly when reading big packets.
|
||||
Each logical packet has the following pre-info:
|
||||
3 byte length & 1 byte package-number.
|
||||
|
||||
This file needs to be written in C as it's used by the libmysql client as a
|
||||
C file.
|
||||
*/
|
||||
|
||||
#ifdef __WIN__
|
||||
|
|
|
@ -2409,7 +2409,11 @@ QUICK_SELECT *get_quick_select_for_ref(TABLE *table, TABLE_REF *ref)
|
|||
if (!quick)
|
||||
return 0;
|
||||
if (cp_buffer_from_ref(ref))
|
||||
return quick; /* empty range */
|
||||
{
|
||||
if (current_thd->fatal_error)
|
||||
return 0; // End of memory
|
||||
return quick; // empty range
|
||||
}
|
||||
|
||||
QUICK_RANGE *range= new QUICK_RANGE();
|
||||
if (!range)
|
||||
|
|
|
@ -154,6 +154,8 @@ sys_var_thd_ulong sys_max_heap_table_size("max_heap_table_size",
|
|||
sys_var_thd_ha_rows sys_max_join_size("max_join_size",
|
||||
&SV::max_join_size,
|
||||
fix_max_join_size);
|
||||
sys_var_thd_ulong sys_max_seeks_for_key("max_seeks_for_key",
|
||||
&SV::max_seeks_for_key);
|
||||
#ifndef TO_BE_DELETED /* Alias for max_join_size */
|
||||
sys_var_thd_ha_rows sys_sql_max_join_size("sql_max_join_size",
|
||||
&SV::max_join_size,
|
||||
|
@ -348,6 +350,7 @@ sys_var *sys_variables[]=
|
|||
&sys_max_delayed_threads,
|
||||
&sys_max_heap_table_size,
|
||||
&sys_max_join_size,
|
||||
&sys_max_seeks_for_key,
|
||||
&sys_max_sort_length,
|
||||
&sys_max_tmp_tables,
|
||||
&sys_max_user_connections,
|
||||
|
@ -492,6 +495,7 @@ struct show_var_st init_vars[]= {
|
|||
{sys_max_delayed_threads.name,(char*) &sys_max_delayed_threads, SHOW_SYS},
|
||||
{sys_max_heap_table_size.name,(char*) &sys_max_heap_table_size, SHOW_SYS},
|
||||
{sys_max_join_size.name, (char*) &sys_max_join_size, SHOW_SYS},
|
||||
{sys_max_seeks_for_key.name, (char*) &sys_max_seeks_for_key, SHOW_SYS},
|
||||
{sys_max_sort_length.name, (char*) &sys_max_sort_length, SHOW_SYS},
|
||||
{sys_max_user_connections.name,(char*) &sys_max_user_connections, SHOW_SYS},
|
||||
{sys_max_tmp_tables.name, (char*) &sys_max_tmp_tables, SHOW_SYS},
|
||||
|
@ -1079,6 +1083,11 @@ byte *sys_var_thd_conv_charset::value_ptr(THD *thd, enum_var_type type)
|
|||
}
|
||||
|
||||
|
||||
void sys_var_thd_conv_charset::set_default(THD *thd, enum_var_type type)
|
||||
{
|
||||
thd->variables.convert_set= global_system_variables.convert_set;
|
||||
}
|
||||
|
||||
|
||||
bool sys_var_timestamp::update(THD *thd, set_var *var)
|
||||
{
|
||||
|
|
|
@ -412,6 +412,7 @@ public:
|
|||
return type != STRING_RESULT; /* Only accept strings */
|
||||
}
|
||||
bool check_default(enum_var_type type) { return 0; }
|
||||
void set_default(THD *thd, enum_var_type type);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -212,14 +212,14 @@
|
|||
"Bloqueos de actualización no pueden ser adqueridos durante una transición READ UNCOMMITTED",
|
||||
"DROP DATABASE no permitido mientras un thread está ejerciendo un bloqueo de lectura global",
|
||||
"CREATE DATABASE no permitido mientras un thread está ejerciendo un bloqueo de lectura global",
|
||||
"Wrong arguments to %s",
|
||||
"%-.32s@%-.64s is not allowed to create new users",
|
||||
"Incorrect table definition; All MERGE tables must be in the same database",
|
||||
"Deadlock found when trying to get lock; Try restarting transaction",
|
||||
"The used table type doesn't support FULLTEXT indexes",
|
||||
"Cannot add foreign key constraint",
|
||||
"Cannot add a child row: a foreign key constraint fails",
|
||||
"Cannot delete a parent row: a foreign key constraint fails",
|
||||
"Argumentos errados para %s",
|
||||
"%-.32s@%-.64s no es permitido para crear nuevos usuarios",
|
||||
"Incorrecta definición de la tabla; Todas las tablas MERGE deben estar en el mismo banco de datos",
|
||||
"Encontrado deadlock cuando tentando obtener el bloqueo; Tente recomenzar la transición",
|
||||
"El tipo de tabla usada no soporta índices FULLTEXT",
|
||||
"No puede adicionar clave extranjera constraint",
|
||||
"No puede adicionar una línea hijo: falla de clave extranjera constraint",
|
||||
"No puede deletar una línea padre: falla de clave extranjera constraint",
|
||||
"Error de coneccion a master: %-128s",
|
||||
"Error executando el query en master: %-128%",
|
||||
"Error de %s: %-128%",
|
||||
|
|
|
@ -2146,8 +2146,7 @@ static int exec_relay_log_event(THD* thd, RELAY_LOG_INFO* rli)
|
|||
DBUG_ASSERT(rli->sql_thd==thd);
|
||||
if (sql_slave_killed(thd,rli))
|
||||
{
|
||||
/* do not forget to free ev ! */
|
||||
if (ev) delete ev;
|
||||
delete ev;
|
||||
return 1;
|
||||
}
|
||||
if (ev)
|
||||
|
|
|
@ -1903,11 +1903,11 @@ bool setup_tables(TABLE_LIST *tables)
|
|||
|
||||
table->used_fields=0;
|
||||
table->const_table=0;
|
||||
table->outer_join=table->null_row=0;
|
||||
table->null_row=0;
|
||||
table->status=STATUS_NO_RECORD;
|
||||
table->keys_in_use_for_query= table->keys_in_use;
|
||||
table->used_keys= table->keys_for_keyread;
|
||||
table->maybe_null=test(table->outer_join=table_list->outer_join);
|
||||
table->maybe_null=test(table->outer_join= table_list->outer_join);
|
||||
table->tablenr=tablenr;
|
||||
table->map= (table_map) 1 << tablenr;
|
||||
table->force_index= table_list->force_index;
|
||||
|
@ -2027,6 +2027,7 @@ insert_fields(THD *thd,TABLE_LIST *tables, const char *db_name,
|
|||
|
||||
int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds)
|
||||
{
|
||||
table_map not_null_tables= 0;
|
||||
DBUG_ENTER("setup_conds");
|
||||
thd->set_query_id=1;
|
||||
thd->cond_count=0;
|
||||
|
@ -2036,6 +2037,7 @@ int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds)
|
|||
thd->where="where clause";
|
||||
if ((*conds)->fix_fields(thd,tables))
|
||||
DBUG_RETURN(1);
|
||||
not_null_tables= (*conds)->not_null_tables();
|
||||
}
|
||||
|
||||
/* Check if we are using outer joins */
|
||||
|
@ -2049,9 +2051,15 @@ int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds)
|
|||
DBUG_RETURN(1);
|
||||
thd->cond_count++;
|
||||
|
||||
/* If it's a normal join, add the ON/USING expression to the WHERE */
|
||||
if (!table->outer_join)
|
||||
/*
|
||||
If it's a normal join or a LEFT JOIN which can be optimized away
|
||||
add the ON/USING expression to the WHERE
|
||||
*/
|
||||
if (!table->outer_join ||
|
||||
((table->table->map & not_null_tables) &&
|
||||
!(specialflag & SPECIAL_NO_NEW_FUNC)))
|
||||
{
|
||||
table->outer_join= 0;
|
||||
if (!(*conds=and_conds(*conds, table->on_expr)))
|
||||
DBUG_RETURN(1);
|
||||
table->on_expr=0;
|
||||
|
|
|
@ -310,6 +310,7 @@ struct system_variables
|
|||
ulong tx_isolation;
|
||||
ulong table_type;
|
||||
ulong default_week_format;
|
||||
ulong max_seeks_for_key;
|
||||
|
||||
my_bool log_warnings;
|
||||
my_bool low_priority_updates;
|
||||
|
@ -781,11 +782,12 @@ class Unique :public Sql_alloc
|
|||
TREE tree;
|
||||
byte *record_pointers;
|
||||
bool flush();
|
||||
uint size;
|
||||
|
||||
public:
|
||||
ulong elements;
|
||||
Unique(qsort_cmp2 comp_func, void * comp_func_fixed_arg,
|
||||
uint size, ulong max_in_memory_size_arg);
|
||||
uint size_arg, ulong max_in_memory_size_arg);
|
||||
~Unique();
|
||||
inline bool unique_add(gptr ptr)
|
||||
{
|
||||
|
@ -800,26 +802,27 @@ public:
|
|||
friend int unique_write_to_ptrs(gptr key, element_count count, Unique *unique);
|
||||
};
|
||||
|
||||
class multi_delete : public select_result {
|
||||
TABLE_LIST *delete_tables, *table_being_deleted;
|
||||
Unique **tempfiles;
|
||||
THD *thd;
|
||||
ha_rows deleted;
|
||||
uint num_of_tables;
|
||||
int error;
|
||||
bool do_delete, transactional_tables, log_delayed, normal_tables;
|
||||
public:
|
||||
multi_delete(THD *thd, TABLE_LIST *dt, uint num_of_tables);
|
||||
~multi_delete();
|
||||
int prepare(List<Item> &list);
|
||||
bool send_fields(List<Item> &list,
|
||||
class multi_delete : public select_result
|
||||
{
|
||||
TABLE_LIST *delete_tables, *table_being_deleted;
|
||||
Unique **tempfiles;
|
||||
THD *thd;
|
||||
ha_rows deleted;
|
||||
uint num_of_tables;
|
||||
int error;
|
||||
bool do_delete, transactional_tables, log_delayed, normal_tables;
|
||||
public:
|
||||
multi_delete(THD *thd, TABLE_LIST *dt, uint num_of_tables);
|
||||
~multi_delete();
|
||||
int prepare(List<Item> &list);
|
||||
bool send_fields(List<Item> &list,
|
||||
uint flag) { return 0; }
|
||||
bool send_data(List<Item> &items);
|
||||
bool initialize_tables (JOIN *join);
|
||||
void send_error(uint errcode,const char *err);
|
||||
int do_deletes (bool from_send_error);
|
||||
bool send_eof();
|
||||
};
|
||||
bool send_data(List<Item> &items);
|
||||
bool initialize_tables (JOIN *join);
|
||||
void send_error(uint errcode,const char *err);
|
||||
int do_deletes (bool from_send_error);
|
||||
bool send_eof();
|
||||
};
|
||||
|
||||
class multi_update : public select_result
|
||||
{
|
||||
|
|
|
@ -1274,14 +1274,14 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
|
|||
|
||||
/*
|
||||
Set a max range of how many seeks we can expect when using keys
|
||||
This was (s->read_time*5), but this was too low with small rows
|
||||
This is can't be to high as otherwise we are likely to use
|
||||
table scan.
|
||||
*/
|
||||
s->worst_seeks= (double) s->found_records / 5;
|
||||
s->worst_seeks= min((double) s->found_records / 10,
|
||||
(double) s->read_time*3);
|
||||
if (s->worst_seeks < 2.0) // Fix for small tables
|
||||
s->worst_seeks=2.0;
|
||||
|
||||
/* if (s->type == JT_EQ_REF)
|
||||
continue; */
|
||||
if (s->const_keys)
|
||||
{
|
||||
ha_rows records;
|
||||
|
@ -1887,6 +1887,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
best=best_time=records=DBL_MAX;
|
||||
KEYUSE *best_key=0;
|
||||
uint best_max_key_part=0;
|
||||
my_bool found_constrain= 0;
|
||||
|
||||
if (s->keyuse)
|
||||
{ /* Use key if possible */
|
||||
|
@ -1967,6 +1968,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
}
|
||||
else
|
||||
{
|
||||
found_constrain= 1;
|
||||
/*
|
||||
Check if we found full key
|
||||
*/
|
||||
|
@ -2003,16 +2005,18 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
records=2.0; // Can't be as good as a unique
|
||||
}
|
||||
}
|
||||
/* Limit the number of matched rows */
|
||||
tmp= records;
|
||||
set_if_smaller(tmp, (double) thd->variables.max_seeks_for_key);
|
||||
if (table->used_keys & ((key_map) 1 << key))
|
||||
{
|
||||
/* we can use only index tree */
|
||||
uint keys_per_block= table->file->block_size/2/
|
||||
(keyinfo->key_length+table->file->ref_length)+1;
|
||||
tmp=(record_count*(records+keys_per_block-1)/
|
||||
keys_per_block);
|
||||
tmp=record_count*(tmp+keys_per_block-1)/keys_per_block;
|
||||
}
|
||||
else
|
||||
tmp=record_count*min(records,s->worst_seeks);
|
||||
tmp=record_count*min(tmp,s->worst_seeks);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -2042,7 +2046,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
{
|
||||
/*
|
||||
Assume that the first key part matches 1% of the file
|
||||
and that the hole key matches 10 (dupplicates) or 1
|
||||
and that the hole key matches 10 (duplicates) or 1
|
||||
(unique) records.
|
||||
Assume also that more key matches proportionally more
|
||||
records
|
||||
|
@ -2074,6 +2078,8 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
records=(ulong) tmp;
|
||||
}
|
||||
}
|
||||
/* Limit the number of matched rows */
|
||||
set_if_smaller(tmp, (double) thd->variables.max_seeks_for_key);
|
||||
if (table->used_keys & ((key_map) 1 << key))
|
||||
{
|
||||
/* we can use only index tree */
|
||||
|
@ -2116,20 +2122,31 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
s->table->used_keys && best_key) &&
|
||||
!(s->table->force_index && best_key))
|
||||
{ // Check full join
|
||||
ha_rows rnd_records= s->found_records;
|
||||
if (s->on_expr)
|
||||
{
|
||||
tmp=rows2double(s->found_records); // Can't use read cache
|
||||
tmp=rows2double(rnd_records); // Can't use read cache
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp=(double) s->read_time;
|
||||
/* Calculate time to read through cache */
|
||||
/* Calculate time to read previous rows through cache */
|
||||
tmp*=(1.0+floor((double) cache_record_length(join,idx)*
|
||||
record_count /
|
||||
(double) thd->variables.join_buff_size));
|
||||
}
|
||||
|
||||
/*
|
||||
If there is a restriction on the table, assume that 25% of the
|
||||
rows can be skipped on next part.
|
||||
This is to force tables that this table depends on before this
|
||||
table
|
||||
*/
|
||||
if (found_constrain)
|
||||
rnd_records-= rnd_records/4;
|
||||
|
||||
if (best == DBL_MAX ||
|
||||
(tmp + record_count/(double) TIME_FOR_COMPARE*s->found_records <
|
||||
(tmp + record_count/(double) TIME_FOR_COMPARE*rnd_records <
|
||||
best + record_count/(double) TIME_FOR_COMPARE*records))
|
||||
{
|
||||
/*
|
||||
|
@ -2137,7 +2154,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
|
|||
will ensure that this will be used
|
||||
*/
|
||||
best=tmp;
|
||||
records= rows2double(s->found_records);
|
||||
records= rows2double(rnd_records);
|
||||
best_key=0;
|
||||
}
|
||||
}
|
||||
|
@ -5944,6 +5961,8 @@ create_sort_index(JOIN_TAB *tab, ORDER *order, ha_rows filesort_limit,
|
|||
/*
|
||||
We have a ref on a const; Change this to a range that filesort
|
||||
can use.
|
||||
For impossible ranges (like when doing a lookup on NULL on a NOT NULL
|
||||
field, quick will contain an empty record set.
|
||||
*/
|
||||
if (!(select->quick=get_ft_or_quick_select_for_ref(table, tab)))
|
||||
goto err;
|
||||
|
|
|
@ -49,8 +49,8 @@ int unique_write_to_ptrs(gptr key, element_count count, Unique *unique)
|
|||
}
|
||||
|
||||
Unique::Unique(qsort_cmp2 comp_func, void * comp_func_fixed_arg,
|
||||
uint size, ulong max_in_memory_size_arg)
|
||||
:max_in_memory_size(max_in_memory_size_arg),elements(0)
|
||||
uint size_arg, ulong max_in_memory_size_arg)
|
||||
:max_in_memory_size(max_in_memory_size_arg), size(size_arg), elements(0)
|
||||
{
|
||||
my_b_clear(&file);
|
||||
init_tree(&tree, max_in_memory_size / 16, 0, size, comp_func, 0, NULL,
|
||||
|
@ -101,7 +101,7 @@ bool Unique::get(TABLE *table)
|
|||
{
|
||||
/* Whole tree is in memory; Don't use disk if you don't need to */
|
||||
if ((record_pointers=table->record_pointers= (byte*)
|
||||
my_malloc(tree.size_of_element * tree.elements_in_tree, MYF(0))))
|
||||
my_malloc(size * tree.elements_in_tree, MYF(0))))
|
||||
{
|
||||
(void) tree_walk(&tree, (tree_walk_action) unique_write_to_ptrs,
|
||||
this, left_root_right);
|
||||
|
|
Loading…
Reference in a new issue