Commit 65d79805 authored by unknown's avatar unknown

merge changes


mysql-test/r/insert_select.result:
  Auto merged
mysql-test/t/insert_select.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
parents 12d879c9 49938821
......@@ -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.
......
......@@ -248,7 +248,8 @@ if ($opt_stage <= 1)
$opt_config_options.= $opt_with_other_libc;
}
check_system("$opt_config_env ./configure --prefix=/usr/local/mysql --with-comment=\"Official MySQL$opt_version_suffix binary\" --with-extra-charsets=complex --with-server-suffix=\"$opt_version_suffix\" --enable-thread-safe-client --enable-local-infile $opt_config_options","Thank you for choosing MySQL");
$prefix="/usr/local/mysql";
check_system("$opt_config_env ./configure --prefix=$prefix --localstatedir=$prefix/data --libexecdir=$prefix/bin --with-comment=\"Official MySQL$opt_version_suffix binary\" --with-extra-charsets=complex --with-server-suffix=\"$opt_version_suffix\" --enable-thread-safe-client --enable-local-infile $opt_config_options","Thank you for choosing MySQL");
if (-d "$pwd/$host/include-mysql")
{
safe_system("cp -r $pwd/$host/include-mysql/* $pwd/$host/$ver/include");
......
[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
[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
[<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
[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
[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=
[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=
[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
[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
[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=
[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
[General]
Type=REGISTRYDATA
Version=1.00.000
This diff is collapsed.
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
\ No newline at end of file
[Data]
Folder3=<FOLDER_STARTUP>
Group0=Main
Group1=Startup
Folder0=<FOLDER_DESKTOP>
Folder1=<FOLDER_STARTMENU>
Folder2=<FOLDER_PROGRAMS>
[Info]
Type=ShellObject
Version=1.00.000
[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
[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=
[<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
[<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
[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
[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
[<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
[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
[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=
[General]
Type=FILELIST
Version=1.00.000
[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=
[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
[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
[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=
[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
[General]
Type=REGISTRYDATA
Version=1.00.000
This diff is collapsed.
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
\ No newline at end of file
[Data]
Folder3=<FOLDER_STARTUP>
Group0=Main
Group1=Startup
Folder0=<FOLDER_DESKTOP>
Folder1=<FOLDER_STARTMENU>
Folder2=<FOLDER_PROGRAMS>
[Info]
Type=ShellObject
Version=1.00.000
[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
[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=
[<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=
[<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;
......
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
# 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);
......
/* 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 @@ class handler :public Sql_alloc
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;}
......
......@@ -71,7 +71,24 @@ class Item {
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 @@ class Item_func_ifnull :public Item_func
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 @@ class Item_func_if :public Item_func
}
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 @@ class Item_func_nullif :public Item_bool_func2
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 @@ class Item_func_coalesce :public Item_func
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 @@ class Item_func_case :public Item_func
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 @@ class Item_func_isnull :public Item_bool_func
}
}
}
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 @@ class Item_func_isnotnull :public Item_bool_func
}
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 @@ class Item_cond_or :public Item_cond
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 @@ class Item_func :public Item_result_field
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 @@ class Item_func :public Item_result_field
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 @@ class Item_func_field :public Item_int_func
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 @@ class Item_func_field :public Item_int_func
{
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 @@ class Item_udf_func :public Item_func
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 @@ class Item_func_match :public Item_real_func
}
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 @@ class sys_var_thd_conv_charset :public sys_var_thd
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);
};
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment