summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2002-05-17 10:51:32 +0300
committerunknown <monty@hundin.mysql.fi>2002-05-17 10:51:32 +0300
commit8a32ef1cf9e3d92230416b882b697aeb8867278c (patch)
tree9ecefc8174ec213cb50935c91a570066d6128980
parent4df6586eb712eb968efac9a8ee7dfe5afd4f29db (diff)
parentc2504d86b317d9d18fa3de29a4cef325e8de9dfa (diff)
downloadmariadb-git-8a32ef1cf9e3d92230416b882b697aeb8867278c.tar.gz
Merge work:/home/bk/mysql into hundin.mysql.fi:/my/bk/mysql
-rw-r--r--Docs/glibc-2.2.5.patch209
-rw-r--r--Docs/manual.texi2
-rw-r--r--mysql-test/r/func_concat.result13
-rw-r--r--mysql-test/t/func_concat.test24
-rw-r--r--sql/item_strfunc.cc2
-rw-r--r--sql/share/italian/errmsg.txt20
6 files changed, 186 insertions, 84 deletions
diff --git a/Docs/glibc-2.2.5.patch b/Docs/glibc-2.2.5.patch
index c6bc2bf39a8..fc12486d7d0 100644
--- a/Docs/glibc-2.2.5.patch
+++ b/Docs/glibc-2.2.5.patch
@@ -1,73 +1,136 @@
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/linuxthreads/internals.h ./linuxthreads/internals.h
---- ../glibc-2.2.5/linuxthreads/internals.h Thu Nov 29 00:44:16 2001
-+++ ./linuxthreads/internals.h Fri Feb 22 21:18:09 2002
-@@ -343,7 +343,7 @@
- THREAD_SELF implementation is used, this must be a power of two and
- a multiple of PAGE_SIZE. */
- #ifndef STACK_SIZE
--#define STACK_SIZE (2 * 1024 * 1024)
-+#define STACK_SIZE (128 * 1024)
- #endif
-
- /* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h ./linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h
---- ../glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Thu Jun 8 13:49:49 2000
-+++ ./linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Fri Feb 22 21:18:09 2002
-@@ -64,7 +64,7 @@
- /* The number of threads per process. */
- #define _POSIX_THREAD_THREADS_MAX 64
- /* This is the value this implementation supports. */
--#define PTHREAD_THREADS_MAX 1024
-+#define PTHREAD_THREADS_MAX 4096
-
- /* Maximum amount by which a process can descrease its asynchronous I/O
- priority level. */
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/nss/nsswitch.c ./nss/nsswitch.c
---- ../glibc-2.2.5/nss/nsswitch.c Tue Jul 17 02:21:36 2001
-+++ ./nss/nsswitch.c Fri Feb 22 21:18:09 2002
-@@ -515,8 +515,16 @@
- + (line - name + 1));
- if (new_service == NULL)
- return result;
--
-+#ifdef DO_STATIC_NSS
-+ if (strncmp(name,"files",5) == 0 ||
-+ strncmp(name,"dns",3) == 0)
-+#endif
- *((char *) __mempcpy (new_service->name, name, line - name)) = '\0';
-+#ifdef DO_STATIC_NSS
-+ else
-+ *((char *) __mempcpy (new_service->name, "files", 5)) = '\0';
-+#endif
-+
-
- /* Set default actions. */
- new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/time/Makefile ./time/Makefile
---- ../glibc-2.2.5/time/Makefile Fri Feb 22 21:27:19 2002
-+++ ./time/Makefile Fri Feb 22 21:26:47 2002
-@@ -37,8 +37,8 @@
-
- include ../Rules
-
--tz-cflags = -DTZDIR='"$(zonedir)"' \
-- -DTZDEFAULT='"$(localtime-file)"' \
-+tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
-+ -DTZDEFAULT='"/etc/localtime"' \
- -DTZDEFRULES='"$(posixrules-file)"'
-
- CFLAGS-tzfile.c = $(tz-cflags)
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/timezone/Makefile ./timezone/Makefile
---- ../glibc-2.2.5/timezone/Makefile Wed Aug 29 16:45:25 2001
-+++ ./timezone/Makefile Fri Feb 22 21:18:09 2002
-@@ -159,8 +159,8 @@
-
- $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
-
--tz-cflags = -DTZDIR='"$(zonedir)"' \
-- -DTZDEFAULT='"$(localtime-file)"' \
-+tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
-+ -DTZDEFAULT='"/etc/localtime"' \
- -DTZDEFRULES='"$(posixrules-file)"' \
- -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
-
+diff -r -c --exclude=*.info* glibc-2.2.4/linuxthreads/internals.h glibc-2.2.4-new/linuxthreads/internals.h
+*** glibc-2.2.4/linuxthreads/internals.h Mon Jul 23 20:54:13 2001
+--- glibc-2.2.4-new/linuxthreads/internals.h Tue Apr 16 15:08:03 2002
+***************
+*** 339,345 ****
+ THREAD_SELF implementation is used, this must be a power of two and
+ a multiple of PAGE_SIZE. */
+ #ifndef STACK_SIZE
+! #define STACK_SIZE (2 * 1024 * 1024)
+ #endif
+
+ /* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
+--- 339,345 ----
+ THREAD_SELF implementation is used, this must be a power of two and
+ a multiple of PAGE_SIZE. */
+ #ifndef STACK_SIZE
+! #define STACK_SIZE (128 * 1024)
+ #endif
+
+ /* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
+diff -r -c --exclude=*.info* glibc-2.2.4/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h glibc-2.2.4-new/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h
+*** glibc-2.2.4/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Fri Jun 9 22:17:35 2000
+--- glibc-2.2.4-new/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Tue Apr 16 15:10:38 2002
+***************
+*** 64,70 ****
+ /* The number of threads per process. */
+ #define _POSIX_THREAD_THREADS_MAX 64
+ /* This is the value this implementation supports. */
+! #define PTHREAD_THREADS_MAX 1024
+
+ /* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+--- 64,70 ----
+ /* The number of threads per process. */
+ #define _POSIX_THREAD_THREADS_MAX 64
+ /* This is the value this implementation supports. */
+! #define PTHREAD_THREADS_MAX 4096
+
+ /* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+diff -r -c --exclude=*.info* glibc-2.2.4/nss/nsswitch.c glibc-2.2.4-new/nss/nsswitch.c
+*** glibc-2.2.4/nss/nsswitch.c Mon Jul 23 20:54:48 2001
+--- glibc-2.2.4-new/nss/nsswitch.c Fri May 3 04:17:44 2002
+***************
+*** 496,501 ****
+--- 496,502 ----
+ {
+ service_user *new_service;
+ const char *name;
++ int name_alloc_len;
+
+ while (isspace (line[0]))
+ ++line;
+***************
+*** 510,522 ****
+ if (name == line)
+ return result;
+
+
+ new_service = (service_user *) malloc (sizeof (service_user)
+! + (line - name + 1));
+ if (new_service == NULL)
+ return result;
+
+! *((char *) __mempcpy (new_service->name, name, line - name)) = '\0';
+
+ /* Set default actions. */
+ new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
+--- 511,533 ----
+ if (name == line)
+ return result;
+
++ name_alloc_len = line - name + 1;
++
++ #ifdef DO_STATIC_NSS
++ if (!((name_alloc_len == 6 && strncmp(name,"files",5) == 0) ||
++ (name_alloc_len == 4 && strncmp(name,"dns",3) == 0)))
++ {
++ name = (char*) "files";
++ name_alloc_len=6;
++ }
++ #endif
+
+ new_service = (service_user *) malloc (sizeof (service_user)
+! + name_alloc_len);
+ if (new_service == NULL)
+ return result;
+
+! *((char *) __mempcpy (new_service->name, name, name_alloc_len)) = '\0';
+
+ /* Set default actions. */
+ new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
+diff -r -c --exclude=*.info* glibc-2.2.4/time/Makefile glibc-2.2.4-new/time/Makefile
+*** glibc-2.2.4/time/Makefile Fri Aug 10 22:12:07 2001
+--- glibc-2.2.4-new/time/Makefile Tue Apr 16 15:11:09 2002
+***************
+*** 37,44 ****
+
+ include ../Rules
+
+! tz-cflags = -DTZDIR='"$(zonedir)"' \
+! -DTZDEFAULT='"$(localtime-file)"' \
+ -DTZDEFRULES='"$(posixrules-file)"'
+
+ CFLAGS-tzfile.c = $(tz-cflags)
+--- 37,44 ----
+
+ include ../Rules
+
+! tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
+! -DTZDEFAULT='"/etc/localtime"' \
+ -DTZDEFRULES='"$(posixrules-file)"'
+
+ CFLAGS-tzfile.c = $(tz-cflags)
+diff -r -c --exclude=*.info* glibc-2.2.4/timezone/Makefile glibc-2.2.4-new/timezone/Makefile
+*** glibc-2.2.4/timezone/Makefile Mon Jul 23 20:58:05 2001
+--- glibc-2.2.4-new/timezone/Makefile Tue Apr 16 15:11:09 2002
+***************
+*** 159,166 ****
+
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+! tz-cflags = -DTZDIR='"$(zonedir)"' \
+! -DTZDEFAULT='"$(localtime-file)"' \
+ -DTZDEFRULES='"$(posixrules-file)"' \
+ -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
+
+--- 159,166 ----
+
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+! tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
+! -DTZDEFAULT='"/etc/localtime"' \
+ -DTZDEFRULES='"$(posixrules-file)"' \
+ -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
+
diff --git a/Docs/manual.texi b/Docs/manual.texi
index c202c2c07a7..ce5c6c301ea 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -46916,6 +46916,8 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.51
@itemize @bullet
@item
+Fixed bug in @code{CONCAT_WS()} that cut the result.
+@item
Changed name of variables @code{Com_show_master_stat} to
@code{Com_show_master_status} and @code{Com_show_slave_stat} to
@code{Com_show_slave_status}.
diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result
new file mode 100644
index 00000000000..75ee8f2bf79
--- /dev/null
+++ b/mysql-test/r/func_concat.result
@@ -0,0 +1,13 @@
+number alpha new
+1413006 idlfmv 1413006<---->idlfmv
+1413065 smpsfz 1413065<---->smpsfz
+1413127 sljrhx 1413127<---->sljrhx
+1413304 qerfnd 1413304<---->qerfnd
+new
+1413006<---->idlfmv
+number alpha new
+1413006 idlfmv 1413006<->idlfmv
+number alpha new
+1413006 idlfmv 1413006-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv
+number alpha new
+1413006 idlfmv 1413006<------------------>idlfmv
diff --git a/mysql-test/t/func_concat.test b/mysql-test/t/func_concat.test
new file mode 100644
index 00000000000..d6da1d6a603
--- /dev/null
+++ b/mysql-test/t/func_concat.test
@@ -0,0 +1,24 @@
+#
+# Test of problem with CONCAT_WS() and long separators.
+#
+
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 ( number INT NOT NULL, alpha CHAR(6) NOT NULL );
+INSERT INTO t1 VALUES (1413006,'idlfmv'),
+(1413065,'smpsfz'),(1413127,'sljrhx'),(1413304,'qerfnd');
+
+SELECT number, alpha, CONCAT_WS('<---->',number,alpha) AS new
+FROM t1 GROUP BY number;
+
+SELECT CONCAT_WS('<---->',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+
+SELECT number, alpha, CONCAT_WS('<->',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+
+SELECT number, alpha, CONCAT_WS('-',number,alpha,alpha,alpha,alpha,alpha,alpha,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+
+SELECT number, alpha, CONCAT_WS('<------------------>',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+drop table t1;
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 0321d37c0fe..54fc427edf0 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -313,7 +313,7 @@ null:
void Item_func_concat_ws::fix_length_and_dec()
{
- max_length=0;
+ max_length=separator->max_length*(arg_count-1);
for (uint i=0 ; i < arg_count ; i++)
max_length+=args[i]->max_length;
if (max_length > MAX_BLOB_WIDTH)
diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt
index 3da78e82d99..4b434573390 100644
--- a/sql/share/italian/errmsg.txt
+++ b/sql/share/italian/errmsg.txt
@@ -209,13 +209,13 @@
"E' scaduto il timeout per l'attesa del lock",
"Il numero totale di lock e' maggiore della grandezza della tabella di lock",
"I lock di aggiornamento non possono essere acquisiti durante una transazione 'READ UNCOMMITTED'",
-"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",
-"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",
+"DROP DATABASE non e' permesso mentre il thread ha un lock globale di lettura",
+"CREATE DATABASE non e' permesso mentre il thread ha un lock globale di lettura",
+"Argomenti errati a %s",
+"A %-.32s@%-.64s non e' permesso creare nuovi utenti",
+"Definizione della tabella errata; tutte le tabelle di tipo MERGE devono essere nello stesso database",
+"Trovato deadlock durante il lock; Provare a far ripartire la transazione",
+"La tabella usata non supporta gli indici FULLTEXT",
+"Impossibile aggiungere il vincolo di integrita' referenziale (foreign key constraint)",
+"Impossibile aggiungere la riga: un vincolo d'integrita' referenziale non e' soddisfatto",
+"Impossibile cancellare la riga: un vincolo d'integrita' referenziale non e' soddisfatto",