summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormonty@hundin.mysql.fi <>2001-10-31 03:22:31 +0200
committermonty@hundin.mysql.fi <>2001-10-31 03:22:31 +0200
commit5a9ce774dc413ac7b6342a9097f4e2456d0df63f (patch)
treea7cd1bf6f7f295d11ffce88081f69bc1963bfd06
parent7f38949c6be7dba794a786b4fe53132f7f5751e5 (diff)
downloadmariadb-git-5a9ce774dc413ac7b6342a9097f4e2456d0df63f.tar.gz
Update for OS2 (patch from Yuri Dario).
Use LONG_TIMEOUT (one year) instead of ~0 for long timeouts Fixed error messages. Fixed problem with const propagation when comparing columns of different types
-rw-r--r--Docs/manual.texi12
-rw-r--r--client/client_priv.h1
-rw-r--r--client/mysqldump.c13
-rw-r--r--include/mysqld_error.h18
-rw-r--r--isam/create.c6
-rw-r--r--myisam/myisamchk.c4
-rw-r--r--myisam/myisampack.c2
-rw-r--r--mysys/mf_cache.c4
-rw-r--r--mysys/mf_tempfile.c3
-rw-r--r--mysys/my_os2file64.c58
-rw-r--r--mysys/my_tempnam.c3
-rw-r--r--os2/BldLevel.cmd10
-rw-r--r--os2/BldLevel.rc1
-rw-r--r--os2/BldLevelInf.cmd570
-rw-r--r--os2/ChangeLog.os210
-rw-r--r--os2/MySQL-Client.icc46
-rw-r--r--os2/MySQL-Opt.icc47
-rw-r--r--os2/MySQL-Source.icc81
-rw-r--r--os2/MySQL-Sql.icc89
-rw-r--r--os2/MySQL-Util.icc80
-rw-r--r--os2/ReadMe.txt177
-rw-r--r--os2/mysql-inf.wis15
-rw-r--r--os2/mysql.wis127
-rw-r--r--os2/mysqlalt.wis15
-rw-r--r--sql/mysqld.cc24
-rw-r--r--sql/nt_servc.cc449
-rw-r--r--sql/share/czech/errmsg.txt8
-rw-r--r--sql/share/danish/errmsg.txt8
-rw-r--r--sql/share/dutch/errmsg.txt10
-rw-r--r--sql/share/english/errmsg.txt10
-rw-r--r--sql/share/estonian/errmsg.txt8
-rw-r--r--sql/share/french/errmsg.txt8
-rw-r--r--sql/share/german/errmsg.txt8
-rw-r--r--sql/share/greek/errmsg.txt9
-rw-r--r--sql/share/hungarian/errmsg.txt9
-rw-r--r--sql/share/italian/errmsg.txt9
-rw-r--r--sql/share/japanese/errmsg.txt9
-rw-r--r--sql/share/korean/errmsg.txt9
-rwxr-xr-xsql/share/norwegian-ny/.cvsignore1
-rw-r--r--sql/share/norwegian-ny/errmsg.txt9
-rwxr-xr-xsql/share/norwegian/.cvsignore1
-rw-r--r--sql/share/norwegian/errmsg.txt9
-rw-r--r--sql/share/polish/errmsg.txt9
-rw-r--r--sql/share/portuguese/errmsg.txt9
-rw-r--r--sql/share/romanian/errmsg.txt9
-rw-r--r--sql/share/russian/errmsg.txt31
-rw-r--r--sql/share/slovak/errmsg.txt9
-rw-r--r--sql/share/spanish/errmsg.txt9
-rw-r--r--sql/share/swedish/errmsg.txt17
-rw-r--r--sql/share/ukrainian/errmsg.txt9
-rw-r--r--sql/sql_select.cc15
51 files changed, 1442 insertions, 665 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 6514b36e703..e01f8ceb5b4 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -46840,6 +46840,12 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.44
@itemize @bullet
@item
+Fixed bug in const-propagation when comparing columns of different
+types. (@code{SELECT * FROM date_col="2001-01-01" and date_col=time_col})
+@item
+Fixed bug that caused error message @code{Can't write, because of unique
+constraint} with some @code{GROUP BY} queries.
+@item
Fixed problem with sjis character strings used within quoted table names.
@item
Fixed coredump when using @code{CREATE ... FULLTEXT} keys with other table
@@ -46847,6 +46853,8 @@ handlers than MyISAM.
@item
Add missing @code{InnoDB} variables to @code{SHOW VARIABLES}.
@item
+Foreign keys checking is now done for @code{InnoDB} tables.
+@item
Don't use @code{signal()} on windows because this appears to not be
100 % reliable.
@item
@@ -46858,7 +46866,9 @@ Fixed bug when doing @code{LEFT JOIN ... ON (column_name = constant) WHERE colu
When using replications, aborted queries that contained @code{%} could cause
a core dump.
@item
-TCP_NODELAY was not used on some systems. (Speed problem).
+@code{TCP_NODELAY} was not used on some systems. (Speed problem).
+@item
+Applied portability fixes for OS/2 (Patch by Yuri Dario).
@end itemize
@node News-3.23.43, News-3.23.42, News-3.23.44, News-3.23.x
diff --git a/client/client_priv.h b/client/client_priv.h
index 7bee03a8ab5..377d42763a2 100644
--- a/client/client_priv.h
+++ b/client/client_priv.h
@@ -28,4 +28,5 @@
enum options { OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
OPT_PAGER, OPT_NOPAGER, OPT_TEE, OPT_NOTEE,
OPT_LOW_PRIORITY, OPT_AUTO_REPAIR, OPT_COMPRESS,
+ OPT_DROP, OPT_LOCKS, OPT_KEYWORDS, OPT_DELAYED, OPT_OPTIMIZE,
OPT_FTB, OPT_LTB, OPT_ENC, OPT_O_ENC, OPT_ESC, OPT_TABLES};
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 597a1393f69..12e08669864 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -44,6 +44,7 @@
#include <m_string.h>
#include <m_ctype.h>
+#include "client_priv.h"
#include "mysql.h"
#include "mysql_version.h"
#include "mysqld_error.h"
@@ -87,10 +88,6 @@ static DYNAMIC_STRING extended_row;
#include "sslopt-vars.h"
FILE *md_result_file;
-enum md_options {OPT_FTB=256, OPT_LTB, OPT_ENC, OPT_O_ENC, OPT_ESC,
- OPT_KEYWORDS, OPT_LOCKS, OPT_DROP, OPT_OPTIMIZE, OPT_DELAYED,
- OPT_TABLES, MD_OPT_CHARSETS_DIR, MD_OPT_DEFAULT_CHARSET};
-
static struct option long_options[] =
{
{"all-databases", no_argument, 0, 'A'},
@@ -98,12 +95,12 @@ static struct option long_options[] =
{"add-drop-table", no_argument, 0, OPT_DROP},
{"add-locks", no_argument, 0, OPT_LOCKS},
{"allow-keywords", no_argument, 0, OPT_KEYWORDS},
- {"character-sets-dir",required_argument,0, MD_OPT_CHARSETS_DIR},
+ {"character-sets-dir",required_argument,0, OPT_CHARSETS_DIR},
{"complete-insert", no_argument, 0, 'c'},
{"compress", no_argument, 0, 'C'},
{"databases", no_argument, 0, 'B'},
{"debug", optional_argument, 0, '#'},
- {"default-character-set", required_argument, 0, MD_OPT_DEFAULT_CHARSET},
+ {"default-character-set", required_argument, 0, OPT_DEFAULT_CHARSET},
{"delayed-insert", no_argument, 0, OPT_DELAYED},
{"extended-insert", no_argument, 0, 'e'},
{"fields-terminated-by", required_argument, 0, (int) OPT_FTB},
@@ -307,10 +304,10 @@ static int get_options(int *argc,char ***argv)
case 'A':
opt_alldbs=1;
break;
- case MD_OPT_DEFAULT_CHARSET:
+ case OPT_DEFAULT_CHARSET:
default_charset= optarg;
break;
- case MD_OPT_CHARSETS_DIR:
+ case OPT_CHARSETS_DIR:
charsets_dir= optarg;
break;
case 'f':
diff --git a/include/mysqld_error.h b/include/mysqld_error.h
index af0c8508671..bfa279193b7 100644
--- a/include/mysqld_error.h
+++ b/include/mysqld_error.h
@@ -214,16 +214,8 @@
#define ER_NO_PERMISSON_TO_CREATE_USER 1211
#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212
#define ER_LOCK_DEADLOCK 1213
-#define ER_DUMMY1 1214
-#define ER_DUMMY2 1215
-#define ER_DUMMY3 1216
-#define ER_DUMMY4 1217
-#define ER_DUMMY5 1218
-#define ER_DUMMY6 1219
-#define ER_DUMMY7 1220
-#define ER_DUMMY8 1221
-#define ER_TABLE_CANT_HANDLE_FULLTEXT 1222
-#define ER_CANNOT_ADD_FOREIGN 1223
-#define ER_NO_REFERENCED_ROW 1224
-#define ER_ROW_IS_REFERENCED 1225
-#define ER_ERROR_MESSAGES 226
+#define ER_TABLE_CANT_HANDLE_FULLTEXT 1214
+#define ER_CANNOT_ADD_FOREIGN 1215
+#define ER_NO_REFERENCED_ROW 1216
+#define ER_ROW_IS_REFERENCED 1217
+#define ER_ERROR_MESSAGES 218
diff --git a/isam/create.c b/isam/create.c
index bcdd6b0892a..c59b20d8b0c 100644
--- a/isam/create.c
+++ b/isam/create.c
@@ -253,10 +253,10 @@ int nisam_create(const char *name,uint keys,N_KEYDEF *keyinfo,
share.base.fields=fields;
share.base.pack_fields=packed;
share.base.sortkey= (ushort) ~0;
- share.base.max_data_file_length= (pointer == 4) ? ~0L :
+ share.base.max_data_file_length= (pointer == 4) ? (ulong) ~0L :
(options & (HA_OPTION_PACK_RECORD | HA_OPTION_COMPRESS_RECORD)) ?
- (1L << (pointer*8)) :
- (pointer == 3 && reclength >= 256L) ? NI_POS_ERROR :
+ (ulong) (1L << (pointer*8)) :
+ (pointer == 3 && reclength >= 256L) ? (ulong) NI_POS_ERROR :
((ulong) reclength * (1L << (pointer*8)));
share.base.max_key_file_length= (share.base.key_reflength == 3 ?
NI_POS_ERROR :
diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c
index aa0713437f4..d8d57863a11 100644
--- a/myisam/myisamchk.c
+++ b/myisam/myisamchk.c
@@ -35,6 +35,10 @@ SET_STACK_SIZE(9000) /* Minimum stack size for program */
#define my_raid_delete(A,B,C) my_delete(A,B)
#endif
+#ifdef OS2
+#define _sanity(a,b)
+#endif
+
static uint decode_bits;
static char **default_argv;
static const char *load_default_groups[]= { "myisamchk", 0 };
diff --git a/myisam/myisampack.c b/myisam/myisampack.c
index 54a8db457e8..1aee5f20fa8 100644
--- a/myisam/myisampack.c
+++ b/myisam/myisampack.c
@@ -229,7 +229,7 @@ int main(int argc, char **argv)
#endif
}
-enum options {OPT_CHARSETS_DIR_MP=256};
+enum options_mp {OPT_CHARSETS_DIR_MP=256};
static struct option long_options[] =
{
diff --git a/mysys/mf_cache.c b/mysys/mf_cache.c
index ff29926ac50..8d6eda8305a 100644
--- a/mysys/mf_cache.c
+++ b/mysys/mf_cache.c
@@ -37,11 +37,11 @@ static my_bool cache_remove_open_tmp(IO_CACHE *cache, const char *name)
#else
int length;
if (!(cache->file_name=
- (char*) my_malloc((length=strlen(name)+1),MYF(MY_WME)))
+ (char*) my_malloc((length=strlen(name)+1),MYF(MY_WME))))
{
my_close(cache->file,MYF(0));
cache->file = -1;
- errno=my_error=ENOMEM;
+ errno=my_errno=ENOMEM;
return 1;
}
memcpy(cache->file_name,name,length);
diff --git a/mysys/mf_tempfile.c b/mysys/mf_tempfile.c
index 2cdd720edbd..465311088c1 100644
--- a/mysys/mf_tempfile.c
+++ b/mysys/mf_tempfile.c
@@ -126,6 +126,9 @@ File create_temp_file(char *to, const char *dir, const char *prefix,
// changing environ variable doesn't work with VACPP
char buffer[256];
sprintf( buffer, "TMP=%s", dir);
+ // remove ending backslash
+ if (buffer[strlen(buffer)-1] == '\\')
+ buffer[strlen(buffer)-1] = '\0';
putenv( buffer);
#else
old_env= (char**) environ;
diff --git a/mysys/my_os2file64.c b/mysys/my_os2file64.c
index 8964e562ea1..b7ee40d292e 100644
--- a/mysys/my_os2file64.c
+++ b/mysys/my_os2file64.c
@@ -22,7 +22,6 @@ void _OS2errno( APIRET rc);
longlong _lseek64( int fd, longlong offset, int seektype);
int _lock64( int fd, int locktype, my_off_t start,
my_off_t length, myf MyFlags);
-int _sopen64( const char *name, int oflag, int shflag, int mask);
//
// this class is used to define a global c++ variable, that
@@ -255,7 +254,7 @@ int _lock64( int fd, int locktype, my_off_t start,
return(-1);
}
-int _sopen64( const char *name, int oflag, int shflag, int mask)
+int _sopen( const char *name, int oflag, int shflag, int mask)
{
int fail_errno;
APIRET rc = 0;
@@ -325,17 +324,60 @@ int _sopen64( const char *name, int oflag, int shflag, int mask)
return hf;
}
-inline int open( const char *name, int oflag)
+int read( int fd, void *buffer, unsigned int count)
{
- return _sopen64( name, oflag, OPEN_SHARE_DENYNONE, S_IREAD | S_IWRITE);
+ APIRET rc;
+ ULONG actual;
+
+ rc = DosRead( fd, (PVOID) buffer, count, &actual);
+
+ if (!rc)
+ return( actual);/* NO_ERROR */
+
+ // set errno
+ _OS2errno( rc);
+ // write failed
+ return(-1);
}
-inline int open( const char *name, int oflag, int mask)
+int write( int fd, const void *buffer, unsigned int count)
{
- return _sopen64( name, oflag, OPEN_SHARE_DENYNONE, mask);
+ APIRET rc;
+ ULONG actual;
+
+ rc = DosWrite( fd, (PVOID) buffer, count, &actual);
+
+ if (!rc)
+ return( actual);/* NO_ERROR */
+
+ // set errno
+ _OS2errno( rc);
+ // write failed
+ return(-1);
+}
+
+int close( int fd)
+{
+ APIRET rc;
+ ULONG actual;
+
+ rc = DosClose( fd);
+
+ if (!rc)
+ return( 0);/* NO_ERROR */
+
+ // set errno
+ _OS2errno( rc);
+ // write failed
+ return(-1);
}
-inline int sopen( const char *name, int oflag, int shflag, int mask)
+inline int open( const char *name, int oflag)
+{
+ return sopen( name, oflag, OPEN_SHARE_DENYNONE, S_IREAD | S_IWRITE);
+}
+
+inline int open( const char *name, int oflag, int mask)
{
- return _sopen64( name, oflag, shflag, mask);
+ return sopen( name, oflag, OPEN_SHARE_DENYNONE, mask);
}
diff --git a/mysys/my_tempnam.c b/mysys/my_tempnam.c
index 7da037e8d49..6b7ac099581 100644
--- a/mysys/my_tempnam.c
+++ b/mysys/my_tempnam.c
@@ -95,6 +95,9 @@ my_string my_tempnam(const char *dir, const char *pfx,
// changing environ variable doesn't work with VACPP
char buffer[256];
sprintf( buffer, "TMP=%s", dir);
+ // remove ending backslash
+ if (buffer[strlen(buffer)-1] == '\\')
+ buffer[strlen(buffer)-1] = '\0';
putenv( buffer);
#else
old_env=(char**)environ;
diff --git a/os2/BldLevel.cmd b/os2/BldLevel.cmd
new file mode 100644
index 00000000000..2bc85a06abb
--- /dev/null
+++ b/os2/BldLevel.cmd
@@ -0,0 +1,10 @@
+@echo off
+
+REM I'm using resources for BLDLEVEL info, because VA4 linker has the bad
+REM feature of using versionstring content for padding files.
+
+REM To set fixpak level: -P"fixpak level"
+SET MYSQL_VERSION=3.23.42
+SET MYSQL_BUILD=1
+
+BldLevelInf -V%MYSQL_VERSION% -N"MySQL AB, Yuri Dario" -D"MySQL %MYSQL_VERSION% for OS/2 - Build %MYSQL_BUILD%" -Len BldLevel.rc
diff --git a/os2/BldLevel.rc b/os2/BldLevel.rc
new file mode 100644
index 00000000000..fe266a25c3c
--- /dev/null
+++ b/os2/BldLevel.rc
@@ -0,0 +1 @@
+RCDATA 1 { "@#MySQL AB, Yuri Dario:3.23.42#@##1## 10 Sep 2001 11:57:17 paperino::en::::@@MySQL 3.23.42 for OS/2 - Build 1" }
diff --git a/os2/BldLevelInf.cmd b/os2/BldLevelInf.cmd
new file mode 100644
index 00000000000..40a85f3782a
--- /dev/null
+++ b/os2/BldLevelInf.cmd
@@ -0,0 +1,570 @@
+/* $Id: BldLevelInf.cmd,v 1.5 2001/01/26 21:33:13 phaller Exp $
+ *
+ * Adds a Description string to the given .def-file.
+ * Fills in default values; like build time and host.
+ *
+ */
+
+if RxFuncQuery('SysLoadFuncs') = 1 then
+do
+ call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs';
+ call SysLoadFuncs;
+end
+
+
+/*
+ * Set default parameter values.
+ */
+sDefFileIn = '';
+sDefFileOut = '';
+sASDFeatureId = '';
+sCountryCode = '';
+sDateTime = left(' 'date()' 'time(), 26);
+sDescription = 'Odin32';
+sFixPakVer = '';
+sHostname = strip(substr(VALUE('HOSTNAME',,'OS2ENVIRONMENT'), 1, 11));
+sLanguageCode = '';
+sMiniVer = '';
+sVendor = 'Project Odin';
+sVersion = '0.5';
+
+
+/*
+ * Parse parameters.
+ */
+parse arg sArgs
+if (sArgs = '') then
+do
+ call syntax;
+ exit(1);
+end
+
+do while (sArgs <> '')
+ sArgs = strip(sArgs);
+ if (substr(sArgs, 1, 1) = '-' | substr(sArgs, 1, 1) = '/') then
+ do /*
+ * Option.
+ */
+ ch = translate(substr(sArgs, 2, 1));
+ if (pos(ch, 'ACDHLMNPRTV') < 1) then
+ do
+ say 'invalid option:' substr(sArgs, 1, 2);
+ call syntax;
+ exit(2);
+ end
+
+ /* get value and advance sArgs to next or to end. */
+ if (substr(sArgs, 3, 1) = '"') then
+ do
+ iNext = pos('"', sArgs, 4);
+ fQuote = 1;
+ end
+ else
+ do
+ iNext = pos(' ', sArgs, 3);
+ if (iNext <= 0) then
+ iNext = length(sArgs);
+ fQuote = 0;
+ end
+
+ if (iNext > 3 | ch = 'R') then
+ do
+ sValue = substr(sArgs, 3 + fQuote, iNext - 3 - fQuote);
+ sArgs = strip(substr(sArgs, iNext+1));
+ /*say 'iNext:' iNext 'sValue:' sValue 'sArgs:' sArgs; */
+
+ /* check if we're gonna search for something in an file. */
+ if (sValue <> '' & pos('#define=', sValue) > 0) then
+ sValue = LookupDefine(sValue);
+ end
+ else
+ do
+ say 'syntax error near' substr(sArgs, 1, 2)'.';
+ call syntax;
+ exit(3);
+ end
+
+
+ /* set value */
+ select
+ when (ch = 'A') then /* ASD Feature Id */
+ sASDFeatureId = sValue;
+
+ when (ch = 'C') then /* Country code */
+ sCountryCode = sValue;
+
+ when (ch = 'D') then /* Description */
+ sDescription = sValue;
+
+ when (ch = 'H') then /* Hostname */
+ sHostname = sValue;
+
+ when (ch = 'L') then /* Language code */
+ sLanguageCode = sValue;
+
+ when (ch = 'M') then /* MiniVer */
+ sMiniVer = sValue;
+
+ when (ch = 'N') then /* Vendor */
+ sVendor = sValue;
+
+ when (ch = 'R') then /* Vendor */
+ sDescription = ReadDescription(sValue, sDefFile);
+
+ when (ch = 'P') then /* Fixpak version */
+ sFixPakVer = sValue;
+
+ when (ch = 'T') then /* Date Time */
+ sDateTime = sValue;
+
+ when (ch = 'V') then /* Version */
+ sVersion = sValue;
+
+ /* Otherwise it's an illegal option */
+ otherwise
+ say 'invalid option:' substr(sArgs, 1, 2);
+ call syntax;
+ exit(2);
+ end /* select */
+ end
+ else
+ do /*
+ * Defition file...
+ */
+ if (sDefFileOut <> '') then
+ do
+ say 'Syntax error: Can''t specify more than two defintion files!';
+ exit(4);
+ end
+ if (sDefFileIn = '') then
+ parse value sArgs with sDefFileIn' 'sArgs
+ else
+ parse value sArgs with sDefFileOut' 'sArgs
+ sArgs = strip(sArgs);
+ end
+end
+
+
+/* check that a defintion file was specified. */
+if (sDefFileIn = '') then
+do
+ say 'Syntax error: Will have to specify a .def-file to update.';
+ call syntax;
+ exit(5);
+end
+
+
+/*
+ * Trim strings to correct lengths.
+ */
+sVendor = strip(substr(sVendor, 1, 31));
+if (substr(sDateTime, 1, 1) <> ' ') then
+ sDateTime = ' ' || sDateTime;
+sDateTime = left(sDateTime, 26);
+sHostname = strip(substr(sHostname, 1, 11));
+sMiniVer = strip(substr(sMiniVer, 1, 11));
+sDescription = strip(substr(sDescription, 1, 80));
+sCountryCode = strip(substr(sCountryCode, 1, 4));
+sLanguageCode = strip(substr(sLanguageCode, 1, 4));
+sASDFeatureId = strip(substr(sASDFeatureId, 1, 11));
+sFixPakVer = strip(substr(sFixPakVer, 1, 11));
+
+
+/*
+ * Signature
+ */
+sEnhSign = '##1##'
+
+/*
+ * Build description string.
+ */
+sDescription = '@#'sVendor':'sVersion'#@'sEnhSign||,
+ sDateTime||sHostname||,
+ ':'sASDFeatureId':'sLanguageCode':'sCountryCode':'sMiniVer||,
+ '::'sFixPakVer'@@'sDescription;
+
+/*
+ * Update .def-file.
+ */
+call SysFileDelete(sDefFileIn);
+rc = lineout( sDefFileIn, 'RCDATA 1 { "' || sDescription || '" }');
+
+/*rc = UpdateDefFile(sDefFileIn, sDefFileOut, sDescription);*/
+exit(rc);
+
+
+/**
+ * Display script syntax.
+ */
+syntax: procedure
+ say 'Syntax: MakeDesc.cmd [options] <deffile in> <deffile out> [options]'
+ say ' <deffile> Defitionfile which will have an DESCRIPTION appended.'
+ say 'Options:'
+ say ' -A<string> ASD Feature Id.'
+ say ' -C<string> Country code.'
+ say ' -D<string> Description.'
+ say ' -R[deffile] Read description from .def file.'
+ say ' -H<string> Hostname.'
+ say ' -L<string> Language code.'
+ say ' -M<string> MiniVer.'
+ say ' -N<string> Vendor.'
+ say ' -P<string> Fixpak version.'
+ say ' -T<string> Date Time.'
+ say ' -V<string> Version.'
+ say '<string> could be a double qoute qouted string or a single word.'
+ say ' You could also reference #defines in C/C++ include files.'
+ say ' The string should then have this form:'
+ say ' "#define=<DEFINE_NAME>,<includefile.h>"'
+ say '';
+
+ return;
+
+
+/**
+ * Search for a #define in an C/C++ header or source file.
+ *
+ * @returns String containing the defined value
+ * found for the define in the header file.
+ * Quits on fatal errors.
+ * @param A string on the form: "#define=DEFINETOFIND,includefile.h"
+ * @remark Write only code... - let's hope it works.
+ */
+LookupDefine: procedure
+ parse arg '#'sDefine'='sMacro','sIncludeFile
+
+ /*
+ * Validate parameters.
+ */
+ sMacro = strip(sMacro);
+ sIncludeFile = strip(sIncludeFile);
+ if (sMacro = '') then
+ do
+ say 'syntax error: #define=<DEFINE_NAME>,<includefile.h>.';
+ say ' <DEFINE_NAME> was empty.';
+ exit(-20);
+ end
+ if (sIncludeFile = '') then
+ do
+ say 'syntax error: #define=<DEFINE_NAME>,<includefile.h>.';
+ say ' <includefile.h> was empty.';
+ exit(-20);
+ end
+
+
+ sIllegal = translate(translate(sMacro),,
+ '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!',,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_');
+
+ if (strip(translate(sIllegal, ' ', '!')) <> '') then
+ do
+ say 'syntax error: #define=<DEFINE_NAME>,<includefile.h>.';
+ say ' <DEFINE_NAME> contains illegal charater(s).'
+ say ' 'sMacro;
+ say ' 'translate(sIllegal, ' ', '!');
+ exit(-20);
+ end
+
+ /*
+ * Open include file.
+ */
+ sRc = stream(sIncludeFile, 'c', 'open read');
+ if (pos('READY', sRc) <> 1) then
+ do /* search INCLUDE variable */
+ sFile = SysSearchPath('INCLUDE', sIncludeFile);
+ if (sFile = '') then
+ do
+ say 'Can''t find include file 'sIncludeFile'.';
+ exit(-20);
+ end
+ sIncludeFile = sFile;
+
+ sRc = stream(sIncludeFile, 'c', 'open read');
+ if (pos('READY', sRc) <> 1) then
+ do
+ say 'Failed to open include file' sIncludeFile'.';
+ exit(-20);
+ end
+ end
+
+ /*
+ * Search the file line by line.
+ * We'll check for lines starting with a hash (#) char.
+ * Then check that the word after the hash is 'define'.
+ * Then match the next word with the macro name.
+ * Then then get the next rest of the line to comment or continuation char.
+ * (continuation is not supported)
+ * Finally strip quotes.
+ */
+ sValue = '';
+ do while (lines(sIncludeFile) > 0)
+ sLine = strip(linein(sIncludeFile));
+ if (sLine = '') then
+ iterate;
+ if (substr(sLine, 1, 1) <> '#') then
+ iterate;
+ sLine = substr(sLine, 2);
+ if (word(sLine, 1) <> 'define') then
+ iterate;
+ sLine = strip(substr(sLine, wordpos(sLine, 1) + length('define')+1));
+ if ( substr(sLine, 1, length(sMacro)) <> sMacro,
+ | substr(sLine, length(sMacro)+1, 1) <> ' ') then
+ iterate;
+ sLine = strip(substr(sLine, length(sMacro) + 1));
+ if (sLine = '') then
+ do
+ say 'error: #define' sMacro' is empty.';
+ call stream sIncludeFile, 'c', 'close';
+ exit(-20);
+ end
+
+ chQuote = substr(sLine, 1, 1);
+ if (chQuote = '"' | chQuote = "'") then
+ do /* quoted string */
+ iLastQuote = 0;
+ do forever
+ iLast = pos(chQuote, sLine, 2);
+ if (iLast <= 0) then
+ leave;
+ if (substr(sLine, iLast, 1) = '\') then
+ iterate;
+ iLastQuote = iLast;
+ leave;
+ end
+
+ if (iLastQuote <= 0) then
+ do
+ say 'C/C++ syntax error in 'sIncludefile': didn''t find end quote.';
+ call stream sIncludeFile, 'c', 'close';
+ exit(-20);
+ end
+
+ call stream sIncludeFile, 'c', 'close';
+ sValue = substr(sLine, 2, iLastQuote - 2);
+ say 'Found 'sMacro'='sValue;
+ return sValue;
+ end
+ else
+ do
+ iCommentCPP = pos('//',sLine);
+ iCommentC = pos('/*',sLine);
+ if (iCommentC > 0 & iCommentCPP > 0 & iCommentC > iCommentCPP) then
+ iComment = iCommentCPP;
+ else if (iCommentC > 0 & iCommentCPP > 0 & iCommentC < iCommentCPP) then
+ iComment = iCommentC;
+ else if (iCommentCPP > 0) then
+ iComment = iCommentCPP;
+ else if (iCommentC > 0) then
+ iComment = iCommentC;
+ else
+ iComment = 0;
+
+ if (iComment > 0) then
+ sValue = strip(substr(sLine, 1, iComment-1));
+ else
+ sValue = strip(sLine);
+
+ if (sValue <> '') then
+ do
+ if (substr(sValue, length(sValue)) = '\') then
+ do
+ say 'Found continuation char: Multiline definitions are not supported!\n';
+ call stream sIncludeFile, 'c', 'close';
+ exit(-20);
+ end
+ end
+
+ if (sValue = '') then
+ say 'warning: The #define has no value.';
+
+ call stream sIncludeFile, 'c', 'close';
+ say 'Found 'sMacro'='sValue;
+ return sValue;
+ end
+ end
+
+ call stream sIncludeFile, 'c', 'close';
+ say 'error: didn''t find #define' sMacro'.';
+ exit(-20);
+
+
+
+/**
+ * Reads the description line for a .def-file.
+ * @returns The Description string, with quotes removed.
+ * Empty string is acceptable.
+ * On error we'll terminate the script.
+ * @param sDefFile Filaname of .def-file to read the description from.
+ * @param sDefFile2 Used if sDefFile is empty.
+ * @author knut st. osmundsen (knut.stange.osmundsen@mynd.no)
+ */
+ReadDescription: procedure;
+ parse arg sDefFile, sDefFile2
+
+ /*
+ * Validate parameters.
+ */
+ if (sDefFile = '') then
+ sDefFile = sDefFile2;
+ if (sDefFile = '') then
+ do
+ say 'error: no definition file to get description from.'
+ exit(-1);
+ end
+
+ /*
+ * Open file
+ */
+ rc = stream(sDefFile, 'c', 'open read');
+ if (pos('READY', rc) <> 1) then
+ do
+ say 'error: failed to open deffile file.';
+ exit(-1);
+ end
+
+
+ /*
+ * Search for the 'DESCRIPTION' line.
+ */
+ do while (lines(sDefFile) > 0)
+ sLine = strip(linein(sDefFile));
+ if (sLine = '') then
+ iterate;
+ if (translate(word(sLine, 1)) <> 'DESCRIPTION') then
+ iterate;
+ sLine = strip(substr(sLine, wordpos(sLine, 1) + length('DESCRIPTION')+1));
+
+ ch = substr(sLine, 1, 1);
+ if (ch <> "'" & ch <> '"') then
+ do
+ say 'syntax error: description line in' sDefFile 'is misformed.';
+ call stream sDefFile, 'c', 'close';
+ exit(-10);
+ end
+
+ iEnd = pos(ch, sLine, 2);
+ if (iEnd <= 0) then
+ do
+ say 'syntax error: description line in' sDefFile 'is misformed.';
+ call stream sDefFile, 'c', 'close';
+ exit(-10);
+ end
+
+ call stream sDefFile, 'c', 'close';
+ sValue = substr(sLine, 2, iEnd - 2);
+ say 'Found Description:' sValue;
+ return sValue;
+ end
+
+ call stream sDefFile, 'c', 'close';
+ say 'info: Didn''t find description line in' sDefFile'.';
+ return '';
+
+
+/**
+ * This is a function which reads sDefFileIn into and
+ * internal array and changes the DESCRIPTION text if found.
+ * If DESCRIPTION isn't found, it is added at the end.
+ * The array is written to sDefFileOut.
+ * @returns 0 on succes.
+ * Errorcode on error.
+ * @param sDefFileIn Input .def-file.
+ * @param sDefFileOut Output .def-file. Overwritten.
+ * @param sDescription New description string.
+ * @author knut st. osmundsen (knut.stange.osmundsen@mynd.no)
+ */
+UpdateDefFile: procedure;
+ parse arg sDefFileIn, sDefFileOut, sDescription
+
+ /*
+ * Validate parameters.
+ */
+ if (sDefFileOut = '') then
+ sDefFileOut = sDefFileIn;
+
+ /*
+ * Open file input file.
+ */
+ rc = stream(sDefFileIn, 'c', 'open read');
+ if (pos('READY', rc) <> 1) then
+ do
+ say 'error: failed to open' sDefFileIn 'file.';
+ return 110;
+ end
+
+
+ /*
+ * Search for the 'BLDLEVEL' line.
+ */
+ i = 0;
+ fDescription = 0;
+ do while (lines(sDefFileIn) > 0)
+ /*
+ * Read line.
+ */
+ i = i + 1;
+ asFile.i = linein(sDefFileIn);
+
+ /*
+ * Look for BLDLEVEL;
+ */
+ if (asFile.i = '') then
+ iterate;
+ if (translate(word(strip(asFile.i), 1)) <> 'BLDLEVEL') then
+ iterate;
+ if (fDescription) then
+ do
+ say 'warning: multiple descriptions lines. Line' i 'removed';
+ i = i - 1;
+ iterate;
+ end
+
+ /*
+ * Found description - replace with new description.
+ */
+ asFile.i = "BldLevel = '"||sDescription||"'";
+ fDescription = 1;
+ end
+
+ /*
+ * Add description is none was found.
+ */
+ if (\fDescription) then
+ do
+ i = i + 1;
+ asFile.i = "BldLevel = '"||sDescription||"'";
+ end
+ asFile.0 = i;
+
+
+ /*
+ * Close input file and open output file.
+ */
+ call stream sDefFileIn, 'c', 'close';
+ call SysFileDelete(sDefFileOut);
+ rc = stream(sDefFileOut, 'c', 'open write');
+ if (pos('READY', rc) <> 1) then
+ do
+ say 'error: failed to open outputfile' sDefFileOut 'file.';
+ return 110;
+ end
+
+ /*
+ * Make firstline and write all the lines to the output file.
+ */
+ /*call lineout sDefFileOut, '; Updated by makedesc.cmd', 1;*/
+ do i = 1 to asFile.0
+ rc = lineout(sDefFileOut, asFile.i);
+ if (rc > 0) then
+ do
+ say 'error: failed to write line' i 'to' sDefFileOut'.'
+ call stream sDefFileOut, 'c', 'close';
+ return 5;
+ end
+ end
+
+ /*
+ * Close output file and return succesfully.
+ */
+ call stream sDefFileOut, 'c', 'close';
+ return 0;
+
diff --git a/os2/ChangeLog.os2 b/os2/ChangeLog.os2
index 34547262fe2..8f2604c0453 100644
--- a/os2/ChangeLog.os2
+++ b/os2/ChangeLog.os2
@@ -1,4 +1,14 @@
+2001/09/16
+ - fixed creation directory of temporary files
+ - enabled cached list file for deleting temp open files
+
+2001/09/10
+ - Build source 3.23.42, released
+
+2001/09/08
+ - fixed file api
+
2001/06/12
- fixed support for > 2GB file size, needs also DosOpenL
- mixed 64bit/32bit file size support, dinamic loading of
diff --git a/os2/MySQL-Client.icc b/os2/MySQL-Client.icc
index e00fe28a3c9..7a41567f983 100644
--- a/os2/MySQL-Client.icc
+++ b/os2/MySQL-Client.icc
@@ -6,7 +6,6 @@ include "MySQL-Opt.icc"
include "MySQL-Source.icc"
option ProjectOptions = MySQLOptions
- //, link(defaultlibsname, "readline.lib")
{
option file(genobject, "..\\OBJ\\ZLIB\\")
@@ -16,7 +15,7 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
// target source files
source zlib
@@ -27,6 +26,8 @@ option ProjectOptions = MySQLOptions
source type('cpp') my_sys_cli
source type('cpp') strings
source type('cpp') mysqlclientlib
+ source type('cpp') '..\libmysql\dll.c'
+ source BldLevelInfo
}
}
@@ -37,51 +38,84 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch //, 'sql_string.h'
+ source type('cpp') client_global_pch
}
// target source files
- //source readline
source type('cpp') "..\\client\\mysql.cc"
+ source BldLevelInfo
}
}
+ option file(genobject, "..\\OBJ\\READLINE\\")
+ {
target "..\\bin\\mysqladmin.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch //, 'sql_string.h'
+ source type('cpp') client_global_pch
}
// target source files
source type('cpp') "..\\client\\mysqladmin.c"
+ source BldLevelInfo
}
+ }
target "..\\bin\\mysqldump.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
// target source files
source type('cpp') "..\\client\\mysqldump.c"
+ source BldLevelInfo
}
target "..\\bin\\mysqlshow.exe"
{
// target source files
source type('cpp') "..\\client\\mysqlshow.c"
+ source BldLevelInfo
}
target "..\\bin\\mysqlimport.exe"
{
// target source files
source type('cpp') "..\\client\\mysqlimport.c"
+ source BldLevelInfo
}
target "..\\bin\\mysqltest.exe"
{
source type('cpp') "..\\client\\mysqltest.c"
+ source BldLevelInfo
+ }
+
+ target "..\\bin\\mysqlbinlog.exe"
+ {
+ // optimized precompiled headers
+ option macros('global', 'yes')
+ {
+ source type('cpp') client_global_pch
+ }
+ // target source files
+ source type('cpp') "..\\client\\mysqlbinlog.cc"
+ source BldLevelInfo
+ }
+
+ target "..\\bin\\mysqlcheck.exe"
+ {
+ // optimized precompiled headers
+ option macros('global', 'yes')
+ {
+ source type('cpp') client_global_pch
+ }
+
+ // target source files
+ source type('cpp') "..\\client\\mysqlcheck.c"
+ source BldLevelInfo
}
}
diff --git a/os2/MySQL-Opt.icc b/os2/MySQL-Opt.icc
index 5f5cdb7c72f..7045f111d9b 100644
--- a/os2/MySQL-Opt.icc
+++ b/os2/MySQL-Opt.icc
@@ -2,29 +2,30 @@
debug_build = 0
// common options
-option BaseOptions = link(defaultlibsname, "tcpip32.lib")
- ,link(libsearchpath, "..\\lib\\")
- ,link(libsearchpath, "..\\bin\\")
- ,link(pmtype, vio)
- ,link(linkwithmultithreadlib, "yes")
- ,link(linkwithsharedlib, "no")
- ,gen(initauto, "yes")
- ,define("__MT__", )
- ,define("HAVE_BSD_SIGNALS", )
- ,define("INCL_DOS", )
- ,define("INCL_DOSERRORS", )
- ,define("INCL_LONGLONG", )
- ,define("OS2", )
- ,define("USE_TLS", )
- ,lang(signedchars, yes)
- ,incl(searchpath, "..")
- ,incl(searchpath, "..\\include")
- ,incl(searchpath, "..\\my_sys")
- ,incl(searchpath, "..\\regex")
- ,incl(searchpath, "..\\sql")
- ,incl(searchpath, "\\rd\\mysql\\zlib-1.1.3")
- ,incl(searchpath, "\\rd\\mysql\\ufc")
- ,incl(searchpath, "..\\os2")
+option BaseOptions = link(defaultlibsname, "tcpip32.lib")
+ , link(libsearchpath, "..\\lib\\")
+ , link(libsearchpath, "..\\bin\\")
+ , link(pmtype, vio)
+ , link(padding, no)
+ , link(linkwithmultithreadlib, "yes")
+ , link(linkwithsharedlib, "no")
+ , gen(initauto, "yes")
+ , define("__MT__", )
+ , define("HAVE_BSD_SIGNALS", )
+ , define("INCL_DOS", )
+ , define("INCL_DOSERRORS", )
+ , define("INCL_LONGLONG", )
+ , define("OS2", )
+ , define("USE_TLS", )
+ , lang(signedchars, yes)
+ , incl(searchpath, "..")
+ , incl(searchpath, "..\\include")
+ , incl(searchpath, "..\\my_sys")
+ , incl(searchpath, "..\\regex")
+ , incl(searchpath, "..\\sql")
+ , incl(searchpath, "..\\..\\zlib-1.1.3")
+ , incl(searchpath, "..\\..\\ufc")
+ , incl(searchpath, "..\\os2")
option ReleaseOptions = link(debug, "no")
, define("DBUG_OFF", )
diff --git a/os2/MySQL-Source.icc b/os2/MySQL-Source.icc
index 48780857185..134a64dc9b0 100644
--- a/os2/MySQL-Source.icc
+++ b/os2/MySQL-Source.icc
@@ -1,4 +1,4 @@
-group client_pch =
+group client_global_pch =
'os2.h',
'assert.h', 'direct.h', 'errno.h', 'nerrno.h',
'limits.h', 'io.h', 'math.h',
@@ -9,17 +9,46 @@ group client_pch =
'my_base.h', 'config-os2.h', 'my_dir.h',
'global.h', 'thr_alarm.h', 'm_string.h',
'mysql.h', 'zconf.h', 'zlib.h', 'mysys_err.h',
- //'my_os2dirsrch.h',
- 'm_ctype.h',
- 'mysqld_error.h',
+ 'm_ctype.h', 'mysqld_error.h',
'my_list.h', 'my_sys.h', 'my_net.h',
- 'myisam.h', 'myisampack.h', '.\myisam\myisamdef.h'
+ 'myisam.h', 'myisampack.h', '.\myisam\myisamdef.h',
+ '.\regex\regex.h'
+
+group server_global_pch =
+ 'os2.h',
+ 'string.h', 'assert.h', 'share.h', 'stdarg.h', 'stdio.h',
+ 'stdlib.h', 'stddef.h', 'math.h', 'io.h', 'limits.h',
+ 'process.h', 'errno.h', 'nerrno.h', 'sys/types.h',
+ 'sys/time.h', 'sys/stat.h', 'sys/param.h', 'sys/ioccom.h',
+ 'sys/filio.h', 'sys/sockio.h', 'sys/ioctlos2.h','sys/ioctl.h', 'types.h',
+ 'sys/utime.h', 'sys/select.h', 'sys/un.h',
+ 'netinet/in_systm.h', 'netinet/tcp.h',
+
+ 'global.h', 'my_base.h', 'config-os2.h',
+ 'my_dir.h', 'my_sys.h', 'mysql.h',
+ 'my_bitmap.h', 'violite.h', 'mysql_priv.h',
+ 'm_string.h', 'm_ctype.h',
+ 'myisam.h', 'myisampack.h', '.\myisam\myisamdef.h',
+ 'sql_string.h', 'item.h', 'unireg.h',
+ 'field.h', 'sql_lex.h', 'sql_list.h',
+ 'md5.h', 'sql_acl.h', 'slave.h',
+ 'ha_myisam.h', 'procedure.h', 'sql_select.h',
+ 'errmsg.h', 't_ctype.h', 'direct.h',
+ 'mysys_err.h', 'zconf.h', 'zlib.h',
+ 'my_tree.h', '..\mysys\my_static.h', 'netdb.h',
+ 'thr_alarm.h', 'heap.h', '..\myisam\fulltext.h',
+ '..\myisam\ftdefs.h', 'myisammrg.h',
+ '.\regex\regex.h'
+
+group server_pch =
+ 'ha_heap.h', 'ha_myisammrg.h', 'opt_ft.h',
+ 'hash_filo.h', 'mini_client.h', 'sql_repl.h',
+ 'sql_analyse.h', 'item_create.h', '..\mysys\mysys_priv.h'
group mysqlclientlib =
"..\\client\\readline.cc",
"..\\client\\sql_string.cc",
"..\\client\\completion_hash.cc",
- //"..\\libmysql\\dll.c",
"..\\libmysql\\libmysql.c",
"..\\libmysql\\errmsg.c",
"..\\libmysql\\get_password.c",
@@ -28,17 +57,17 @@ group mysqlclientlib =
"..\\libmysql\\violite.c"
group zlib =
- "\\rd\\mysql\\zlib-1.1.3\\compress.c", "\\rd\\mysql\\zlib-1.1.3\\crc32.c",
- "\\rd\\mysql\\zlib-1.1.3\\deflate.c", "\\rd\\mysql\\zlib-1.1.3\\gzio.c", "\\rd\\mysql\\zlib-1.1.3\\infblock.c",
- "\\rd\\mysql\\zlib-1.1.3\\infcodes.c", "\\rd\\mysql\\zlib-1.1.3\\inffast.c",
- "\\rd\\mysql\\zlib-1.1.3\\inflate.c", "\\rd\\mysql\\zlib-1.1.3\\inftrees.c",
- "\\rd\\mysql\\zlib-1.1.3\\infutil.c", "\\rd\\mysql\\zlib-1.1.3\\trees.c", "\\rd\\mysql\\zlib-1.1.3\\uncompr.c",
- "\\rd\\mysql\\zlib-1.1.3\\zutil.c", "\\rd\\mysql\\zlib-1.1.3\\adler32.c"
+ "..\\..\\zlib-1.1.3\\compress.c", "..\\..\\zlib-1.1.3\\crc32.c",
+ "..\\..\\zlib-1.1.3\\deflate.c", "..\\..\\zlib-1.1.3\\gzio.c", "..\\..\\zlib-1.1.3\\infblock.c",
+ "..\\..\\zlib-1.1.3\\infcodes.c", "..\\..\\zlib-1.1.3\\inffast.c",
+ "..\\..\\zlib-1.1.3\\inflate.c", "..\\..\\zlib-1.1.3\\inftrees.c",
+ "..\\..\\zlib-1.1.3\\infutil.c", "..\\..\\zlib-1.1.3\\trees.c", "..\\..\\zlib-1.1.3\\uncompr.c",
+ "..\\..\\zlib-1.1.3\\zutil.c", "..\\..\\zlib-1.1.3\\adler32.c"
group ufc =
- "\\rd\\mysql\\ufc\\crypt.c",
- "\\rd\\mysql\\ufc\\crypt_util.c",
- "\\rd\\mysql\\ufc\\crypt-entry.c"
+ "..\\..\\ufc\\crypt.c",
+ "..\\..\\ufc\\crypt_util.c",
+ "..\\..\\ufc\\crypt-entry.c"
group sql =
"..\\sql\\convert.cc",
@@ -106,7 +135,7 @@ group sql =
"..\\sql\\sql_test.cc",
"..\\sql\\sql_update.cc",
"..\\sql\\sql_udf.cc",
- "..\\sql\\sql_yacc.cc",
+ "..\\sql\\sql_yacc.c",
"..\\sql\\table.cc",
"..\\sql\\thr_malloc.cc",
"..\\sql\\time.cc",
@@ -140,8 +169,6 @@ group strings =
"..\\strings\\ctype-sjis.c",
"..\\strings\\ctype-tis620.c",
"..\\strings\\ctype-ujis.c",
- "..\\strings\\ctype_extra_sources.c",
- "..\\strings\\ctype_autoconf.c",
"..\\strings\\ctype.c",
"..\\strings\\int2str.c",
"..\\strings\\is_prefix.c",
@@ -162,6 +189,8 @@ group strings =
"..\\strings\\strxmov.c",
"..\\strings\\strxnmov.c"
+/*
+*/
group heap = "..\\heap\\hp_block.c", "..\\heap\\hp_clear.c",
"..\\heap\\hp_close.c", "..\\heap\\hp_create.c", "..\\heap\\hp_delete.c",
@@ -242,7 +271,8 @@ group strings =
"..\\mysys\\my_thr_init.c", "..\\mysys\\my_vsnprintf.c",
"..\\mysys\\my_write.c", "..\\mysys\\ptr_cmp.c",
"..\\mysys\\queues.c", "..\\mysys\\raid.cc",
- "..\\mysys\\safemalloc.c", "..\\mysys\\string.c",
+ //"..\\mysys\\safemalloc.c",
+ "..\\mysys\\string.c",
"..\\mysys\\thr_alarm.c",
"..\\mysys\\thr_mutex.c", "..\\mysys\\thr_rwlock.c",
"..\\mysys\\tree.c", "..\\mysys\\typelib.c"
@@ -254,11 +284,13 @@ group strings =
"..\\myisam\\ft_search.c", "..\\myisam\\ft_static.c",
"..\\myisam\\ft_stopwords.c", "..\\myisam\\ft_update.c",
"..\\myisam\\mi_cache.c", "..\\myisam\\mi_changed.c",
- "..\\myisam\\mi_check.c", "..\\myisam\\mi_checksum.c",
+ //"..\\myisam\\mi_check.c",
+ "..\\myisam\\mi_checksum.c",
"..\\myisam\\mi_close.c", "..\\myisam\\mi_create.c",
"..\\myisam\\mi_dbug.c", "..\\myisam\\mi_delete.c",
"..\\myisam\\mi_delete_all.c", "..\\myisam\\mi_delete_table.c",
"..\\myisam\\mi_dynrec.c", "..\\myisam\\mi_extra.c",
+ //"..\\myisam\\mi_error.c",
"..\\myisam\\mi_info.c", "..\\myisam\\mi_key.c",
"..\\myisam\\mi_locking.c", "..\\myisam\\mi_log.c",
"..\\myisam\\mi_open.c", "..\\myisam\\mi_packrec.c",
@@ -271,8 +303,8 @@ group strings =
"..\\myisam\\mi_rsamepos.c", "..\\myisam\\mi_scan.c",
"..\\myisam\\mi_search.c", "..\\myisam\\mi_static.c",
"..\\myisam\\mi_statrec.c", "..\\myisam\\mi_unique.c",
- "..\\myisam\\mi_update.c", "..\\myisam\\mi_write.c",
- "..\\myisam\\sort.c"
+ "..\\myisam\\mi_update.c", "..\\myisam\\mi_write.c"
+ //"..\\myisam\\sort.c"
group dbug = "..\\dbug\\dbug.c", "..\\dbug\\factorial.c", "..\\dbug\\sanity.c"
@@ -293,6 +325,7 @@ group strings =
//"..\\readline\\vi_keymap.c",
"..\\readline\\vi_mode.c", "..\\readline\\xmalloc.c"
-group regex = "..\\regex\\regcomp.c", "..\\regex\\regerror.c",
- "..\\regex\\regexec.c", "..\\regex\\regfree.c", "..\\regex\\reginit.c"
+ group regex = "..\\regex\\regcomp.c", "..\\regex\\regerror.c",
+ "..\\regex\\regexec.c", "..\\regex\\regfree.c", "..\\regex\\reginit.c"
+ group BldLevelInfo = 'os2\BldLevel.rc'
diff --git a/os2/MySQL-Sql.icc b/os2/MySQL-Sql.icc
index addb645e2db..c1256d5e39e 100644
--- a/os2/MySQL-Sql.icc
+++ b/os2/MySQL-Sql.icc
@@ -5,6 +5,9 @@ InlineCode = "no"
include "MySQL-Opt.icc"
include "MySQL-Source.icc"
+run before sources('..\sql\sql_yacc.yy') targets('..\sql\sql_yacc.c')
+ 'bison -y -d -o ..\sql\sql_yacc.c ..\sql\sql_yacc.yy'
+
option ProjectOptions = MySQLOptions
, define( "MYSQL_SERVER", "")
{
@@ -16,68 +19,9 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- //source type('cpp') gpch
- source type('cpp') 'os2.h'
- source type('cpp')
- //'ctype.h',
- 'string.h', 'assert.h', 'share.h', 'stdarg.h', 'stdio.h',
- 'stdlib.h', 'stddef.h', 'math.h', 'io.h', 'limits.h',
- 'process.h', 'errno.h', 'nerrno.h', 'sys/types.h',
- 'sys/time.h', 'sys/stat.h', 'sys/param.h', 'sys/ioccom.h',
- 'sys/filio.h', 'sys/sockio.h', 'sys/ioctlos2.h','sys/ioctl.h', 'types.h'
-
- source type('cpp')
- 'global.h', 'my_base.h', 'config-os2.h',
- 'my_dir.h', 'my_sys.h', 'mysql.h',
- 'my_bitmap.h', 'violite.h', 'mysql_priv.h',
- 'm_string.h', 'm_ctype.h'
-
- source type('cpp') 'myisam.h'
- source type('cpp') 'myisampack.h'
- source type('cpp') '.\myisam\myisamdef.h'
-
- source type('cpp') 'sql_string.h'
- source type('cpp') 'item.h'
- source type('cpp') 'unireg.h'
- source type('cpp') 'field.h'
- source type('cpp') 'sql_lex.h'
- source type('cpp') 'sql_list.h'
- source type('cpp') 'md5.h'
- source type('cpp') 'sql_acl.h'
- source type('cpp') 'slave.h'
- source type('cpp') 'ha_myisam.h'
- source type('cpp') 'procedure.h'
- source type('cpp') 'sql_select.h'
- source type('cpp') 'errmsg.h'
- source type('cpp') 't_ctype.h'
- source type('cpp') 'direct.h'
- source type('cpp') 'mysys_err.h'
- source type('cpp') 'zconf.h'
- source type('cpp') 'zlib.h'
- source type('cpp') 'my_tree.h'
- source type('cpp') '..\mysys\my_static.h'
- source type('cpp') 'netdb.h'
- source type('cpp') 'thr_alarm.h'
- source type('cpp') 'heap.h'
- source type('cpp') '..\myisam\fulltext.h'
- source type('cpp') '..\myisam\ftdefs.h'
- source type('cpp') 'myisammrg.h'
-
+ source type('cpp') server_global_pch
}
- source type('cpp') 'sys/un.h'
- source type('cpp') 'ha_heap.h'
- source type('cpp') 'ha_myisammrg.h'
- source type('cpp') 'opt_ft.h'
- source type('cpp') 'hash_filo.h'
- source type('cpp') 'mini_client.h'
- source type('cpp') 'sql_repl.h'
- source type('cpp') 'netinet/in_systm.h'
- source type('cpp') 'netinet/tcp.h'
- source type('cpp') 'sql_analyse.h'
- source type('cpp') 'item_create.h'
- source type('cpp') '..\mysys\mysys_priv.h'
- source type('cpp') 'sys/utime.h'
- source type('cpp') 'sys/select.h'
+ source type('cpp') server_pch
// target source files
source "rint.obj"
@@ -93,25 +37,10 @@ option ProjectOptions = MySQLOptions
source type('cpp') my_sys
source type('cpp') my_sys_sql
source type('cpp') strings
- source type('cpp') sql
- }
- }
-/*
- option define( "MYSQL_SERVER", "")
- {
- target "..\\bin\\mysqlbinlog.exe"
- {
- // optimized precompiled headers
- option macros('global', 'yes')
- {
- //source type('cpp') client_pch //, 'sql_string.h'
- }
- // target source files
- source type('cpp')
- "..\\sql\\mysqlbinlog.cc",
- "..\\sql\\mini_client.cc",
- "..\\sql\\net_serv.cc"
+ source type('cpp') sql,
+ "..\\myisam\\mi_check.c",
+ "..\\myisam\\sort.c"
+ source BldLevelInfo
}
}
-*/
}
diff --git a/os2/MySQL-Util.icc b/os2/MySQL-Util.icc
index 61b1f53bc5f..5a7ae2959b9 100644
--- a/os2/MySQL-Util.icc
+++ b/os2/MySQL-Util.icc
@@ -6,20 +6,51 @@ include "MySQL-Opt.icc"
include "MySQL-Source.icc"
option ProjectOptions = MySQLOptions
- , link(defaultlibsname, "common.lib")
- , link(defaultlibsname, "myisam.lib")
- , link(defaultlibsname, "isam.lib")
- , link(defaultlibsname, "mysql.lib")
+ , link(defaultlibsname, "mysql.lib")
{
+ option file(genobject, "..\\OBJ\\ZLIB\\")
+ ,link(exportAll)
+ {
+ target "..\\bin\\mysqlu.dll"
+ {
+ // optimized precompiled headers
+ option macros('global', 'yes')
+ {
+ source type('cpp') client_global_pch
+ }
+ // target source files
+ source zlib, ufc, regex, 'strings\bmove_upp.c'
+ if debug_build {
+ source type('cpp') dbug
+ }
+ source type('cpp') heap
+ source type('cpp') merge
+ source type('cpp') myisam
+ source type('cpp') myisammrg
+ source type('cpp') isam
+ source type('cpp') my_sys
+ source type('cpp') my_sys_cli
+ source type('cpp') my_sys_sql
+ source type('cpp') strings
+ source type('cpp') '..\libmysql\dll.c'
+ source BldLevelInfo
+ }
+ }
+
+
target "..\\bin\\myisamchk.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
- source type('cpp') "..\\myisam\\myisamchk.c"
+ // target source files
+ source type('cpp') "..\\myisam\\myisamchk.c",
+ "..\\myisam\\mi_check.c",
+ "..\\myisam\\sort.c"
+ source BldLevelInfo
}
target "..\\bin\\myisamlog.exe"
@@ -27,11 +58,11 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
-
// target source files
source type('cpp') "..\\myisam\\myisamlog.c"
+ source BldLevelInfo
}
target "..\\bin\\myisampack.exe"
@@ -39,10 +70,23 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
// target source files
source type('cpp') "..\\myisam\\myisampack.c"
+ source BldLevelInfo
+ }
+
+ target "..\\bin\\test\\comp_err.exe"
+ {
+ // target source files
+ source type('cpp') "..\\extra\\comp_err.c"
+ }
+
+ target "..\\bin\\gen_lex_hash.exe"
+ {
+ // target source files
+ source type('cpp') "..\\sql\\gen_lex_hash.cc"
}
target "..\\bin\\test\\is_test1.exe"
@@ -75,13 +119,13 @@ option ProjectOptions = MySQLOptions
// target source files
source type('cpp') "..\\myisam\\ft_test1.c"
}
-
- //target "..\\bin\\test\\testhash.exe"
+/*
+ target "..\\bin\\test\\testhash.exe"
{
// target source files
- //source type('cpp') "..\\mysys\\testhash.c"
+ source type('cpp') "..\\mysys\\testhash.c"
}
-
+*/
target "..\\bin\\test\\test_charset.exe"
{
// target source files
@@ -99,6 +143,7 @@ option ProjectOptions = MySQLOptions
source type('cpp') "..\\heap\\hp_test2.c"
}
+/*
option define( "MAIN", "")
{
target "..\\bin\\test\\thr_lock.exe"
@@ -107,13 +152,13 @@ option ProjectOptions = MySQLOptions
source type('cpp') "..\\mysys\\thr_lock.c"
}
}
-
+*/
target "..\\bin\\test\\insert_test.exe"
{
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
source type('cpp') "..\\client\\insert_test.c"
}
@@ -126,9 +171,12 @@ option ProjectOptions = MySQLOptions
// optimized precompiled headers
option macros('global', 'yes')
{
- source type('cpp') client_pch
+ source type('cpp') client_global_pch
}
source type('cpp') "..\\client\\thread_test.c"
}
}
+
+run after sources('..\bin\gen_lex_hash.exe') targets('..\sql\lex_hash.h')
+ '..\bin\gen_lex_has.exe > ..\sql\lex_hash.h'
diff --git a/os2/ReadMe.txt b/os2/ReadMe.txt
new file mode 100644
index 00000000000..1a8158df4bf
--- /dev/null
+++ b/os2/ReadMe.txt
@@ -0,0 +1,177 @@
+====================================================
+
+Contents
+--------
+Welcome to the latest port of MySQL for OS/2 and eComStation.
+
+Modules included in this build:
+ - protocol data compression
+ - transaction support
+ - perl BDB/BDI support (not in this package)
+ - Library and header files for C/CPP developers included
+
+This package has been built using IBM VAC++ 4.0
+
+The MySQL server is distributed under the GPL license. Please refer to
+the file COPYING for the license information.
+
+The MySQL client library is distributed under the LGPL license.
+Please refer to the file COPYING for the license information.
+
+Most of the MySQL clients are distributed under the GPL license, but
+some files may be in the public domain.
+
+The latest information about MySQL can be found at: http://www.mysql.com
+
+To get the latest information about this port please subscribe to our
+newsgroup/mailinglist mysql2 at www.egroups.com.
+
+To see what MySQL can do, take a look at the features section in the
+manual. For future plans see the TODO appendix in the manual.
+
+New features/bug fixes history is in the news appendix in the manual.
+
+For the currently known bugs/misfeatures (known errors) see the bugs
+appendix in the manual. The OS/2 section contains notes that are
+specific to the MySQL OS/2 and eComStation version.
+
+Please note that MySQL is a constantly moving target. New builds for
+Linux are made available every week. This port may therefore be a few
+minor versions after the latest Linux/Win32 builds but its generally
+more stable than the "latest and greates" port.
+
+MySQL is brought to you by: TcX DataKonsult AB & MySQL Finland AB
+
+This port is brought to you by:
+
+Yuri Dario <mc6530@mclink.it>, development, porting
+Timo Maier <tam@gmx.de>, documentation, testing
+John M Alfredsson <jma@jmast.se>, documentation, testing
+
+
+Installation
+------------
+Prerequisite:
+
+- OS/2 Warp 3 with FP ?? or later,
+ OS/2 Warp 4 with FP ?? or later,
+ OS/2 Warp Server for e-Business,
+ eComStation 1.0 (prev 1/2 OK)
+- TCPIP 4.x installed (requires 32-bit tcpip stack)
+- WarpIN installer 0.9.14 (ftp://ftp.os2.org/xworkplace/warpin-0-9-14.exe)
+
+Note: probably some fixpak level is required on both Warp3&Warp4 to
+ support >2GB file sizes.
+
+Save the installation archives into a temporary folder and double click
+on the main package; otherwise you can drop the mysql package in your
+WarpIN object or type
+
+ WARPIN MYSQL-3-23-??-BLD1.WPI
+
+from the command line.
+The configuration file for MySQL is named my.cnf and it is placed into
+your %ETC% directory. Usually it located into the boot driver under
+
+ x:\MPTN\ETC
+
+If the installation detect an existing configuration file, this will be
+renamed to my.cnf.bak; your current settings aren't migrated to current
+installation. This file is not deleted by uninstall process.
+Startup options for MySQL daemon could be added there.
+
+As default, client connections uses data compression: if you don't like it,
+remove the following from your %ETC%\my.cnf
+
+ [client]
+ compress
+
+The server switches automatically compression mode on client request.
+
+This release comes with DLL client library MYSQL.DLL: it is installed by
+default into mysql\bin together with client applications. Copy it to your
+x:\OS2\DLL or another directory in your LIBPATH to run command line
+utilities from every place.
+
+
+Documentation
+-------------
+Documentation is provided in separate files. You can use either
+the PDF documentation (requires Adobe Acrobat Reader) or the
+INF documentation (requires OS/2 view or NewView).
+
+The PDF documentation is found in
+
+ MYSQL-3-23-42-PDF.WPI
+
+and the INF documentation is found in
+
+ MYSQL-3-23-28-INF.WPI
+
+The latest documentation in other formats can always be downloaded from
+http://www.mysql.com. However this documentation may not fully apply to
+this port.
+The INF documentation could contain errors because of semi-automatic
+translation from texi original. Also it is not updated as the latest PDF
+manual (sorry, but conversion from texi to ipf requires quite a lot of
+work).
+
+
+Support
+-------
+Since MySQL is a OpenSource freeware product there are no
+formal support options available.
+
+Please subscribe to mysql2 at www.yahoogroups.com to get in contact
+with other users using this port.
+
+http://www.yahoogroups.com/group/mysql2
+
+This newsgroup/mailinglist is the official "home" of this port.
+
+
+Donations
+---------
+Since this software is ported for free, donations are welcome!
+You can get also an extended support, which is not free and subject to
+custom rates.
+Ask in the mailing list for details.
+
+
+Know problems
+-------------
+alter_table.test and show_check are failing, reporting a different status
+message: actually seems only a different text, no bugs in table checking.
+
+
+Apache/2 + PHP
+--------------
+To avoid problems with different socket when you use PHP and Apache
+webserver, get the PHP4 module from the Apache Server for OS/2 homepage
+http://silk.apana.org.au/apache/
+
+
+Developing MySQL
+----------------
+If you want to help us develop MySQL for OS2/eComStation please join
+the mysql2 mailinglist at www.egroups.com and ask for help to set up
+your environment!
+
+All questions that are specific to the OS2/eComStation version should
+be posted to this list! Please remember to include all relevant
+information that may help solve your problem.
+
+Building MySQL (VAC++ 4)
+------------------------
+Apply file and patches found in the src\ directory (if exists).
+Create the following subdirectories
+
+ bin\
+ bin\test
+ lib\
+ obj\
+ obj\zlib
+
+Build os2\MySQL-Client.icc project first.
+Then os2\MySQL-Util.icc; last is os2\MySQL-Sql.icc
+
diff --git a/os2/mysql-inf.wis b/os2/mysql-inf.wis
new file mode 100644
index 00000000000..55259567a2e
--- /dev/null
+++ b/os2/mysql-inf.wis
@@ -0,0 +1,15 @@
+#include "mysql.ih"
+
+<WARPIN VERSION <$WARPIN_VERSION>>
+<HEAD>
+<MSG>
+This is not an installable archive.
+
+Please download and install the main archive:
+
+ mysql-<$MySQL-Ver>-bld1.wpi
+
+</MSG>
+</HEAD>
+</WARPIN>
+ \ No newline at end of file
diff --git a/os2/mysql.wis b/os2/mysql.wis
new file mode 100644
index 00000000000..50207a0c499
--- /dev/null
+++ b/os2/mysql.wis
@@ -0,0 +1,127 @@
+#include "mysql.ih"
+
+<WARPIN VERSION <$WARPIN_VERSION>>
+<HEAD>
+
+<PCK INDEX=1
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\SQL Database Engine\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql" BASE
+ TITLE="SQL Database Engine"
+ EXECUTE="$(1)\bootstrap.cmd [bootstrap]"
+ CONFIG.SYS="SET EMXOPT=-h1024 | UNIQUE(-h)"
+ CREATEOBJECT="WPFolder|MySQL <$MySQL.Ver>|<WP_DESKTOP>|OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>"
+ CREATEOBJECT="WPProgram|Console|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(1)\bin\mysql.exe;STARTUPDIR=$(1)\bin;ICONFILE=$(1)\bin\icons\mysql-client.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_CONSOLE>;"
+ CREATEOBJECT="WPProgram|Start server|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(1)\bin\mysqld.exe;ICONFILE=$(1)\bin\icons\mysql-startserver.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_START>;"
+ CREATEOBJECT="WPProgram|Shutdown server|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(1)\bin\mysqladmin.exe;STARTUPDIR=$(1)\bin;PARAMETERS=-u root shutdown;ICONFILE=$(1)\bin\icons\mysql-shutdownserver.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_SHUTDOWN>;"
+ CREATEOBJECT="WPProgram|Readme first|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=e.exe;PARAMETERS=$(1)\ReadMe.txt;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_README>;"
+ SELECT
+ >This package will install MySQL for OS/2 SQL engine
+</PCK>
+
+<PCK INDEX=2
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\Developement Kit\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql"
+ TITLE="Developement Kit"
+ SELECT
+ >This package will install MySQL for OS/2 sdk
+</PCK>
+
+<PCK INDEX=3
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\PDF manual\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql"
+ TITLE="PDF manual"
+ EXTERNAL="mysql-<$MySQL-Ver>-pdf.wpi"
+ CREATEOBJECT="WPShadow|PDF Manual|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|SHADOWID=$(1)\docs\manual.pdf"
+ SELECT
+ >This package will install MySQL for OS/2 documentation
+</PCK>
+
+<PCK INDEX=4
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\INF manual\3\23\28"
+ TARGET="?:\usr\local\mysql"
+ TITLE="INF manual"
+ EXTERNAL="mysql-3-23-28-gamma-inf.wpi"
+ CREATEOBJECT="WPProgram|MySQL Manual|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=view.exe;PARAMETERS=$(1)\docs\manual.inf;ICONFILE=$(1)\bin\icons\mysql-manual.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_INFMANUAL>;"
+ SELECT
+ >This package will install MySQL for OS/2 documentation
+</PCK>
+
+<PCK INDEX=5
+ PACKAGEID="TCX Datakonsult AB\MySQL for OS/2\Test suite\<$MySQL\Ver>"
+ TARGET="?:\usr\local\mysql"
+ TITLE="Test suite"
+ EXTERNAL="mysql-<$MySQL-Ver>-test.wpi"
+ CREATEOBJECT="WPProgram|Run MySQL Test Suite|<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_FOLDER>|EXENAME=$(5)\mysql-test\mysql-test.cmd;PARAMETERS=$(1)\docs\manual.inf;ICONFILE=$(1)\bin\icons\mysql-manual.ico;OBJECTID=<MYSQL_<$MySQL.Major>_<$MySQL.Minor>_TESTSUITE>;"
+ SELECT
+ >This package will install MySQL for OS/2 test suite
+</PCK>
+
+</HEAD>
+
+<!-- Here come the different pages. They are linked by
+ the <NEXTBUTTON> tags, which must have a target.
+ Each page must have a TYPE= attribute, which tells
+ WarpIn what will be visible on that page. -->
+
+<BODY>
+
+<!-- page1: introduction ->>
+<PAGE INDEX=1 TYPE=README>
+<TEXT>
+</TEXT>
+<NEXTBUTTON TARGET=2>~Next</NEXTBUTTON>
+<README FORMAT=HTML>
+
+<P>Welcome to the latest port of <B>MySQL for OS/2 and eComStation</B>.
+<BR>
+<P>You are about to install <B>MySQL <$MySQL.Ver></B>
+
+<BR>
+<BR>
+<P>Select "Next" to continue.
+
+<P>Select "Cancel" to abort installation.
+</README>
+</PAGE>
+
+<!-- show ReadMe.txt -->
+<PAGE INDEX=2 TYPE=README>
+<NEXTBUTTON TARGET=3>~Next</NEXTBUTTON>
+<TEXT>
+</TEXT>
+<README FORMAT=PLAIN EXTRACTFROMPCK="1">ReadMe.txt</README>
+</PAGE>
+
+<!-- show GPL license -->
+<PAGE INDEX=3 TYPE=README>
+<NEXTBUTTON TARGET=4>~I agree</NEXTBUTTON>
+<TEXT>
+By pressing the "I agree" button, you agree to all terms and conditions to the below licence agreement.
+</TEXT>
+<README FORMAT=HTML EXTRACTFROMPCK="1">license.htm</README>
+</PAGE>
+
+
+<!-- The TYPE=CONTAINER will list the packages which can be installed. -->
+
+<PAGE INDEX=4 TYPE=CONTAINER>
+<NEXTBUTTON TARGET=5>~Next</NEXTBUTTON>
+<TEXT>
+Please select the packages which are to be installed. You may change the target paths for the packages.
+</TEXT>
+</PAGE>
+
+<!-- Here's another TYPE=TEXT page before we install.
+ The special target "0" indicates that after this page we
+ should start installation.
+ Note that the TYPE=INSTALL page (which we had in Alpha #3)
+ is no longer supported. -->
+
+<PAGE INDEX=5 TYPE=TEXT>
+<NEXTBUTTON TARGET=0>I~nstall</NEXTBUTTON>
+<TEXT>
+Press "Install" to begin installing this archive.</TEXT>
+</PAGE>
+
+</BODY>
+</WARPIN>
diff --git a/os2/mysqlalt.wis b/os2/mysqlalt.wis
new file mode 100644
index 00000000000..55259567a2e
--- /dev/null
+++ b/os2/mysqlalt.wis
@@ -0,0 +1,15 @@
+#include "mysql.ih"
+
+<WARPIN VERSION <$WARPIN_VERSION>>
+<HEAD>
+<MSG>
+This is not an installable archive.
+
+Please download and install the main archive:
+
+ mysql-<$MySQL-Ver>-bld1.wpi
+
+</MSG>
+</HEAD>
+</WARPIN>
+ \ No newline at end of file
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 31e51a5729f..bfbe8f8a25a 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1220,7 +1220,7 @@ the thread stack. Please read http://www.mysql.com/doc/L/i/Linux.html\n\n",
Some pointers may be invalid and cause the dump to abort...\n");
safe_print_str("thd->query", thd->query, 1024);
fprintf(stderr, "thd->thread_id=%ld\n", thd->thread_id);
- fprintf(stderr, "\n
+ fprintf(stderr, "\n\
Successfully dumped variables, if you ran with --log, take a look at the\n\
details of what thread %ld did to cause the crash. In some cases of really\n\
bad corruption, the values shown above may be invalid\n\n",
@@ -2721,6 +2721,8 @@ static struct option long_options[] = {
{0, 0, 0, 0}
};
+#define LONG_TIMEOUT ((ulong) 3600L*24L*365L)
+
CHANGEABLE_VAR changeable_vars[] = {
{ "back_log", (long*) &back_log,
50, 1, 65535, 0, 1 },
@@ -2738,15 +2740,15 @@ CHANGEABLE_VAR changeable_vars[] = {
{ "binlog_cache_size", (long*) &binlog_cache_size,
32*1024L, IO_SIZE, ~0L, 0, IO_SIZE },
{ "connect_timeout", (long*) &connect_timeout,
- CONNECT_TIMEOUT, 2, 65535, 0, 1 },
+ CONNECT_TIMEOUT, 2, LONG_TIMEOUT, 0, 1 },
{ "delayed_insert_timeout", (long*) &delayed_insert_timeout,
- DELAYED_WAIT_TIMEOUT, 1, ~0L, 0, 1 },
+ DELAYED_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
{ "delayed_insert_limit", (long*) &delayed_insert_limit,
DELAYED_LIMIT, 1, ~0L, 0, 1 },
{ "delayed_queue_size", (long*) &delayed_queue_size,
DELAYED_QUEUE_SIZE, 1, ~0L, 0, 1 },
{ "flush_time", (long*) &flush_time,
- FLUSH_TIME, 0, ~0L, 0, 1 },
+ FLUSH_TIME, 0, LONG_TIMEOUT, 0, 1 },
#ifdef HAVE_GEMINI_DB
{ "gemini_buffer_cache", (long*) &gemini_buffer_cache,
128 * 8192, 16, LONG_MAX, 0, 1 },
@@ -2791,13 +2793,13 @@ CHANGEABLE_VAR changeable_vars[] = {
(long*) &innobase_force_recovery, 0, 0, 6, 0, 1},
#endif
{ "interactive_timeout", (long*) &net_interactive_timeout,
- NET_WAIT_TIMEOUT, 1, 31*24*60*60, 0, 1 },
+ NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
{ "join_buffer_size", (long*) &join_buff_size,
128*1024L, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD, IO_SIZE },
{ "key_buffer_size", (long*) &keybuff_size,
KEY_CACHE_SIZE, MALLOC_OVERHEAD, (long) ~0, MALLOC_OVERHEAD, IO_SIZE },
{ "long_query_time", (long*) &long_query_time,
- 10, 1, ~0L, 0, 1 },
+ 10, 1, LONG_TIMEOUT, 0, 1 },
{ "lower_case_table_names", (long*) &lower_case_table_names,
IF_WIN(1,0), 0, 1, 0, 1 },
{ "max_allowed_packet", (long*) &max_allowed_packet,
@@ -2836,9 +2838,9 @@ CHANGEABLE_VAR changeable_vars[] = {
{ "net_retry_count", (long*) &mysqld_net_retry_count,
MYSQLD_NET_RETRY_COUNT, 1, ~0L, 0, 1 },
{ "net_read_timeout", (long*) &net_read_timeout,
- NET_READ_TIMEOUT, 1, 65535, 0, 1 },
+ NET_READ_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
{ "net_write_timeout", (long*) &net_write_timeout,
- NET_WRITE_TIMEOUT, 1, 65535, 0, 1 },
+ NET_WRITE_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
{ "open_files_limit", (long*) &open_files_limit,
0, 0, 65535, 0, 1},
{ "query_buffer_size", (long*) &query_buff_size,
@@ -2848,9 +2850,9 @@ CHANGEABLE_VAR changeable_vars[] = {
{ "record_rnd_buffer", (long*) &record_rnd_cache_size,
0, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD, IO_SIZE },
{ "slave_net_timeout", (long*) &slave_net_timeout,
- SLAVE_NET_TIMEOUT, 1, 65535, 0, 1 },
+ SLAVE_NET_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
{ "slow_launch_time", (long*) &slow_launch_time,
- 2L, 0L, ~0L, 0, 1 },
+ 2L, 0L, LONG_TIMEOUT, 0, 1 },
{ "sort_buffer", (long*) &sortbuff_size,
MAX_SORT_MEMORY, MIN_SORT_MEMORY+MALLOC_OVERHEAD*2, ~0L, MALLOC_OVERHEAD, 1 },
{ "table_cache", (long*) &table_cache_size,
@@ -2864,7 +2866,7 @@ CHANGEABLE_VAR changeable_vars[] = {
{ "thread_stack", (long*) &thread_stack,
DEFAULT_THREAD_STACK, 1024*32, ~0L, 0, 1024 },
{ "wait_timeout", (long*) &net_wait_timeout,
- NET_WAIT_TIMEOUT, 1, ~0L, 0, 1 },
+ NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
{ NullS, (long*) 0, 0, 0, 0, 0, 0}
};
diff --git a/sql/nt_servc.cc b/sql/nt_servc.cc
index 2e7f2fc9c93..6930800982e 100644
--- a/sql/nt_servc.cc
+++ b/sql/nt_servc.cc
@@ -53,11 +53,12 @@ NTService::NTService()
-------------------------------------------------------------------------- */
NTService::~NTService()
{
- if(ServiceName != NULL) delete[] ServiceName;
+ if (ServiceName != NULL) delete[] ServiceName;
}
/* ------------------------------------------------------------------------
-------------------------------------------------------------------------- */
+
BOOL NTService::GetOS()
{
bOsNT = FALSE;
@@ -71,12 +72,14 @@ BOOL NTService::GetOS()
return bOsNT;
}
+
/* ------------------------------------------------------------------------
Init() Registers the main service thread with the service manager
ServiceThread - pointer to the main programs entry function
when the service is started
-------------------------------------------------------------------------- */
+
long NTService::Init(LPCSTR szInternName,void *ServiceThread)
{
@@ -94,6 +97,8 @@ long NTService::Init(LPCSTR szInternName,void *ServiceThread)
return StartServiceCtrlDispatcher(stb); //register with the Service Manager
}
+
+
/* ------------------------------------------------------------------------
Install() - Installs the service with Service manager
nError values:
@@ -101,9 +106,13 @@ long NTService::Init(LPCSTR szInternName,void *ServiceThread)
1 Can't open the Service manager
2 Failed to create service
-------------------------------------------------------------------------- */
-BOOL NTService::Install(int startType, LPCSTR szInternName,LPCSTR szDisplayName,
- LPCSTR szFullPath, LPCSTR szAccountName,LPCSTR szPassword)
+
+BOOL NTService::Install(int startType, LPCSTR szInternName,
+ LPCSTR szDisplayName,
+ LPCSTR szFullPath, LPCSTR szAccountName,
+ LPCSTR szPassword)
{
+ BOOL ret_val=FALSE;
SC_HANDLE newService, scm;
if (!SeekStatus(szInternName,1))
@@ -112,49 +121,40 @@ BOOL NTService::Install(int startType, LPCSTR szInternName,LPCSTR szDisplayName,
char szFilePath[_MAX_PATH];
GetModuleFileName(NULL, szFilePath, sizeof(szFilePath));
-
// open a connection to the SCM
- scm = OpenSCManager(0, 0,SC_MANAGER_CREATE_SERVICE);
-
- if (!scm)
+ if (!(scm = OpenSCManager(0, 0,SC_MANAGER_CREATE_SERVICE)))
+ printf("Failed to install the service (Couldn't open the SCM)\n");
+ else // Install the new service
{
- printf("Failed to install the service\n"
- "Problems to open the SCM");
- CloseServiceHandle(scm);
- return FALSE;
- }
- else // Install the new service
- { newService = CreateService(
- scm,
- szInternName,
- szDisplayName,
- dwDesiredAccess, //default: SERVICE_ALL_ACCESS
- dwServiceType, //default: SERVICE_WIN32_OWN_PROCESS
- (startType == 1 ? SERVICE_AUTO_START : SERVICE_DEMAND_START), //default: SERVICE_AUTOSTART
- dwErrorControl, //default: SERVICE_ERROR_NORMAL
- szFullPath, //exec full path
- szLoadOrderGroup, //default: NULL
- lpdwTagID, //default: NULL
- szDependencies, //default: NULL
- szAccountName, //default: NULL
- szPassword); //default: NULL
-
- if (!newService)
+ if (!(newService=
+ CreateService(scm,
+ szInternName,
+ szDisplayName,
+ dwDesiredAccess,//default: SERVICE_ALL_ACCESS
+ dwServiceType, //default: SERVICE_WIN32_OWN_PROCESS
+ //default: SERVICE_AUTOSTART
+ (startType == 1 ? SERVICE_AUTO_START :
+ SERVICE_DEMAND_START),
+ dwErrorControl, //default: SERVICE_ERROR_NORMAL
+ szFullPath, //exec full path
+ szLoadOrderGroup, //default: NULL
+ lpdwTagID, //default: NULL
+ szDependencies, //default: NULL
+ szAccountName, //default: NULL
+ szPassword))) //default: NULL
+ printf("Failed to install the service (Couldn't create service)\n");
+ else
{
- printf("Failed to install the service.\n"
- "Problems to create the service.");
- CloseServiceHandle(scm);
- CloseServiceHandle(newService);
- return FALSE;
+ printf("Service successfully installed.\n");
+ CloseServiceHandle(newService);
+ ret_val=TRUE; // Everything went ok
}
- else
- printf("Service successfully installed.\n");
- }
- CloseServiceHandle(scm);
- CloseServiceHandle(newService);
- return TRUE;
-
+ CloseServiceHandle(scm);
+ }
+ return ret_val;
}
+
+
/* ------------------------------------------------------------------------
Remove() - Removes the service
nError values:
@@ -163,9 +163,10 @@ BOOL NTService::Install(int startType, LPCSTR szInternName,LPCSTR szDisplayName,
2 Failed to locate service
3 Failed to delete service
-------------------------------------------------------------------------- */
+
BOOL NTService::Remove(LPCSTR szInternName)
{
-
+ BOOL ret_value=FALSE;
SC_HANDLE service, scm;
if (!SeekStatus(szInternName,0))
@@ -174,44 +175,28 @@ BOOL NTService::Remove(LPCSTR szInternName)
nError=0;
// open a connection to the SCM
- scm = OpenSCManager(0, 0,SC_MANAGER_CREATE_SERVICE);
-
- if (!scm)
+ if (!(scm = OpenSCManager(0, 0,SC_MANAGER_CREATE_SERVICE)))
{
- printf("Failed to remove the service\n"
- "Problems to open the SCM");
- CloseServiceHandle(scm);
- return FALSE;
+ printf("Failed to remove the service (Couldn't open the SCM)\n");
}
else
{
- //open the service
- service = OpenService(scm,szInternName, DELETE );
- if(service)
+ if ((service = OpenService(scm,szInternName, DELETE)))
{
- if(!DeleteService(service))
- {
+ if (!DeleteService(service))
printf("Failed to remove the service\n");
- CloseServiceHandle(service);
- CloseServiceHandle(scm);
- return FALSE;
- }
else
+ {
printf("Service successfully removed.\n");
- }
- else
- {
- printf("Failed to remove the service\n");
- printf("Problems to open the service\n");
+ ret_value=TRUE; // everything went ok
+ }
CloseServiceHandle(service);
- CloseServiceHandle(scm);
- return FALSE;
}
+ else
+ printf("Failed to remove the service (Couldn't open the service)\n");
+ CloseServiceHandle(scm);
}
-
- CloseServiceHandle(service);
- CloseServiceHandle(scm);
- return TRUE;
+ return ret_value;
}
/* ------------------------------------------------------------------------
@@ -229,80 +214,66 @@ void NTService::Stop(void)
ServiceMain() - This is the function that is called from the
service manager to start the service
-------------------------------------------------------------------------- */
+
void NTService::ServiceMain(DWORD argc, LPTSTR *argv)
{
// registration function
- pService->hServiceStatusHandle =
- RegisterServiceCtrlHandler(pService->ServiceName,
- (LPHANDLER_FUNCTION )NTService::ServiceCtrlHandler);
-
- if(!pService->hServiceStatusHandle)
- {
- pService->Exit(GetLastError());
- return;
- }
+ if (!(pService->hServiceStatusHandle =
+ RegisterServiceCtrlHandler(pService->ServiceName,
+ (LPHANDLER_FUNCTION)
+ NTService::ServiceCtrlHandler)))
+ goto error;
// notify SCM of progress
- if(!pService->SetStatus(SERVICE_START_PENDING,NO_ERROR, 0, 1, 8000))
- {
- pService->Exit(GetLastError());
- return;
- }
+ if (!pService->SetStatus(SERVICE_START_PENDING,NO_ERROR, 0, 1, 8000))
+ goto error;
// create the exit event
- pService->hExitEvent = CreateEvent (0, TRUE, FALSE,0);
- if(!pService->hExitEvent)
- {
- pService->Exit(GetLastError());
- return;
- }
+ if (!(pService->hExitEvent = CreateEvent (0, TRUE, FALSE,0)))
+ goto error;
- if(!pService->SetStatus(SERVICE_START_PENDING,NO_ERROR, 0, 3, pService->nStartTimeOut))
- {
- pService->Exit(GetLastError());
- return;
- }
+ if (!pService->SetStatus(SERVICE_START_PENDING,NO_ERROR, 0, 3,
+ pService->nStartTimeOut))
+ goto error;
// save start arguments
pService->my_argc=argc;
pService->my_argv=argv;
// start the service
- if(!pService->StartService())
- {
- pService->Exit(GetLastError());
- return;
- }
+ if (!pService->StartService())
+ goto error;
- // the service is now running.
- if(!pService->SetStatus(SERVICE_RUNNING,NO_ERROR, 0, 0, 0))
- {
- pService->Exit(GetLastError());
- return;
- }
+ // Check that the service is now running.
+ if (!pService->SetStatus(SERVICE_RUNNING,NO_ERROR, 0, 0, 0))
+ goto error;
// wait for exit event
WaitForSingleObject (pService->hExitEvent, INFINITE);
// wait for thread to exit
- if (WaitForSingleObject (pService->hThreadHandle, 1000)==WAIT_TIMEOUT)
+ if (WaitForSingleObject (pService->hThreadHandle, 1000) == WAIT_TIMEOUT)
CloseHandle(pService->hThreadHandle);
pService->Exit(0);
+ return;
+
+error:
+ pService->Exit(GetLastError());
+ return;
}
/* ------------------------------------------------------------------------
StartService() - starts the appliaction thread
-------------------------------------------------------------------------- */
+
BOOL NTService::StartService()
{
-
// Start the real service's thread (application)
- hThreadHandle = (HANDLE) _beginthread((THREAD_FC)fpServiceThread,0,(void *)this);
-
- if (hThreadHandle==0) return FALSE;
-
+ if (!(hThreadHandle = (HANDLE) _beginthread((THREAD_FC)fpServiceThread,0,
+ (void *) this)))
+ return FALSE;
bRunning = TRUE;
return TRUE;
}
@@ -314,7 +285,7 @@ void NTService::StopService()
bRunning=FALSE;
// Set the event for application
- if(hShutdownEvent)
+ if (hShutdownEvent)
SetEvent(hShutdownEvent);
// Set the event for ServiceMain
@@ -325,113 +296,119 @@ void NTService::StopService()
-------------------------------------------------------------------------- */
void NTService::PauseService()
{
- bPause = TRUE;
- SuspendThread(hThreadHandle);
+ bPause = TRUE;
+ SuspendThread(hThreadHandle);
}
/* ------------------------------------------------------------------------
-------------------------------------------------------------------------- */
void NTService::ResumeService()
{
- bPause=FALSE;
- ResumeThread(hThreadHandle);
+ bPause=FALSE;
+ ResumeThread(hThreadHandle);
}
/* ------------------------------------------------------------------------
-------------------------------------------------------------------------- */
BOOL NTService::SetStatus (DWORD dwCurrentState,DWORD dwWin32ExitCode,
- DWORD dwServiceSpecificExitCode,DWORD dwCheckPoint,DWORD dwWaitHint)
+ DWORD dwServiceSpecificExitCode, DWORD dwCheckPoint,
+ DWORD dwWaitHint)
{
BOOL bRet;
SERVICE_STATUS serviceStatus;
- dwState=dwCurrentState;
-
- serviceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
- serviceStatus.dwCurrentState = dwCurrentState;
+ dwState=dwCurrentState;
- if (dwCurrentState == SERVICE_START_PENDING)
- serviceStatus.dwControlsAccepted = 0; //don't accept conrol events
- else
- serviceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP |
- SERVICE_ACCEPT_PAUSE_CONTINUE | SERVICE_ACCEPT_SHUTDOWN;
+ serviceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
+ serviceStatus.dwCurrentState = dwCurrentState;
- // if a specific exit code is defined,set up the win32 exit code properly
- if (dwServiceSpecificExitCode == 0)
- serviceStatus.dwWin32ExitCode = dwWin32ExitCode;
- else
- serviceStatus.dwWin32ExitCode = ERROR_SERVICE_SPECIFIC_ERROR;
+ if (dwCurrentState == SERVICE_START_PENDING)
+ serviceStatus.dwControlsAccepted = 0; //don't accept control events
+ else
+ serviceStatus.dwControlsAccepted = (SERVICE_ACCEPT_STOP |
+ SERVICE_ACCEPT_PAUSE_CONTINUE |
+ SERVICE_ACCEPT_SHUTDOWN);
- serviceStatus.dwServiceSpecificExitCode = dwServiceSpecificExitCode;
+ // if a specific exit code is defined,set up the win32 exit code properly
+ if (dwServiceSpecificExitCode == 0)
+ serviceStatus.dwWin32ExitCode = dwWin32ExitCode;
+ else
+ serviceStatus.dwWin32ExitCode = ERROR_SERVICE_SPECIFIC_ERROR;
- serviceStatus.dwCheckPoint = dwCheckPoint;
- serviceStatus.dwWaitHint = dwWaitHint;
+ serviceStatus.dwServiceSpecificExitCode = dwServiceSpecificExitCode;
- // Pass the status to the Service Manager
- bRet=SetServiceStatus (hServiceStatusHandle, &serviceStatus);
+ serviceStatus.dwCheckPoint = dwCheckPoint;
+ serviceStatus.dwWaitHint = dwWaitHint;
- if(!bRet) StopService();
+ // Pass the status to the Service Manager
+ if (!(bRet=SetServiceStatus (hServiceStatusHandle, &serviceStatus)))
+ StopService();
- return bRet;
+ return bRet;
}
/* ------------------------------------------------------------------------
-------------------------------------------------------------------------- */
void NTService::ServiceCtrlHandler(DWORD ctrlCode)
{
+ DWORD dwState;
- DWORD dwState = 0;
-
- if(!pService) return;
+ if (!pService)
+ return;
dwState=pService->dwState; // get current state
- switch(ctrlCode)
- {
+ switch(ctrlCode) {
- /*********** do we need this ? *******************************
- case SERVICE_CONTROL_PAUSE:
- if (pService->bRunning && ! pService->bPause)
- {
- dwState = SERVICE_PAUSED;
- pService->SetStatus(SERVICE_PAUSE_PENDING,NO_ERROR, 0, 1, pService->nPauseTimeOut);
- pService->PauseService();
- }
- break;
-
- case SERVICE_CONTROL_CONTINUE:
- if (pService->bRunning && pService->bPause)
- {
- dwState = SERVICE_RUNNING;
- pService->SetStatus(SERVICE_CONTINUE_PENDING,NO_ERROR, 0, 1, pService->nResumeTimeOut);
- pService->ResumeService();
- }
- break;
- ****************************************************************/
-
- case SERVICE_CONTROL_SHUTDOWN:
- case SERVICE_CONTROL_STOP:
- dwState = SERVICE_STOP_PENDING;
- pService->SetStatus(SERVICE_STOP_PENDING,NO_ERROR, 0, 1, pService->nStopTimeOut);
- pService->StopService();
- break;
-
- default:
- pService->SetStatus(dwState, NO_ERROR,0, 0, 0);
- break;
+#ifdef NOT_USED /* do we need this ? */
+ case SERVICE_CONTROL_PAUSE:
+ if (pService->bRunning && ! pService->bPause)
+ {
+ dwState = SERVICE_PAUSED;
+ pService->SetStatus(SERVICE_PAUSE_PENDING,NO_ERROR, 0, 1,
+ pService->nPauseTimeOut);
+ pService->PauseService();
+ }
+ break;
+
+ case SERVICE_CONTROL_CONTINUE:
+ if (pService->bRunning && pService->bPause)
+ {
+ dwState = SERVICE_RUNNING;
+ pService->SetStatus(SERVICE_CONTINUE_PENDING,NO_ERROR, 0, 1,
+ pService->nResumeTimeOut);
+ pService->ResumeService();
+ }
+ break;
+#endif
+
+ case SERVICE_CONTROL_SHUTDOWN:
+ case SERVICE_CONTROL_STOP:
+ dwState = SERVICE_STOP_PENDING;
+ pService->SetStatus(SERVICE_STOP_PENDING,NO_ERROR, 0, 1,
+ pService->nStopTimeOut);
+ pService->StopService();
+ break;
+
+ default:
+ pService->SetStatus(dwState, NO_ERROR,0, 0, 0);
+ break;
}
//pService->SetStatus(dwState, NO_ERROR,0, 0, 0);
}
+
/* ------------------------------------------------------------------------
-------------------------------------------------------------------------- */
+
void NTService::Exit(DWORD error)
{
- if (hExitEvent) CloseHandle(hExitEvent);
+ if (hExitEvent)
+ CloseHandle(hExitEvent);
// Send a message to the scm to tell that we stop
if (hServiceStatusHandle)
- SetStatus(SERVICE_STOPPED, error,0, 0, 0);
+ SetStatus(SERVICE_STOPPED, error,0, 0, 0);
// If the thread has started kill it ???
// if (hThreadHandle) CloseHandle(hThreadHandle);
@@ -441,100 +418,64 @@ void NTService::Exit(DWORD error)
/* ------------------------------------------------------------------------
-------------------------------------------------------------------------- */
+
BOOL NTService::SeekStatus(LPCSTR szInternName, int OperationType)
{
+ BOOL ret_value=FALSE;
SC_HANDLE service, scm;
- LPQUERY_SERVICE_CONFIG ConfigBuf;
- DWORD dwSize;
- SERVICE_STATUS ss;
- DWORD dwState = 0xFFFFFFFF;
- int k;
// open a connection to the SCM
- scm = OpenSCManager(0, 0,SC_MANAGER_CREATE_SERVICE);
-
- if (!scm) /* problems with the SCM */
- {
+ if (!(scm = OpenSCManager(0, 0,SC_MANAGER_CREATE_SERVICE)))
printf("There is a problem with the Service Control Manager!\n");
- CloseServiceHandle(scm);
- return FALSE;
- }
-
- if (OperationType == 1) /* an install operation */
+ else
{
- service = OpenService(scm,szInternName, SERVICE_ALL_ACCESS );
- if(service)
+ if (OperationType == 1)
{
- ConfigBuf = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4096);
- printf("The service already exists!\n");
- if ( QueryServiceConfig(service,ConfigBuf,4096,&dwSize) )
+ /* an install operation */
+ if ((service = OpenService(scm,szInternName, SERVICE_ALL_ACCESS )))
{
- printf("The current server installed: %s\n", ConfigBuf->lpBinaryPathName);
+ LPQUERY_SERVICE_CONFIG ConfigBuf;
+ DWORD dwSize;
+
+ ConfigBuf = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4096);
+ printf("The service already exists!\n");
+ if (QueryServiceConfig(service,ConfigBuf,4096,&dwSize))
+ printf("The current server installed: %s\n",
+ ConfigBuf->lpBinaryPathName);
+ LocalFree(ConfigBuf);
+ CloseServiceHandle(service);
}
- LocalFree(ConfigBuf);
- CloseServiceHandle(scm);
- CloseServiceHandle(service);
- return FALSE;
- }
- else
- {
- CloseServiceHandle(scm);
- CloseServiceHandle(service);
- return TRUE;
- }
- }
- else /* a remove operation */
- {
- service = OpenService(scm,szInternName, SERVICE_ALL_ACCESS );
- if(!service)
- {
- printf("The service doesn't exists!\n");
- CloseServiceHandle(scm);
- CloseServiceHandle(service);
- return FALSE;
+ else
+ ret_value=TRUE;
}
-
- memset(&ss, 0, sizeof(ss));
- k = QueryServiceStatus(service,&ss);
- if (k)
+ else
{
- dwState = ss.dwCurrentState;
- if (dwState == SERVICE_RUNNING )
- {
- printf("Failed to remove the service:\n");
- printf("The service is running!\n"
- "Stop the server and try again.");
- CloseServiceHandle(service);
- CloseServiceHandle(scm);
- return FALSE;
- }
- else if (dwState == SERVICE_STOP_PENDING)
- {
- printf("Failed to remove the service:\n");
- printf("The service is in stop pending state!\n"
- "Wait 30 seconds and try again.\n"
- "If this condition persist, reboot the machine\n"
- "and try again");
- CloseServiceHandle(service);
- CloseServiceHandle(scm);
- return FALSE;
- }
+ /* a remove operation */
+ if (!(service = OpenService(scm,szInternName, SERVICE_ALL_ACCESS )))
+ printf("The service doesn't exists!\n");
else
{
- CloseServiceHandle(scm);
+ SERVICE_STATUS ss;
+
+ memset(&ss, 0, sizeof(ss));
+ if (QueryServiceStatus(service,&ss))
+ {
+ DWORD dwState = ss.dwCurrentState;
+ if (dwState == SERVICE_RUNNING)
+ printf("Failed to remove the service because the service is running\nStop the service and try again\n");
+ else if (dwState == SERVICE_STOP_PENDING)
+ printf("\
+Failed to remove the service because the service is in stop pending state!\n\
+Wait 30 seconds and try again.\n\
+If this condition persist, reboot the machine and try again\n");
+ else
+ ret_value= TRUE;
+ }
CloseServiceHandle(service);
- return TRUE;
}
- }
- else
- {
- CloseServiceHandle(scm);
- CloseServiceHandle(service);
- }
- }
-
- return FALSE;
-
+ }
+ CloseServiceHandle(scm);
+ }
+ return ret_value;
}
-/* ------------------------- the end -------------------------------------- */
diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt
index 8ab9490e6e8..d1638bee16e 100644
--- a/sql/share/czech/errmsg.txt
+++ b/sql/share/czech/errmsg.txt
@@ -224,14 +224,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt
index a9ae97ff293..6585f717a78 100644
--- a/sql/share/danish/errmsg.txt
+++ b/sql/share/danish/errmsg.txt
@@ -218,14 +218,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt
index 54d79293c74..d14400edc69 100644
--- a/sql/share/dutch/errmsg.txt
+++ b/sql/share/dutch/errmsg.txt
@@ -167,6 +167,8 @@
"Communicatiepakket kon niet worden gedecomprimeerd",
"Fout bij het lezen van communicatiepakketten"
"Timeout bij het lezen van communicatiepakketten",
+"Got an error writing communication packets",
+"Got timeout writing communication packets",
"Resultaat string is langer dan max_allowed_packet",
"Het gebruikte tabel type ondersteunt geen BLOB/TEXT kolommen",
"Het gebruikte tabel type ondersteunt geen AUTO_INCREMENT kolommen",
@@ -219,14 +221,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt
index 895a34abafe..384d2c846c2 100644
--- a/sql/share/english/errmsg.txt
+++ b/sql/share/english/errmsg.txt
@@ -215,15 +215,7 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
-"Cannot delete a parent row: a foreign key constraint fails", \ No newline at end of file
+"Cannot delete a parent row: a foreign key constraint fails",
diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt
index 6411be85b1b..20891c7b001 100644
--- a/sql/share/estonian/errmsg.txt
+++ b/sql/share/estonian/errmsg.txt
@@ -219,14 +219,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt
index 3b1957e0f3b..104e561d642 100644
--- a/sql/share/french/errmsg.txt
+++ b/sql/share/french/errmsg.txt
@@ -215,14 +215,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt
index 71ed306caa3..d0a08a1e7a8 100644
--- a/sql/share/german/errmsg.txt
+++ b/sql/share/german/errmsg.txt
@@ -218,14 +218,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt
index 13e49221808..f778cb857d7 100644
--- a/sql/share/greek/errmsg.txt
+++ b/sql/share/greek/errmsg.txt
@@ -215,15 +215,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt
index 28e890daea2..6ff12c8b49e 100644
--- a/sql/share/hungarian/errmsg.txt
+++ b/sql/share/hungarian/errmsg.txt
@@ -217,15 +217,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt
index 5e64ebcc099..7a3daca9a59 100644
--- a/sql/share/italian/errmsg.txt
+++ b/sql/share/italian/errmsg.txt
@@ -215,15 +215,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt
index 6bf0d588c08..fab60948943 100644
--- a/sql/share/japanese/errmsg.txt
+++ b/sql/share/japanese/errmsg.txt
@@ -217,15 +217,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt
index 6448b8f7327..0dac448e2b2 100644
--- a/sql/share/korean/errmsg.txt
+++ b/sql/share/korean/errmsg.txt
@@ -215,15 +215,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/norwegian-ny/.cvsignore b/sql/share/norwegian-ny/.cvsignore
deleted file mode 100755
index 2f68f259c40..00000000000
--- a/sql/share/norwegian-ny/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-errmsg.sys
diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt
index ab213ed3f13..78075c3990c 100644
--- a/sql/share/norwegian-ny/errmsg.txt
+++ b/sql/share/norwegian-ny/errmsg.txt
@@ -217,15 +217,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/norwegian/.cvsignore b/sql/share/norwegian/.cvsignore
deleted file mode 100755
index 2f68f259c40..00000000000
--- a/sql/share/norwegian/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-errmsg.sys
diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt
index d51901b8a21..997d667f812 100644
--- a/sql/share/norwegian/errmsg.txt
+++ b/sql/share/norwegian/errmsg.txt
@@ -217,15 +217,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt
index 4b16c7d5b25..f317d99d48f 100644
--- a/sql/share/polish/errmsg.txt
+++ b/sql/share/polish/errmsg.txt
@@ -219,15 +219,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt
index 7971e29cb96..a3ae06d193f 100644
--- a/sql/share/portuguese/errmsg.txt
+++ b/sql/share/portuguese/errmsg.txt
@@ -215,15 +215,6 @@
"NЦo И permitido a %-.32s@%-.64s criar novos usuАrios",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt
index 2347994c418..26d9f34528a 100644
--- a/sql/share/romanian/errmsg.txt
+++ b/sql/share/romanian/errmsg.txt
@@ -219,15 +219,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt
index 8be8cccc8ea..c02c47696b0 100644
--- a/sql/share/russian/errmsg.txt
+++ b/sql/share/russian/errmsg.txt
@@ -207,26 +207,17 @@
"Этот сервер не slave, исправьте в конфигурационном файле или коммандой CHANGE MASTER TO",
"Не получилось инициализировать структуру master info, проверте persmissions на файле master.info",
"Не могу создать процесс SLAVE, проверьте системные ресурсы",
-"User %-.64s has already more than 'max_user_connections' active connections",
-"You may only use constant expressions with SET",
-"Lock wait timeout exceeded",
-"The total number of locks exceeds the lock table size",
-"Update locks cannot be acquired during a READ UNCOMMITTED transaction",
-"DROP DATABASE not allowed while thread is holding global read lock",
-"CREATE DATABASE not allowed while thread is holding global read lock",
-"Wrong arguments to %s",
-"%-.32s@%-.64s is not allowed to create new users",
-"Incorrect table definition; All MERGE tables must be in the same database",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
+"У пользователя %-.64s уже больше чем 'max_user_connections' активных соединений",
+"Можно использовать только выражение-константу совместно с SET",
+"Таймаут ожидания блокировки",
+"Общее количество блокировок превысило размер таблицы блокировок",
+"Блокировка изменения не может быть получена во время READ UNCOMMITTED транзакции",
+"DROP DATABASE запрещен во время глобальной блокировки чтения",
+"CREATE DATABASE запрещен во время глобальной блокировки чтения",
+"Неправильные аргуметны у %s",
+"%-.32s@%-.64s не имеет привилегий создавать новых пользователей",
+"Неверное определение таблицы; Все MERGE-таблицы должны быть в одной базе данных",
+"Обнаружен deadlock во время получения блокировки; Попробуйте перезапустить транзакцию",
"Таблица данного типа не может иметь FULLTEXT индекса",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt
index 4e3b9090e4f..189db8a66f8 100644
--- a/sql/share/slovak/errmsg.txt
+++ b/sql/share/slovak/errmsg.txt
@@ -223,15 +223,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt
index 298884151ea..57d4ac9646a 100644
--- a/sql/share/spanish/errmsg.txt
+++ b/sql/share/spanish/errmsg.txt
@@ -216,15 +216,6 @@
"%-.32s@%-.64s is not allowed to create new users",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"The used table type doesn't support FULLTEXT indexes",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt
index 1498090101e..7e8dcaaafcc 100644
--- a/sql/share/swedish/errmsg.txt
+++ b/sql/share/swedish/errmsg.txt
@@ -215,16 +215,7 @@
"%-.32s@%-.64s har inte rДttigheter att skapa nya anvДndare",
"Felaktig tabell definition: Alla tabeller i en MERGE tabell mЕste vara i samma databas",
"Fick 'DEADLOCK' vid lЕsfЖrsЖk av block/rad; FЖrsЖk att starta om transaktionen",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"The used table type doesn't support FULLTEXT indexes",
-"Cannot add foreign key constraint",
-"Cannot add a child row: a foreign key constraint fails",
-"Cannot delete a parent row: a foreign key constraint fails",
+"Tabelltypen har inte hantering av FULLTEXT index",
+"Kan inte lДgga till 'FOREIGN KEY constraint'",
+"FOREIGN KEY konflikt: Kan inte skriva barn",
+"FOREIGN KEY konflikt: Kan inte radera fader",
diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt
index 628134a0ef6..4508fc75c27 100644
--- a/sql/share/ukrainian/errmsg.txt
+++ b/sql/share/ukrainian/errmsg.txt
@@ -220,15 +220,6 @@
"Користувачу %-.32s@%-.64s не дозволено створювати нових користувач╕в",
"Incorrect table definition; All MERGE tables must be in the same database",
"Deadlock found when trying to get lock; Try restarting transaction",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
-"Dummy error message: this error number should only occur in MySQL-4",
"Використаний тип таблиц╕ не п╕дтриму╓ FULLTEXT ╕ндекс╕в",
"Cannot add foreign key constraint",
"Cannot add a child row: a foreign key constraint fails",
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index ef3cacf114c..14f09454734 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2942,7 +2942,9 @@ propagate_cond_constants(I_List<COND_CMP> *save_list,COND *and_level,
Item_func_eq *func=(Item_func_eq*) cond;
bool left_const= func->arguments()[0]->const_item();
bool right_const=func->arguments()[1]->const_item();
- if (!(left_const && right_const))
+ if (!(left_const && right_const) &&
+ (func->arguments()[0]->result_type() ==
+ (func->arguments()[1]->result_type())))
{
if (right_const)
{
@@ -3986,14 +3988,17 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure)
{
if (table->group && join->tmp_table_param.sum_func_count)
{
- DBUG_PRINT("info",("Using end_update"));
if (table->keys)
{
+ DBUG_PRINT("info",("Using end_update"));
end_select=end_update;
table->file->index_init(0);
}
else
+ {
+ DBUG_PRINT("info",("Using end_unique_update"));
end_select=end_unique_update;
+ }
}
else if (join->sort_and_group)
{
@@ -4109,8 +4114,6 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
int error;
bool found=0;
COND *on_expr=join_tab->on_expr, *select_cond=join_tab->select_cond;
- int (*next_select)(JOIN *,struct st_join_table *,bool)=
- join_tab->next_select;
if (!(error=(*join_tab->read_first_record)(join_tab)))
{
@@ -4134,7 +4137,7 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
break; // Searching after not null columns
if (!select_cond || select_cond->val_int())
{
- if ((error=(*next_select)(join,join_tab+1,0)) < 0)
+ if ((error=(*join_tab->next_select)(join,join_tab+1,0)) < 0)
return error;
if (not_used_in_distinct && found_records != join->found_records)
return 0;
@@ -4155,7 +4158,7 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
mark_as_null_row(join_tab->table); // For group by without error
if (!select_cond || select_cond->val_int())
{
- if ((error=(*next_select)(join,join_tab+1,0)) < 0)
+ if ((error=(*join_tab->next_select)(join,join_tab+1,0)) < 0)
return error; /* purecov: inspected */
}
}