summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-10-30 16:31:35 +0200
committerunknown <monty@hundin.mysql.fi>2001-10-30 16:31:35 +0200
commit7b1cfb6353ee805326a22d8c9e71953b7ea8ed54 (patch)
treeae7c97d916cbedaec41df19869889814ef8f8688
parent859371bb5ffaf635d18552081a85c975278ab8e7 (diff)
downloadmariadb-git-7b1cfb6353ee805326a22d8c9e71953b7ea8ed54.tar.gz
Fix for gcc 3.0
Fix for using quoted table names with the SJIS character set. BUILD/FINISH.sh: Fix for gcc 3.0 BUILD/SETUP.sh: Fix for gcc 3.0 Docs/manual.texi: Changelog innobase/include/univ.i: Fix for gcc 3.0 sql/sql_lex.cc: Fix for using quoted table names with the SJIS character set.
-rw-r--r--BUILD/FINISH.sh2
-rw-r--r--BUILD/SETUP.sh9
-rw-r--r--Docs/manual.texi14
-rw-r--r--innobase/include/univ.i6
-rw-r--r--sql/sql_lex.cc25
5 files changed, 45 insertions, 11 deletions
diff --git a/BUILD/FINISH.sh b/BUILD/FINISH.sh
index 368ab339c2b..c7cd43fa64e 100644
--- a/BUILD/FINISH.sh
+++ b/BUILD/FINISH.sh
@@ -20,7 +20,7 @@ then
(cd gemini && aclocal && autoheader && aclocal && automake && autoconf)
fi
-CFLAGS=\"$cflags\" CXX=gcc CXXFLAGS=\"$cxxflags\" $configure"
+CFLAGS=\"$cflags\" CXX=$CXX CXXFLAGS=\"$cxxflags\" $configure"
if [ -z "$just_configure" ]
then
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh
index 778625e9e75..a8b0762c3ec 100644
--- a/BUILD/SETUP.sh
+++ b/BUILD/SETUP.sh
@@ -40,7 +40,7 @@ c_warnings="$global_warnings -Wunused"
cxx_warnings="$global_warnings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor"
alpha_cflags="-mcpu=ev6 -Wa,-mev6" # Not used yet
-pentium_cflags="-mpentiumpro"
+pentium_cflags="-mcpu=pentiumpro"
sparc_cflags=""
# be as fast as we can be without losing our ability to backtrace
@@ -65,3 +65,10 @@ then
else
make=make
fi
+
+if gcc -v 2>&1 | grep 'version 3' > /dev/null 2>&1
+then
+ CXX=c++
+else
+ CXX=gcc
+fi
diff --git a/Docs/manual.texi b/Docs/manual.texi
index eafca54b6e1..6514b36e703 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -5948,9 +5948,6 @@ Change sort to allocate memory in ``hunks'' to get better memory utilization.
@code{Field_decimal::store(const char *from,uint len)} must be recoded
to fix this.
@item
-Fix @code{mysql.cc} to do fewer @code{malloc()} calls when hashing field
-names.
-@item
Functions:
ADD_TO_SET(value,set) and REMOVE_FROM_SET(value,set)
@item
@@ -5985,8 +5982,6 @@ join type.
@item
Oracle like @code{CONNECT BY PRIOR ...} to search hierarchy structures.
@item
-@code{RENAME DATABASE}
-@item
@code{mysqladmin copy database new-database}. -- Requires COPY command to be
added to @code{mysqld}
@item
@@ -46845,6 +46840,13 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.44
@itemize @bullet
@item
+Fixed problem with sjis character strings used within quoted table names.
+@item
+Fixed coredump when using @code{CREATE ... FULLTEXT} keys with other table
+handlers than MyISAM.
+@item
+Add missing @code{InnoDB} variables to @code{SHOW VARIABLES}.
+@item
Don't use @code{signal()} on windows because this appears to not be
100 % reliable.
@item
@@ -46854,7 +46856,7 @@ that had @code{NULL} values.
Fixed bug when doing @code{LEFT JOIN ... ON (column_name = constant) WHERE column_name = constant}.
@item
When using replications, aborted queries that contained @code{%} could cause
-a core dum.
+a core dump.
@item
TCP_NODELAY was not used on some systems. (Speed problem).
@end itemize
diff --git a/innobase/include/univ.i b/innobase/include/univ.i
index 9fc9f85f633..a4345babbbe 100644
--- a/innobase/include/univ.i
+++ b/innobase/include/univ.i
@@ -104,8 +104,12 @@ memory is read outside the allocated blocks. */
#define UNIV_INLINE __inline
#else
/* config.h contains the right def for 'inline' for the current compiler */
+#if (__GNUC__ == 2)
#define UNIV_INLINE extern inline
-
+#else
+/* extern inline doesn't work with gcc 3.0.2 */
+#define UNIV_INLINE static inline
+#endif
#endif
#else
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 5c63fa32293..7c3b933bbd7 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -601,8 +601,29 @@ int yylex(void *arg)
case STATE_USER_VARIABLE_DELIMITER:
lex->tok_start=lex->ptr; // Skipp first `
- while ((c=yyGet()) && state_map[c] != STATE_USER_VARIABLE_DELIMITER &&
- c != (uchar) NAMES_SEP_CHAR) ;
+#ifdef USE_MB
+ if (use_mb(default_charset_info))
+ {
+ while ((c=yyGet()) && state_map[c] != STATE_USER_VARIABLE_DELIMITER &&
+ c != (uchar) NAMES_SEP_CHAR)
+ {
+ if (my_ismbhead(default_charset_info, c))
+ {
+ int l;
+ if ((l = my_ismbchar(default_charset_info,
+ (const char *)lex->ptr-1,
+ (const char *)lex->end_of_query)) == 0)
+ break;
+ lex->ptr += l-1;
+ }
+ }
+ }
+ else
+#endif
+ {
+ while ((c=yyGet()) && state_map[c] != STATE_USER_VARIABLE_DELIMITER &&
+ c != (uchar) NAMES_SEP_CHAR) ;
+ }
yylval->lex_str=get_token(lex,yyLength());
if (state_map[c] == STATE_USER_VARIABLE_DELIMITER)
yySkip(); // Skipp end `