Below is the list of changes that have just been committed into a local
5.1 repository of tsmith. When tsmith does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-01-18 08:30:35-07:00, tsmith@stripped +30 -0
Merge siva.hindu.god:/home/tsmith/m/bk/mrg-jan17/51
into siva.hindu.god:/home/tsmith/m/bk/mrg-jan17/maint/51
MERGE: 1.2372.4.19
BUILD/check-cpu@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.18.1.1
configure.in@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.409.1.1
include/my_global.h@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.152.1.3
mysql-test/mysql-test-run.pl@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0
-0
Auto merged
MERGE: 1.254.1.8
mysql-test/r/sp.result@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.241.1.3
mysql-test/r/type_enum.result@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0
-26
Auto merged
MERGE: 1.30.1.1
mysql-test/r/udf.result@stripped, 2007-01-18 07:53:35-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.15.1.1
mysql-test/r/view.result@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.194.1.1
mysql-test/t/mysqladmin.test@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.2.1.1
mysql-test/t/sp.test@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.208.1.1
mysql-test/t/trigger.test@stripped, 2007-01-18 08:30:31-07:00, tsmith@stripped +0 -0
Manual merge
MERGE: 1.58.2.1
mysql-test/t/type_enum.test@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0
-23
Auto merged
MERGE: 1.16.1.1
mysql-test/t/view.test@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.175.1.1
mysys/my_read.c@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.12.1.1
scripts/make_binary_distribution.sh@stripped, 2007-01-18 07:53:36-07:00,
tsmith@stripped +0 -0
Auto merged
MERGE: 1.135.1.7
server-tools/instance-manager/Makefile.am@stripped, 2007-01-18 07:53:36-07:00,
tsmith@stripped +0 -0
Auto merged
MERGE: 1.43.1.3
server-tools/instance-manager/guardian.cc@stripped, 2007-01-18 08:30:31-07:00,
tsmith@stripped +3 -2
Manual merge
MERGE: 1.33.3.3
server-tools/instance-manager/instance.cc@stripped, 2007-01-18 08:19:47-07:00,
tsmith@stripped +0 -2
Use remote (global 5.1 version)
MERGE: 1.47.1.3
sql/event_queue.cc@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.19.1.5
sql/field.h@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.199.1.2
sql/item_sum.h@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.111.1.2
sql/log_event.cc@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.262.1.1
sql/mysqld.cc@stripped, 2007-01-18 07:53:36-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.603.1.8
sql/share/errmsg.txt@stripped, 2007-01-18 07:53:37-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.138.1.1
sql/sql_class.h@stripped, 2007-01-18 07:53:37-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.336.1.2
sql/sql_parse.cc@stripped, 2007-01-18 07:53:37-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.616.1.2
sql/sql_show.cc@stripped, 2007-01-18 07:53:37-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.381.1.3
sql/table.cc@stripped, 2007-01-18 07:53:37-07:00, tsmith@stripped +0 -0
Auto merged
MERGE: 1.265.1.2
sql/unireg.cc@stripped, 2007-01-18 08:28:30-07:00, tsmith@stripped +0 -40
Use remote (5.1 global version)
MERGE: 1.92.1.1
storage/federated/ha_federated.cc@stripped, 2007-01-18 07:53:38-07:00, tsmith@stripped
+0 -0
Auto merged
MERGE: 1.94.1.1
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: tsmith
# Host: siva.hindu.god
# Root: /home/tsmith/m/bk/mrg-jan17/maint/51/RESYNC
--- 1.139/scripts/make_binary_distribution.sh 2007-01-07 07:28:00 -07:00
+++ 1.140/scripts/make_binary_distribution.sh 2007-01-18 07:53:36 -07:00
@@ -369,7 +369,7 @@
#
if [ x"@GXX@" = x"yes" ] ; then
- gcclib=`@CC@ --print-libgcc-file`
+ gcclib=`@CC@ @CFLAGS@ --print-libgcc-file`
if [ $? -ne 0 ] ; then
echo "Warning: Couldn't find libgcc.a!"
else
--- 1.202/sql/field.h 2007-01-11 06:09:58 -07:00
+++ 1.203/sql/field.h 2007-01-18 07:53:36 -07:00
@@ -1096,7 +1096,8 @@
bool zero_pack() const { return 0; }
int reset(void)
{
- charset()->cset->fill(charset(),ptr,field_length,' ');
+ charset()->cset->fill(charset(),ptr,field_length,
+ (has_charset() ? ' ' : 0));
return 0;
}
int store(const char *to,uint length,CHARSET_INFO *charset);
--- 1.114/sql/item_sum.h 2007-01-11 06:09:58 -07:00
+++ 1.115/sql/item_sum.h 2007-01-18 07:53:36 -07:00
@@ -222,7 +222,7 @@
public:
enum Sumfunctype
{ COUNT_FUNC, COUNT_DISTINCT_FUNC, SUM_FUNC, SUM_DISTINCT_FUNC, AVG_FUNC,
- AVG_DISTINCT_FUNC, MIN_FUNC, MAX_FUNC, UNIQUE_USERS_FUNC, STD_FUNC,
+ AVG_DISTINCT_FUNC, MIN_FUNC, MAX_FUNC, STD_FUNC,
VARIANCE_FUNC, SUM_BIT_FUNC, UDF_SUM_FUNC, GROUP_CONCAT_FUNC
};
--- 1.604/sql/mysqld.cc 2006-12-29 14:36:28 -07:00
+++ 1.605/sql/mysqld.cc 2007-01-18 07:53:36 -07:00
@@ -49,6 +49,10 @@
#define OPT_NDBCLUSTER_DEFAULT 0
#endif
+#ifndef DEFAULT_SKIP_THREAD_PRIORITY
+#define DEFAULT_SKIP_THREAD_PRIORITY 0
+#endif
+
#include <thr_alarm.h>
#include <ft_global.h>
#include <errmsg.h>
@@ -3638,7 +3642,7 @@
error_handler_hook= my_message_sql;
start_signal_handler(); // Creates pidfile
- if (acl_init(opt_noacl) ||
+ if (mysql_rm_tmp_tables() || acl_init(opt_noacl) ||
my_tz_init((THD *)0, default_tz_name, opt_bootstrap))
{
abort_loop=1;
@@ -4967,8 +4971,10 @@
/* app_type */ 0
},
#endif
+#ifndef DISABLE_GRANT_OPTIONS
{"bootstrap", OPT_BOOTSTRAP, "Used by mysql installation scripts.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+#endif
{"character-set-client-handshake", OPT_CHARACTER_SET_CLIENT_HANDSHAKE,
"Don't ignore client side character set value sent during handshake.",
(gptr*) &opt_character_set_client_handshake,
@@ -5091,9 +5097,11 @@
{"init-connect", OPT_INIT_CONNECT, "Command(s) that are executed for each new
connection",
(gptr*) &opt_init_connect, (gptr*) &opt_init_connect, 0, GET_STR_ALLOC,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+#ifndef DISABLE_GRANT_OPTIONS
{"init-file", OPT_INIT_FILE, "Read SQL commands from this file at startup.",
(gptr*) &opt_init_file, (gptr*) &opt_init_file, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
+#endif
{"init-rpl-role", OPT_INIT_RPL_ROLE, "Set the replication role.", 0, 0, 0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"init-slave", OPT_INIT_SLAVE, "Command(s) that are executed when a slave connects to
this master",
@@ -5598,10 +5606,12 @@
"Show user and password in SHOW SLAVE HOSTS on this master",
(gptr*) &opt_show_slave_auth_info, (gptr*) &opt_show_slave_auth_info, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+#ifndef DISABLE_GRANT_OPTIONS
{"skip-grant-tables", OPT_SKIP_GRANT,
"Start without grant tables. This gives all users FULL ACCESS to all tables!",
(gptr*) &opt_noacl, (gptr*) &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0},
+#endif
{"skip-host-cache", OPT_SKIP_HOST_CACHE, "Don't cache host names.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-locking", OPT_SKIP_LOCK,
@@ -5634,8 +5644,8 @@
{"skip-symlink", OPT_SKIP_SYMLINKS, "Don't allow symlinking of tables. Deprecated
option. Use --skip-symbolic-links instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-thread-priority", OPT_SKIP_PRIOR,
- "Don't give threads different priorities.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
- 0, 0, 0, 0, 0},
+ "Don't give threads different priorities.", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ DEFAULT_SKIP_THREAD_PRIORITY, 0, 0, 0, 0, 0},
#ifdef HAVE_REPLICATION
{"slave-load-tmpdir", OPT_SLAVE_LOAD_TMPDIR,
"The location where the slave should put its temporary files when \
@@ -5709,6 +5719,11 @@
0, 0, 0, 0, 0},
{"use-symbolic-links", 's', "Enable symbolic link support. Deprecated option; use
--symbolic-links instead.",
(gptr*) &my_use_symdir, (gptr*) &my_use_symdir, 0, GET_BOOL, NO_ARG,
+ /*
+ The system call realpath() produces warnings under valgrind and
+ purify. These are not suppressed: instead we disable symlinks
+ option if compiled with valgrind support.
+ */
IF_PURIFY(0,1), 0, 0, 0, 0, 0},
{"user", 'u', "Run mysqld daemon as user.", 0, 0, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
--- 1.621/sql/sql_parse.cc 2007-01-17 06:03:00 -07:00
+++ 1.622/sql/sql_parse.cc 2007-01-18 07:53:37 -07:00
@@ -2954,6 +2954,12 @@
goto end_with_restore_list;
#ifndef HAVE_READLINK
+ if (lex->create_info.data_file_name)
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
+ "DATA DIRECTORY option ignored");
+ if (lex->create_info.index_file_name)
+ push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
+ "INDEX DIRECTORY option ignored");
lex->create_info.data_file_name=lex->create_info.index_file_name=0;
#else
/* Fix names if symlinked tables */
--- 1.93/sql/unireg.cc 2007-01-09 12:23:10 -07:00
+++ 1.94/sql/unireg.cc 2007-01-18 08:28:30 -07:00
@@ -829,7 +829,7 @@
tmp.append(*pos);
tmp.append(sep);
}
- tmp.append('\0'); // End of intervall
+ tmp.append('\0'); // End of intervall
}
}
if (my_write(file,(byte*) tmp.ptr(),tmp.length(),MYF_RW))
--- 1.21/sql/event_queue.cc 2007-01-02 14:18:05 -07:00
+++ 1.22/sql/event_queue.cc 2007-01-18 07:53:36 -07:00
@@ -691,16 +691,11 @@
SYNOPSIS
Event_queue::get_top_for_execution_if_time()
thd [in] Thread
- now [in] Current timestamp
job_data [out] The object to execute
- abstime [out] Time to sleep
RETURN VALUE
FALSE No error. If *job_data==NULL then top not elligible for execution.
- Could be that there is no top. If abstime->tv_sec is set to value
- greater than zero then use abstime with pthread_cond_timedwait().
- If abstime->tv_sec is zero then sleep with pthread_cond_wait().
- abstime->tv_nsec is always zero.
+ Could be that there is no top.
TRUE Error
*/
@@ -710,56 +705,51 @@
{
bool ret= FALSE;
struct timespec top_time;
- struct timespec *abstime;
Event_queue_element *top= NULL;
bool to_free= FALSE;
bool to_drop= FALSE;
*job_data= NULL;
DBUG_ENTER("Event_queue::get_top_for_execution_if_time");
- top_time.tv_nsec= 0;
LOCK_QUEUE_DATA();
for (;;)
{
int res;
- thd->end_time();
- time_t now= thd->query_start();
- abstime= NULL;
-
- if (queue.elements)
- {
- top= ((Event_queue_element*) queue_element(&queue, 0));
- top_time.tv_sec= sec_since_epoch_TIME(&top->execute_at);
-
- abstime= &top_time;
- }
-
- if (!abstime || abstime->tv_sec > now)
- {
- const char *msg;
- if (abstime)
- {
- next_activation_at= top->execute_at;
- msg= queue_wait_msg;
- }
- else
- {
- set_zero_time(&next_activation_at, MYSQL_TIMESTAMP_DATETIME);
- msg= queue_wait_msg;
- }
-
- cond_wait(thd, abstime, msg, SCHED_FUNC, __LINE__);
- if (thd->killed)
- {
- DBUG_PRINT("info", ("thd->killed=%d", thd->killed));
- goto end;
- }
+ /* Break loop if thd has been killed */
+ if (thd->killed)
+ {
+ DBUG_PRINT("info", ("thd->killed=%d", thd->killed));
+ goto end;
+ }
+
+ if (!queue.elements)
+ {
+ /* There are no events in the queue */
+ set_zero_time(&next_activation_at, MYSQL_TIMESTAMP_DATETIME);
+
+ /* Wait on condition until signaled. Release LOCK_queue while waiting. */
+ cond_wait(thd, NULL, queue_empty_msg, SCHED_FUNC, __LINE__);
+
+ continue;
+ }
+
+ top= ((Event_queue_element*) queue_element(&queue, 0));
+
+ thd->end_time(); /* Get current time */
+
+ time_t seconds_to_next_event=
+ sec_since_epoch_TIME(&top->execute_at) - thd->query_start();
+ next_activation_at= top->execute_at;
+ if (seconds_to_next_event > 0)
+ {
/*
- The queue could have been emptied. Therefore it's safe to start from
- the beginning. Moreover, this way we will get also the new top, if
- the element at the top has been changed.
+ Not yet time for top event, wait on condition with
+ time or until signaled. Release LOCK_queue while waiting.
*/
+ set_timespec(top_time, seconds_to_next_event);
+ cond_wait(thd, &top_time, queue_wait_msg, SCHED_FUNC, __LINE__);
+
continue;
}
@@ -801,7 +791,7 @@
else
queue_replaced(&queue);
- dbug_dump_queue(now);
+ dbug_dump_queue(thd->query_start());
break;
}
end:
@@ -814,8 +804,7 @@
if (to_free)
delete top;
- DBUG_PRINT("info", ("returning %d et_new: 0x%lx abstime.tv_sec: %ld ",
- ret, (long) *job_data, abstime ? abstime->tv_sec : 0));
+ DBUG_PRINT("info", ("returning %d et_new: 0x%lx ", ret, (long) *job_data));
if (*job_data)
DBUG_PRINT("info", ("db: %s name: %s definer=%s", (*job_data)->dbname.str,
--- 1.139/sql/share/errmsg.txt 2006-12-31 01:41:37 -07:00
+++ 1.140/sql/share/errmsg.txt 2007-01-18 07:53:37 -07:00
@@ -950,7 +950,7 @@
eng "Too many connections"
jps "ڑ±ª½·¬܂·",
est "Liiga palju samaaegseid hendusi"
- fre "Trop de connections"
+ fre "Trop de connexions"
ger "Zu viele Verbindungen"
greek " ..."
hun "Tul sok kapcsolat"
@@ -1827,7 +1827,7 @@
eng "%s: ready for connections.\nVersion: '%s' socket: '%s' port: %d"
jps "%s: ¹",
est "%s: ootab hendusi"
- fre "%s: Prt pour des connections"
+ fre "%s: Prt pour des connexions"
ger "%-.64s: Bereit fr Verbindungen.\nVersion: '%2' Socket: '%s' Port: %d"
greek "%s: "
hun "%s: kapcsolatra kesz"
@@ -1950,7 +1950,7 @@
eng "Can't create IP socket"
jps "IP socket ª܂¹",
est "Ei suuda luua IP socketit"
- fre "Ne peut crer la connection IP (socket)"
+ fre "Ne peut crer la connexion IP (socket)"
ger "Kann IP-Socket nicht erzeugen"
greek " IP socket"
hun "Az IP socket nem hozhato letre"
@@ -3031,7 +3031,7 @@
eng "Host '%-.64s' is blocked because of many connection errors; unblock with
'mysqladmin flush-hosts'"
jps "Host '%-.64s' many connection error
̂½߁Aۂ³܂µ½. 'mysqladmin flush-hosts'
ʼnµĂ¾³¢",
est "Masin '%-.64s' on blokeeritud hulgaliste hendusvigade tttu. Blokeeringu
saab thistada 'mysqladmin flush-hosts' ksuga"
- fre "L'hte '%-.64s' est bloqu cause d'un trop grand nombre d'erreur de
connection. Dbloquer le par 'mysqladmin flush-hosts'"
+ fre "L'hte '%-.64s' est bloqu cause d'un trop grand nombre d'erreur de
connexion. Dbloquer le par 'mysqladmin flush-hosts'"
ger "Host '%-.64s' blockiert wegen zu vieler Verbindungsfehler. Aufheben der
Blockierung mit 'mysqladmin flush-hosts'"
greek " þ þ .
þ 'mysqladmin flush-hosts'"
hun "A '%-.64s' host blokkolodott, tul sok kapcsolodasi hiba miatt. Hasznalja a
'mysqladmin flush-hosts' parancsot"
@@ -3533,7 +3533,7 @@
nla "Kreeg leesfout van de verbindings pipe"
eng "Got a read error from the connection pipe"
est "Viga hendustoru lugemisel"
- fre "Erreur de lecture reue du pipe de connection"
+ fre "Erreur de lecture reue du pipe de connexion"
ger "Lese-Fehler bei einer Verbindungs-Pipe"
hun "Olvasasi hiba a kapcsolat soran"
ita "Rilevato un errore di lettura dalla pipe di connessione"
@@ -4331,7 +4331,7 @@
nla "Gebruiker %-.64s heeft reeds meer dan 'max_user_connections' actieve
verbindingen"
eng "User %-.64s already has more than 'max_user_connections' active connections"
est "Kasutajal %-.64s on juba rohkem hendusi kui lubatud 'max_user_connections'
muutujaga"
- fre "L'utilisateur %-.64s possde dj plus de 'max_user_connections' connections
actives"
+ fre "L'utilisateur %-.64s possde dj plus de 'max_user_connections' connexions
actives"
ger "Benutzer '%-.64s' hat mehr als 'max_user_connections' aktive Verbindungen"
ita "L'utente %-.64s ha gia' piu' di 'max_user_connections' connessioni attive"
por "Usurio '%-.64s' j possui mais que o valor mximo de conexes
(max_user_connections) ativas"
@@ -6009,15 +6009,22 @@
ger "Sie knnen eine Logtabelle nicht '%s', wenn Loggen angeschaltet ist"
ER_NON_INSERTABLE_TABLE
eng "The target table %-.100s of the %s is not insertable-into"
+ ger "Die Zieltabelle %-.100s von %s ist nicht einfgbar"
ER_CANT_RENAME_LOG_TABLE
eng "Cannot rename '%s'. When logging enabled, rename to/from log table must
rename two tables: the log table to an archive table and another table back to '%s'"
+ ger "Kann '%s' nicht umbenennen. Wenn Loggen angeschaltet ist, mssen beim
Umbenennen zu/von einer Logtabelle zwei Tabellen angegeben werden: die Logtabelle zu
einer Archivtabelle und eine weitere Tabelle zurck zu '%s'"
ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 42000
eng "Incorrect parameter count in the call to native function '%-.64s'"
+ ger "Falsche Anzahl von Parametern beim Aufruf der nativen Funktion '%-.64s'"
ER_WRONG_PARAMETERS_TO_NATIVE_FCT 42000
eng "Incorrect parameters in the call to native function '%-.64s'"
+ ger "Falscher Parameter beim Aufruf der nativen Funktion '%-.64s'"
ER_WRONG_PARAMETERS_TO_STORED_FCT 42000
eng "Incorrect parameters in the call to stored function '%-.64s'"
+ ger "Falsche Parameter beim Aufruf der gespeicherten Funktion '%-.64s'"
ER_NATIVE_FCT_NAME_COLLISION
- eng "This function '%-.64s' has the same name as a native function."
+ eng "This function '%-.64s' has the same name as a native function"
+ ger "Die Funktion '%-.64s' hat denselben Namen wie eine native Funktion"
ER_BINLOG_PURGE_EMFILE
eng "Too many files opened, please execute the command again"
+ ger "Zu viele offene Dateien, bitte fhren Sie den Befehl noch einmal aus"
--- 1.196/mysql-test/r/view.result 2007-01-07 10:21:39 -07:00
+++ 1.197/mysql-test/r/view.result 2007-01-18 07:53:36 -07:00
@@ -3014,6 +3014,15 @@
6 3
DROP VIEW v1, v2;
DROP TABLE t1;
+DROP VIEW IF EXISTS v1;
+CREATE VIEW v1 AS SELECT 'The\ZEnd';
+SELECT * FROM v1;
+TheEnd
+TheEnd
+SHOW CREATE VIEW v1;
+View Create View
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1`
AS select _latin1'The\ZEnd' AS `TheEnd`
+DROP VIEW v1;
End of 5.0 tests.
DROP DATABASE IF EXISTS `d-1`;
CREATE DATABASE `d-1`;
--- 1.176/mysql-test/t/view.test 2007-01-06 16:32:53 -07:00
+++ 1.177/mysql-test/t/view.test 2007-01-18 07:53:36 -07:00
@@ -2906,6 +2906,7 @@
DROP VIEW v1;
DROP TABLE t1;
+#
# Bug #16813 (WITH CHECK OPTION doesn't work with UPDATE)
#
CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT
NULL);
@@ -2919,7 +2920,6 @@
DROP VIEW v1;
DROP TABLE t1;
-
#
# BUG#22584: last_insert_id not updated after inserting a record
# through a updatable view
@@ -2957,6 +2957,20 @@
DROP VIEW v1, v2;
DROP TABLE t1;
+#
+# BUG#24293: '\Z' token is not handled correctly in views
+#
+
+--disable_warnings
+DROP VIEW IF EXISTS v1;
+--enable_warnings
+
+CREATE VIEW v1 AS SELECT 'The\ZEnd';
+SELECT * FROM v1;
+
+SHOW CREATE VIEW v1;
+
+DROP VIEW v1;
--echo End of 5.0 tests.
--- 1.62/mysql-test/t/trigger.test 2007-01-11 12:10:16 -07:00
+++ 1.63/mysql-test/t/trigger.test 2007-01-18 08:30:31 -07:00
@@ -1,3 +1,7 @@
+# This test uses chmod, can't be run with root permissions
+-- source include/not_as_root.inc
+
+
#
# Basic triggers test
#
@@ -1138,8 +1142,10 @@
event_object_table, action_statement from information_schema.triggers
where event_object_schema = 'test';
# Trick which makes update of second .TRN file impossible
-system echo dummy >$MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
-system chmod 000 $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
+write_file $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
+dummy
+EOF
+chmod 0000 $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
--replace_result $MYSQLTEST_VARDIR . master-data// ''
--error 1
rename table t1 to t2;
@@ -1149,8 +1155,8 @@
select trigger_schema, trigger_name, event_object_schema,
event_object_table, action_statement from information_schema.triggers
where event_object_schema = 'test';
-system chmod 600 $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
-system rm $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
+chmod 0600 $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
+remove_file $MYSQLTEST_VARDIR/master-data/test/t1_ai.TRN~;
# Let us check that updates to .TRN files were rolled back too
drop trigger t1_bi;
drop trigger t1_ai;
--- 1.259/mysql-test/mysql-test-run.pl 2007-01-11 15:05:07 -07:00
+++ 1.260/mysql-test/mysql-test-run.pl 2007-01-18 07:53:35 -07:00
@@ -160,6 +160,7 @@
our $exe_my_print_defaults;
our $exe_perror;
our $lib_udf_example;
+our $lib_example_plugin;
our $exe_libtool;
our $opt_bench= 0;
@@ -231,10 +232,12 @@
our $opt_record;
my $opt_report_features;
our $opt_check_testcases;
+our $opt_mark_progress;
our $opt_skip;
our $opt_skip_rpl;
our $max_slave_num= 0;
+our $max_master_num= 1;
our $use_innodb;
our $opt_skip_test;
our $opt_skip_im;
@@ -413,6 +416,15 @@
$max_slave_num= $test->{slave_num};
mtr_error("Too many slaves") if $max_slave_num > 3;
}
+
+ # Count max number of masters used by a test case
+ if ( $test->{master_num} > $max_master_num)
+ {
+ $max_master_num= $test->{master_num};
+ mtr_error("Too many masters") if $max_master_num > 2;
+ mtr_error("Too few masters") if $max_master_num < 1;
+ }
+
$use_innodb||= $test->{'innodb_test'};
}
@@ -536,6 +548,7 @@
# Test case authoring
'record' => \$opt_record,
'check-testcases' => \$opt_check_testcases,
+ 'mark-progress' => \$opt_mark_progress,
# Extra options used when starting mysqld
'mysqld=s' => \@opt_extra_mysqld_opt,
@@ -1211,6 +1224,19 @@
$path_ndb_testrun_log= "$opt_vardir/log/ndb_testrun.log";
$path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
+
+ if ( $opt_valgrind and $opt_debug )
+ {
+ # When both --valgrind and --debug is selected, send
+ # all output to the trace file, making it possible to
+ # see the exact location where valgrind complains
+ foreach my $mysqld (@{$master}, @{$slave})
+ {
+ my $sidx= $mysqld->{idx} ? "$mysqld->{idx}" : "";
+ $mysqld->{path_myerr}=
+ "$opt_vardir/log/" . $mysqld->{type} . "$sidx.trace";
+ }
+ }
}
#
@@ -1259,9 +1285,10 @@
sub datadir_list_setup () {
# Make a list of all data_dirs
- @data_dir_lst = (
- $master->[0]->{'path_myddir'},
- $master->[1]->{'path_myddir'});
+ for (my $idx= 0; $idx < $max_master_num; $idx++)
+ {
+ push(@data_dir_lst, $master->[$idx]->{'path_myddir'});
+ }
for (my $idx= 0; $idx < $max_slave_num; $idx++)
{
@@ -1499,6 +1526,11 @@
mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
"$glob_basedir/sql/.libs/udf_example.so",);
+ # Look for the ha_example library
+ $lib_example_plugin=
+ mtr_file_exists(vs_config_dirs('storage/example', 'ha_example.dll'),
+ "$glob_basedir/storage/example/.libs/ha_example.so",);
+
# Look for mysqltest executable
if ( $glob_use_embedded_server )
{
@@ -1655,6 +1687,14 @@
}
# --------------------------------------------------------------------------
+ # Add the path where mysqld will find ha_example.so
+ # --------------------------------------------------------------------------
+ if ( $lib_example_plugin )
+ {
+ push(@ld_library_paths, dirname($lib_example_plugin));
+ }
+
+ # --------------------------------------------------------------------------
# Valgrind need to be run with debug libraries otherwise it's almost
# impossible to add correct supressions, that means if "/usr/lib/debug"
# is available, it should be added to
@@ -1928,10 +1968,11 @@
$ENV{'UDF_EXAMPLE_LIB'}=
($lib_udf_example ? basename($lib_udf_example) : "");
- $ENV{'LD_LIBRARY_PATH'}=
- ($lib_udf_example ? dirname($lib_udf_example) : "") .
- ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
-
+ # ----------------------------------------------------
+ # Add the path where mysqld will find ha_example.so
+ # ----------------------------------------------------
+ $ENV{'EXAMPLE_PLUGIN'}=
+ ($lib_example_plugin ? basename($lib_example_plugin) : "");
# ----------------------------------------------------
# We are nice and report a bit about our settings
@@ -2730,8 +2771,10 @@
install_db('master', $master->[0]->{'path_myddir'});
- # FIXME check if testcase really is using second master
- copy_install_db('master', $master->[1]->{'path_myddir'});
+ if ($max_master_num)
+ {
+ copy_install_db('master', $master->[1]->{'path_myddir'});
+ }
# Install the number of slave databses needed
for (my $idx= 0; $idx < $max_slave_num; $idx++)
@@ -3540,11 +3583,10 @@
if ( $glob_use_embedded_server )
{
$prefix= "--server-arg=";
- } else {
- # We can't pass embedded server --no-defaults
- mtr_add_arg($args, "--no-defaults");
}
+ mtr_add_arg($args, "%s--no-defaults", $prefix);
+
mtr_add_arg($args, "%s--console", $prefix);
mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir);
mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir);
@@ -3623,6 +3665,9 @@
# Turn on logging, will be sent to tables
mtr_add_arg($args, "%s--log=", $prefix);
}
+
+ mtr_add_arg($args, "%s--plugin_dir=%s", $prefix,
+ dirname($lib_example_plugin));
}
if ( $type eq 'slave' )
@@ -4273,7 +4318,8 @@
}
- if ( $clusters->[0]->{'pid'} and ! $master->[1]->{'pid'} )
+ if ( $clusters->[0]->{'pid'} and ! $master->[1]->{'pid'} and
+ $tinfo->{'master_num'} > 1 )
{
# Test needs cluster, start an extra mysqld connected to cluster
@@ -4485,6 +4531,10 @@
mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
mtr_add_arg($args, "--logdir=%s/log", $opt_vardir);
+ # Log line number and time for each line in .test file
+ mtr_add_arg($args, "--mark-progress")
+ if $opt_mark_progress;
+
if ($tinfo->{'component_id'} eq 'im')
{
mtr_add_arg($args, "--socket=%s", $instance_manager->{'path_sock'});
@@ -4940,6 +4990,7 @@
record TESTNAME (Re)genereate the result file for TESTNAME
check-testcases Check testcases for sideeffects
+ mark-progress Log line number and elapsed time to <testname>.progress
Options that pass on options
--- 1.46/server-tools/instance-manager/Makefile.am 2007-01-02 11:24:25 -07:00
+++ 1.47/server-tools/instance-manager/Makefile.am 2007-01-18 07:53:36 -07:00
@@ -32,7 +32,7 @@
-DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock" \
-DDEFAULT_PASSWORD_FILE_NAME="/etc/mysqlmanager.passwd" \
-DDEFAULT_MYSQLD_PATH="$(libexecdir)/mysqld$(EXEEXT)" \
- -DDEFAULT_CONFIG_FILE="/etc/my.cnf" \
+ -DDEFAULT_CONFIG_FILE="my.cnf" \
-DPROTOCOL_VERSION=@PROTOCOL_VERSION@
liboptions_la_SOURCES= options.h options.cc priv.h priv.cc
--- 1.155/include/my_global.h 2007-01-11 06:09:57 -07:00
+++ 1.156/include/my_global.h 2007-01-18 07:53:35 -07:00
@@ -93,6 +93,42 @@
#endif
/*
+ The macros below are used to allow build of Universal/fat binaries of
+ MySQL and MySQL applications under darwin.
+*/
+#ifdef TARGET_FAT_BINARY
+# undef SIZEOF_CHARP
+# undef SIZEOF_INT
+# undef SIZEOF_LONG
+# undef SIZEOF_LONG_LONG
+# undef SIZEOF_OFF_T
+# undef SIZEOF_SHORT
+
+#if defined(__i386__)
+# undef WORDS_BIGENDIAN
+# define SIZEOF_CHARP 4
+# define SIZEOF_INT 4
+# define SIZEOF_LONG 4
+# define SIZEOF_LONG_LONG 8
+# define SIZEOF_OFF_T 8
+# define SIZEOF_SHORT 2
+
+#elif defined(__ppc__)
+# define WORDS_BIGENDIAN
+# define SIZEOF_CHARP 4
+# define SIZEOF_INT 4
+# define SIZEOF_LONG 4
+# define SIZEOF_LONG_LONG 8
+# define SIZEOF_OFF_T 8
+# define SIZEOF_SHORT 2
+
+#else
+# error Building FAT binary for an unknown architecture.
+#endif
+#endif /* TARGET_FAT_BINARY */
+
+
+/*
The macros below are borrowed from include/linux/compiler.h in the
Linux kernel. Use them to indicate the likelyhood of the truthfulness
of a condition. This serves two purposes - newer versions of gcc will be
--- 1.16/mysql-test/r/udf.result 2007-01-08 03:30:58 -07:00
+++ 1.17/mysql-test/r/udf.result 2007-01-18 07:53:35 -07:00
@@ -209,7 +209,7 @@
ERROR 42000: Incorrect parameters in the call to native function 'abs'
drop function if exists pi;
CREATE FUNCTION pi RETURNS STRING SONAME "should_not_parse.so";
-ERROR HY000: This function 'pi' has the same name as a native function.
+ERROR HY000: This function 'pi' has the same name as a native function
DROP FUNCTION IF EXISTS metaphon;
CREATE FUNCTION metaphon(a int) RETURNS int
return 0;
--- 1.19/BUILD/check-cpu 2006-12-31 21:37:52 -07:00
+++ 1.20/BUILD/check-cpu 2007-01-18 07:53:35 -07:00
@@ -28,7 +28,7 @@
fi
# parse CPU flags
- for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //'`; do
+ for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //' -e 's/[^a-zA-Z0-9_
]/_/g'`; do
eval cpu_flag_$flag=yes
done
else
--- 1.3/mysql-test/t/mysqladmin.test 2006-12-08 08:50:50 -07:00
+++ 1.4/mysql-test/t/mysqladmin.test 2007-01-18 07:53:36 -07:00
@@ -1,3 +1,5 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
#
# Test "mysqladmin ping"
#
--- 1.95/storage/federated/ha_federated.cc 2007-01-07 07:28:02 -07:00
+++ 1.96/storage/federated/ha_federated.cc 2007-01-18 07:53:38 -07:00
@@ -405,7 +405,7 @@
federated_hton->commit= federated_commit;
federated_hton->rollback= federated_rollback;
federated_hton->create= federated_create_handler;
- federated_hton->flags= HTON_ALTER_NOT_SUPPORTED;
+ federated_hton->flags= HTON_ALTER_NOT_SUPPORTED | HTON_NO_PARTITION;
if (pthread_mutex_init(&federated_mutex, MY_MUTEX_INIT_FAST))
goto error;
--- 1.211/mysql-test/t/sp.test 2007-01-16 05:06:21 -07:00
+++ 1.212/mysql-test/t/sp.test 2007-01-18 07:53:36 -07:00
@@ -6779,6 +6779,30 @@
DROP FUNCTION bug23760_rc_test|
#
+# BUG#24117: server crash on a FETCH with a cursor on a table which is not in
+# the table cache
+#
+
+--disable_warnings
+DROP PROCEDURE IF EXISTS bug24117|
+DROP TABLE IF EXISTS t3|
+--enable_warnings
+CREATE TABLE t3(c1 ENUM('abc'))|
+INSERT INTO t3 VALUES('abc')|
+CREATE PROCEDURE bug24117()
+BEGIN
+ DECLARE t3c1 ENUM('abc');
+ DECLARE mycursor CURSOR FOR SELECT c1 FROM t3;
+ OPEN mycursor;
+ FLUSH TABLES;
+ FETCH mycursor INTO t3c1;
+ CLOSE mycursor;
+END|
+CALL bug24117()|
+DROP PROCEDURE bug24117|
+DROP TABLE t3|
+
+#
# NOTE: The delimiter is `|`, and not `;`. It is changed to `;`
# at the end of the file!
#
--- 1.39/server-tools/instance-manager/guardian.cc 2007-01-12 12:06:36 -07:00
+++ 1.40/server-tools/instance-manager/guardian.cc 2007-01-18 08:30:31 -07:00
@@ -308,8 +308,7 @@
break;
}
- timeout.tv_sec= time(NULL) + Options::Main::monitoring_interval;
- timeout.tv_nsec= 0;
+ set_timespec(timeout, Options::Main::monitoring_interval);
thread_registry->cond_timedwait(&thread_info, &COND_guardian,
&LOCK_guardian, &timeout);
| Thread |
|---|
| • bk commit into 5.1 tree (tsmith:1.2404) | tim | 18 Jan |