Below is the list of changes that have just been committed into a local
5.1 repository of monty. When monty 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
1.2177 06/02/25 21:54:34 monty@stripped +78 -0
Merge mysql.com:/home/my/mysql-5.0
into mysql.com:/home/my/mysql-5.1
sql/sql_update.cc
1.189 06/02/25 21:54:30 monty@stripped +0 -1
Manual merge
sql/sql_class.h
1.285 06/02/25 21:54:29 monty@stripped +0 -12
Manual merge
sql/sql_cache.h
1.33 06/02/25 21:54:29 monty@stripped +0 -2
Manual merge
sql/item.cc
1.171 06/02/25 21:54:29 monty@stripped +0 -0
Manual merge
scripts/mysql_fix_privilege_tables.sql
1.41 06/02/25 21:54:29 monty@stripped +6 -6
Manual merge
mysys/my_bitmap.c
1.39 06/02/25 21:54:29 monty@stripped +0 -0
Manual merge
mysql-test/t/view.test
1.137 06/02/25 21:54:29 monty@stripped +1 -0
Manual merge
mysql-test/t/innodb.test
1.130 06/02/25 21:54:29 monty@stripped +0 -3
Manual merge
mysql-test/r/binlog_stm_ctype_cp932.result
1.10 06/02/25 21:54:29 monty@stripped +0 -0
No changes
mysql-test/r/binlog_stm_binlog.result
1.8 06/02/25 21:54:29 monty@stripped +0 -2
Manual merge
mysql-test/extra/binlog_tests/ctype_cp932.test
1.12 06/02/25 21:54:29 monty@stripped +0 -0
No changes
mysql-test/extra/binlog_tests/binlog.test
1.6 06/02/25 21:54:29 monty@stripped +1 -3
Manual merge
libmysqld/lib_sql.cc
1.111 06/02/25 21:54:29 monty@stripped +0 -366
Manual merge
tests/mysql_client_test.c
1.179 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
storage/ndb/include/ndbapi/NdbDictionary.hpp
1.70 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
sql/tztime.h
1.15 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
sql/tztime.cc
1.32 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
sql/table.h
1.132 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
sql/sql_select.h
1.105 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
sql/sql_prepare.cc
1.164 06/02/25 20:35:09 monty@stripped +0 -9
Auto merged
sql/sql_parse.cc
1.523 06/02/25 20:35:09 monty@stripped +0 -0
Auto merged
sql-common/client.c
1.85 06/02/25 20:35:09 monty@stripped +0 -5
Auto merged
sql/sql_db.cc
1.131 06/02/25 20:35:08 monty@stripped +0 -0
Auto merged
sql/sql_cursor.cc
1.6 06/02/25 20:35:08 monty@stripped +0 -1
Auto merged
sql/sql_class.cc
1.246 06/02/25 20:35:08 monty@stripped +0 -0
Auto merged
sql/sql_base.cc
1.305 06/02/25 20:35:08 monty@stripped +0 -0
Auto merged
sql/protocol.h
1.33 06/02/25 20:35:08 monty@stripped +0 -9
Auto merged
sql/protocol.cc
1.114 06/02/25 20:35:08 monty@stripped +0 -43
Auto merged
sql/opt_range.cc
1.205 06/02/25 20:35:08 monty@stripped +0 -0
Auto merged
sql/mysqld.cc
1.539 06/02/25 20:35:08 monty@stripped +0 -0
Auto merged
sql/mysql_priv.h
1.381 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
sql/log_event.h
1.129 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
sql/item.h
1.192 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
sql/handler.h
1.195 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
sql/field.cc
1.302 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
mysys/mf_dirname.c
1.13 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
mysql-test/t/wait_timeout.test
1.4 06/02/25 20:35:07 monty@stripped +0 -3
Auto merged
mysql-test/t/view_grant.test
1.12 06/02/25 20:35:07 monty@stripped +0 -9
Auto merged
mysql-test/t/temp_table.test
1.15 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
mysql-test/t/sp.test
1.180 06/02/25 20:35:07 monty@stripped +0 -4
Auto merged
mysql-test/t/sp-threads.test
1.9 06/02/25 20:35:07 monty@stripped +0 -2
Auto merged
mysql-test/t/sp-error.test
1.105 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
mysql-test/t/sp-destruct.test
1.8 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
mysql-test/t/skip_grants.test
1.8 06/02/25 20:35:07 monty@stripped +0 -3
Auto merged
mysql-test/t/read_only.test
1.4 06/02/25 20:35:07 monty@stripped +0 -3
Auto merged
mysql-test/t/query_cache_notembedded.test
1.4 06/02/25 20:35:07 monty@stripped +0 -84
Auto merged
mysql-test/t/query_cache.test
1.58 06/02/25 20:35:07 monty@stripped +0 -0
Auto merged
mysql-test/t/mysqltest.test
1.43 06/02/25 20:35:07 monty@stripped +0 -2
Auto merged
mysql-test/t/mysql_client_test.test
1.18 06/02/25 20:35:07 monty@stripped +0 -3
Auto merged
mysql-test/t/mysql.test
1.7 06/02/25 20:35:07 monty@stripped +0 -2
Auto merged
mysql-test/t/handler.test
1.28 06/02/25 20:35:06 monty@stripped +0 -3
Auto merged
mysql-test/t/delayed.test
1.13 06/02/25 20:35:06 monty@stripped +0 -3
Auto merged
mysql-test/t/compress.test
1.5 06/02/25 20:35:06 monty@stripped +0 -3
Auto merged
mysql-test/t/backup.test
1.20 06/02/25 20:35:06 monty@stripped +0 -3
Auto merged
mysql-test/r/view_grant.result
1.14 06/02/25 20:35:06 monty@stripped +0 -9
Auto merged
mysql-test/r/view.result
1.149 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
mysql-test/r/subselect.result
1.136 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
mysql-test/r/sp.result
1.192 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
mysql-test/r/sp-error.result
1.106 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
mysql-test/r/query_cache_notembedded.result
1.4 06/02/25 20:35:06 monty@stripped +0 -220
Auto merged
mysql-test/r/query_cache.result
1.73 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
mysql-test/r/mysqltest.result
1.35 06/02/25 20:35:06 monty@stripped +0 -2
Auto merged
mysql-test/r/innodb.result
1.163 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
mysql-test/mysql-test-run.sh
1.302 06/02/25 20:35:06 monty@stripped +0 -1
Auto merged
mysql-test/extra/binlog_tests/blackhole.test
1.8 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
libmysqld/libmysqld.c
1.68 06/02/25 20:35:06 monty@stripped +0 -12
Auto merged
libmysqld/embedded_priv.h
1.14 06/02/25 20:35:06 monty@stripped +0 -14
Auto merged
libmysqld/emb_qcache.cc
1.9 06/02/25 20:35:06 monty@stripped +0 -69
Auto merged
libmysql/libmysql.c
1.240 06/02/25 20:35:06 monty@stripped +0 -6
Auto merged
include/mysql.h
1.156 06/02/25 20:35:06 monty@stripped +0 -6
Auto merged
configure.in
1.344 06/02/25 20:35:06 monty@stripped +0 -0
Auto merged
BitKeeper/deleted/.del-subselect_notembedded.result
1.2 06/02/25 20:35:05 monty@stripped +0 -0
Delete: mysql-test/r/subselect_notembedded.result
BitKeeper/deleted/.del-sp_notembedded.result
1.3 06/02/25 20:34:51 monty@stripped +0 -0
Delete: mysql-test/r/sp_notembedded.result
BitKeeper/deleted/.del-innodb_notembedded.result
1.2 06/02/25 20:34:44 monty@stripped +0 -0
Delete: mysql-test/r/innodb_notembedded.result
BitKeeper/deleted/.del-ctype_cp932_notembedded.result
1.2 06/02/25 20:34:37 monty@stripped +0 -0
Delete: mysql-test/r/ctype_cp932_notembedded.result
BitKeeper/deleted/.del-subselect_notembedded.test
1.2 06/02/25 20:32:05 monty@stripped +0 -0
Delete: mysql-test/t/subselect_notembedded.test
BitKeeper/deleted/.del-sp_notembedded.test
1.3 06/02/25 20:31:58 monty@stripped +0 -0
Delete: mysql-test/t/sp_notembedded.test
BitKeeper/deleted/.del-innodb_notembedded.test
1.2 06/02/25 20:31:38 monty@stripped +0 -0
Delete: mysql-test/t/innodb_notembedded.test
storage/ndb/include/ndbapi/NdbDictionary.hpp
1.48.5.2 06/02/25 17:48:13 monty@stripped +0 -0
Merge rename: ndb/include/ndbapi/NdbDictionary.hpp -> storage/ndb/include/ndbapi/NdbDictionary.hpp
mysql-test/r/binlog_stm_ctype_cp932.result
1.6.2.2 06/02/25 17:48:13 monty@stripped +0 -0
Merge rename: mysql-test/r/ctype_cp932.result -> mysql-test/r/binlog_stm_ctype_cp932.result
mysql-test/r/binlog_stm_binlog.result
1.4.1.2 06/02/25 17:48:13 monty@stripped +0 -0
Merge rename: mysql-test/r/binlog.result -> mysql-test/r/binlog_stm_binlog.result
mysql-test/extra/binlog_tests/ctype_cp932.test
1.8.2.2 06/02/25 17:48:13 monty@stripped +0 -0
Merge rename: mysql-test/t/ctype_cp932.test -> mysql-test/extra/binlog_tests/ctype_cp932.test
mysql-test/extra/binlog_tests/blackhole.test
1.4.2.2 06/02/25 17:48:13 monty@stripped +0 -0
Merge rename: mysql-test/t/blackhole.test -> mysql-test/extra/binlog_tests/blackhole.test
mysql-test/extra/binlog_tests/binlog.test
1.4.1.3 06/02/25 17:48:13 monty@stripped +0 -0
Merge rename: mysql-test/t/binlog.test -> mysql-test/extra/binlog_tests/binlog.test
# 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: monty
# Host: narttu.mysql.fi
# Root: /home/my/mysql-5.1/RESYNC
--- 1.343/configure.in 2006-02-22 13:15:37 +02:00
+++ 1.344/configure.in 2006-02-25 20:35:06 +02:00
@@ -334,6 +334,9 @@
# mysqld requires -fno-implicit-templates.
# Disable exceptions as they seams to create problems with gcc and threads.
# mysqld doesn't use run-time-type-checking, so we disable it.
+ # We should use -Wno-invalid-offsetof flag to disable some warnings from gcc
+ # regarding offset() usage in C++ which are done in a safe manner in the
+ # server
CXXFLAGS="$CXXFLAGS -fno-implicit-templates -fno-exceptions -fno-rtti"
AC_DEFINE([HAVE_EXPLICIT_TEMPLATE_INSTANTIATION],
[1], [Defined by configure. Use explicit template instantiation.])
--- 1.12/mysys/mf_dirname.c 2005-11-23 22:44:54 +02:00
+++ 1.13/mysys/mf_dirname.c 2006-02-25 20:35:07 +02:00
@@ -109,7 +109,7 @@
#if FN_LIBCHAR != '/' || defined(FN_C_BEFORE_DIR_2)
{
- for (; *from && from != from_end; from++)
+ for (; from != from_end && *from ; from++)
{
if (*from == '/')
*to++= FN_LIBCHAR;
--- 1.301/sql/field.cc 2006-02-07 23:02:49 +02:00
+++ 1.302/sql/field.cc 2006-02-25 20:35:07 +02:00
@@ -5266,7 +5266,7 @@
}
if (nr >= 19000000000000.0 && nr <= 99991231235959.0)
- nr=floor(nr/1000000.0); // Timestamp to date
+ nr= (longlong) floor(nr/1000000.0); // Timestamp to date
if (error)
set_datetime_warning(MYSQL_ERROR::WARN_LEVEL_WARN,
--- 1.194/sql/handler.h 2006-02-21 18:29:29 +02:00
+++ 1.195/sql/handler.h 2006-02-25 20:35:07 +02:00
@@ -272,6 +272,7 @@
long bqual_length;
char data[XIDDATASIZE]; // not \0-terminated !
+ xid_t() {} /* Remove gcc warning */
bool eq(struct xid_t *xid)
{ return eq(xid->gtrid_length, xid->bqual_length, xid->data); }
bool eq(long g, long b, const char *d)
@@ -646,6 +647,7 @@
typedef struct st_ha_check_opt
{
+ st_ha_check_opt() {} /* Remove gcc warning */
ulong sort_buffer_size;
uint flags; /* isam layer flags (e.g. for myisamchk) */
uint sql_flags; /* sql layer flags - for something myisamchk cannot do */
--- 1.170/sql/item.cc 2006-02-23 11:49:36 +02:00
+++ 1.171/sql/item.cc 2006-02-25 21:54:29 +02:00
@@ -375,9 +375,6 @@
void Item::cleanup()
{
DBUG_ENTER("Item::cleanup");
- DBUG_PRINT("info", ("Item: 0x%lx, name %s, original name %s",
- this, name ? name : "(null)",
- orig_name ? orig_name : "null"));
fixed=0;
marker= 0;
if (orig_name)
--- 1.191/sql/item.h 2006-02-17 20:56:36 +02:00
+++ 1.192/sql/item.h 2006-02-25 20:35:07 +02:00
@@ -164,7 +164,8 @@
virtual my_decimal *val_decimal(Hybrid_type *val, my_decimal *buf) const;
virtual String *val_str(Hybrid_type *val, String *buf, uint8 decimals) const;
static const Hybrid_type_traits *instance();
- Hybrid_type_traits() {};
+ Hybrid_type_traits() {}
+ virtual ~Hybrid_type_traits() {}
};
@@ -339,6 +340,7 @@
bool save_resolve_in_select_list;
public:
+ Name_resolution_context_state() {} /* Remove gcc warning */
TABLE_LIST *save_next_local;
public:
@@ -1055,6 +1057,7 @@
class Item_num: public Item
{
public:
+ Item_num() {} /* Remove gcc warning */
virtual Item_num *neg()= 0;
Item *safe_charset_converter(CHARSET_INFO *tocs);
};
--- 1.128/sql/log_event.h 2006-01-20 14:17:10 +02:00
+++ 1.129/sql/log_event.h 2006-02-25 20:35:07 +02:00
@@ -131,6 +131,7 @@
****************************************************************************/
struct sql_ex_info
{
+ sql_ex_info() {} /* Remove gcc warning */
char* field_term;
char* enclosed;
char* line_term;
--- 1.380/sql/mysql_priv.h 2006-02-22 12:59:56 +02:00
+++ 1.381/sql/mysql_priv.h 2006-02-25 20:35:07 +02:00
@@ -434,6 +434,7 @@
byte *first;
byte **next;
+ st_sql_list() {} /* Remove gcc warning */
inline void empty()
{
elements=0;
@@ -1040,7 +1041,7 @@
void close_temporary_tables(THD *thd);
void close_tables_for_reopen(THD *thd, TABLE_LIST **tables);
TABLE_LIST *find_table_in_list(TABLE_LIST *table,
- uint offset_to_list,
+ st_table_list *TABLE_LIST::*link,
const char *db_name,
const char *table_name);
TABLE_LIST *unique_table(THD *thd, TABLE_LIST *table, TABLE_LIST *table_list);
@@ -1130,7 +1131,7 @@
const char *db_name,
const char *table_name)
{
- return find_table_in_list(table, offsetof(TABLE_LIST, next_global),
+ return find_table_in_list(table, &TABLE_LIST::next_global,
db_name, table_name);
}
@@ -1138,7 +1139,7 @@
const char *db_name,
const char *table_name)
{
- return find_table_in_list(table, offsetof(TABLE_LIST, next_local),
+ return find_table_in_list(table, &TABLE_LIST::next_local,
db_name, table_name);
}
--- 1.204/sql/opt_range.cc 2006-02-24 23:41:34 +02:00
+++ 1.205/sql/opt_range.cc 2006-02-25 20:35:08 +02:00
@@ -1601,6 +1601,8 @@
{ return (void*) alloc_root(mem_root, (uint) size); }
static void operator delete(void *ptr,size_t size) { TRASH(ptr, size); }
static void operator delete(void *ptr, MEM_ROOT *mem_root) { /* Never called */ }
+ virtual ~TABLE_READ_PLAN() {} /* Remove gcc warning */
+
};
class TRP_ROR_INTERSECT;
@@ -1624,6 +1626,7 @@
TRP_RANGE(SEL_ARG *key_arg, uint idx_arg)
: key(key_arg), key_idx(idx_arg)
{}
+ virtual ~TRP_RANGE() {} /* Remove gcc warning */
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
MEM_ROOT *parent_alloc)
@@ -1645,6 +1648,8 @@
class TRP_ROR_INTERSECT : public TABLE_READ_PLAN
{
public:
+ TRP_ROR_INTERSECT() {} /* Remove gcc warning */
+ virtual ~TRP_ROR_INTERSECT() {} /* Remove gcc warning */
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
MEM_ROOT *parent_alloc);
@@ -1666,6 +1671,8 @@
class TRP_ROR_UNION : public TABLE_READ_PLAN
{
public:
+ TRP_ROR_UNION() {} /* Remove gcc warning */
+ virtual ~TRP_ROR_UNION() {} /* Remove gcc warning */
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
MEM_ROOT *parent_alloc);
TABLE_READ_PLAN **first_ror; /* array of ptrs to plans for merged scans */
@@ -1682,6 +1689,8 @@
class TRP_INDEX_MERGE : public TABLE_READ_PLAN
{
public:
+ TRP_INDEX_MERGE() {} /* Remove gcc warning */
+ virtual ~TRP_INDEX_MERGE() {} /* Remove gcc warning */
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
MEM_ROOT *parent_alloc);
TRP_RANGE **range_scans; /* array of ptrs to plans of merged scans */
@@ -1731,6 +1740,7 @@
if (key_infix_len)
memcpy(this->key_infix, key_infix_arg, key_infix_len);
}
+ virtual ~TRP_GROUP_MIN_MAX() {} /* Remove gcc warning */
QUICK_SELECT_I *make_quick(PARAM *param, bool retrieve_full_rows,
MEM_ROOT *parent_alloc);
--- 1.304/sql/sql_base.cc 2006-02-22 13:04:17 +02:00
+++ 1.305/sql/sql_base.cc 2006-02-25 20:35:08 +02:00
@@ -917,6 +917,15 @@
DESCRIPTION
Marks all tables in the list which were used by current substatement
(they are marked by its query_id) as free for reuse.
+
+ NOTE
+ The reason we reset query_id is that it's not enough to just test
+ if table->query_id != thd->query_id to know if a table is in use.
+
+ For example
+ SELECT f1_that_uses_t1() FROM t1;
+ In f1_that_uses_t1() we will see one instance of t1 where query_id is
+ set to query_id of original query.
*/
static void mark_used_tables_as_free_for_reuse(THD *thd, TABLE *table)
@@ -1230,11 +1239,11 @@
*/
TABLE_LIST *find_table_in_list(TABLE_LIST *table,
- uint offset,
+ st_table_list *TABLE_LIST::*link,
const char *db_name,
const char *table_name)
{
- for (; table; table= *(TABLE_LIST **) ((char*) table + offset))
+ for (; table; table= table->*link )
{
if ((table->table == 0 || table->table->s->tmp_table == NO_TMP_TABLE) &&
strcmp(table->db, db_name) == 0 &&
--- 1.245/sql/sql_class.cc 2006-02-14 07:41:15 +02:00
+++ 1.246/sql/sql_class.cc 2006-02-25 20:35:08 +02:00
@@ -992,6 +992,7 @@
protocol->remove_last_row();
else
DBUG_RETURN(protocol->write());
+ protocol->remove_last_row();
DBUG_RETURN(1);
}
--- 1.284/sql/sql_class.h 2006-02-14 07:41:19 +02:00
+++ 1.285/sql/sql_class.h 2006-02-25 21:54:29 +02:00
@@ -629,6 +629,7 @@
class Security_context {
public:
+ Security_context() {} /* Remove gcc warning */
/*
host - host of the client
user - user of the client, set to NULL until the user has been read from
@@ -1467,6 +1468,7 @@
class select_result_interceptor: public select_result
{
public:
+ select_result_interceptor() {} /* Remove gcc warning */
uint field_count(List<Item> &fields) const { return 0; }
bool send_fields(List<Item> &fields, uint flag) { return FALSE; }
};
@@ -1757,6 +1759,7 @@
class user_var_entry
{
public:
+ user_var_entry() {} /* Remove gcc warning */
LEX_STRING name;
char *value;
ulong length;
--- 1.130/sql/sql_db.cc 2006-02-16 01:49:28 +02:00
+++ 1.131/sql/sql_db.cc 2006-02-25 20:35:08 +02:00
@@ -1233,10 +1233,13 @@
#ifndef NO_EMBEDDED_ACCESS_CHECKS
ulong db_access;
Security_context *sctx= thd->security_ctx;
+ LINT_INIT(db_access);
#endif
DBUG_ENTER("mysql_change_db");
DBUG_PRINT("enter",("name: '%s'",name));
+ LINT_INIT(db_length);
+
/* dbname can only be NULL if malloc failed */
if (!dbname || !(db_length= strlen(dbname)))
{
@@ -1254,7 +1257,7 @@
if (check_db_name(dbname))
{
my_error(ER_WRONG_DB_NAME, MYF(0), dbname);
- x_free(dbname);
+ my_free(dbname, MYF(0));
DBUG_RETURN(1);
}
DBUG_PRINT("info",("Use database: %s", dbname));
@@ -1303,8 +1306,7 @@
x_free(thd->db);
if (dbname && dbname[0] == 0)
{
- if (!(thd->slave_thread))
- x_free(dbname);
+ my_free(dbname, MYF(0));
thd->db= NULL;
thd->db_length= 0;
}
--- 1.522/sql/sql_parse.cc 2006-02-15 18:12:20 +02:00
+++ 1.523/sql/sql_parse.cc 2006-02-25 20:35:09 +02:00
@@ -4972,7 +4972,9 @@
break;
}
default:
+#ifndef EMBEDDED_LIBRARY
DBUG_ASSERT(0); /* Impossible */
+#endif
send_ok(thd);
break;
}
@@ -6149,10 +6151,11 @@
/*
table_list.next points to the last inserted TABLE_LIST->next_local'
element
+ We don't use the offsetof() macro here to avoid warnings from gcc
*/
- previous_table_ref= (TABLE_LIST*) (table_list.next -
- offsetof(TABLE_LIST, next_local));
- DBUG_ASSERT(previous_table_ref);
+ previous_table_ref= (TABLE_LIST*) ((char*) table_list.next -
+ ((char*) &(ptr->next_local) -
+ (char*) ptr));
/*
Set next_name_resolution_table of the previous table reference to point
to the current table reference. In effect the list
--- 1.104/sql/sql_select.h 2006-02-08 22:52:05 +02:00
+++ 1.105/sql/sql_select.h 2006-02-25 20:35:09 +02:00
@@ -104,6 +104,7 @@
Next_select_func setup_end_select_func(JOIN *join);
typedef struct st_join_table {
+ st_join_table() {} /* Remove gcc warning */
TABLE *table;
KEYUSE *keyuse; /* pointer to first used key */
SQL_SELECT *select;
@@ -288,7 +289,7 @@
}
JOIN(JOIN &join)
- :fields_list(join.fields_list)
+ :Sql_alloc(), fields_list(join.fields_list)
{
init(join.thd, join.fields_list, join.select_options,
join.result);
--- 1.131/sql/table.h 2006-02-16 15:53:27 +02:00
+++ 1.132/sql/table.h 2006-02-25 20:35:09 +02:00
@@ -216,6 +216,8 @@
/* Information for one open table */
struct st_table {
+ st_table() {} /* Remove gcc warning */
+
TABLE_SHARE *s;
handler *file;
#ifdef NOT_YET
@@ -490,6 +492,7 @@
typedef struct st_table_list
{
+ st_table_list() {} /* Remove gcc warning */
/*
List of tables local to a subquery (used by SQL_LIST). Considers
views as leaves (unlike 'next_leaf' below). Created at parse time
@@ -722,6 +725,7 @@
class Field_iterator: public Sql_alloc
{
public:
+ Field_iterator() {} /* Remove gcc warning */
virtual ~Field_iterator() {}
virtual void set(TABLE_LIST *)= 0;
virtual void next()= 0;
--- 1.135/mysql-test/r/subselect.result 2006-02-22 10:27:16 +02:00
+++ 1.136/mysql-test/r/subselect.result 2006-02-25 20:35:06 +02:00
@@ -2987,7 +2987,6 @@
max(fld)
1
drop table t1;
-purge master logs before (select adddate(current_timestamp(), interval -4 day));
CREATE TABLE t1 (a int, b int);
CREATE TABLE t2 (c int, d int);
CREATE TABLE t3 (e int);
--- 1.4.2.1/mysql-test/t/blackhole.test 2006-02-24 18:34:08 +02:00
+++ 1.8/mysql-test/extra/binlog_tests/blackhole.test 2006-02-25 20:35:06 +02:00
@@ -128,3 +128,20 @@
drop table t1,t2,t3;
# End of 4.1 tests
+
+# Test that a transaction which is rolled back does not go into binlog
+# and that a transaction which is committed does
+
+reset master;
+create table t1 (a int) engine=blackhole;
+set autocommit=0;
+start transaction;
+insert into t1 values(1);
+commit;
+start transaction;
+insert into t1 values(2);
+rollback;
+set autocommit=1;
+--replace_result $VERSION VERSION
+--replace_column 2 # 5 #
+show binlog events;
--- 1.31/sql/tztime.cc 2006-01-10 20:50:20 +02:00
+++ 1.32/sql/tztime.cc 2006-02-25 20:35:09 +02:00
@@ -973,6 +973,7 @@
class Time_zone_system : public Time_zone
{
public:
+ Time_zone_system() {} /* Remove gcc warning */
virtual my_time_t TIME_to_gmt_sec(const TIME *t,
my_bool *in_dst_time_gap) const;
virtual void gmt_sec_to_TIME(TIME *tmp, my_time_t t) const;
@@ -1066,6 +1067,7 @@
class Time_zone_utc : public Time_zone
{
public:
+ Time_zone_utc() {} /* Remove gcc warning */
virtual my_time_t TIME_to_gmt_sec(const TIME *t,
my_bool *in_dst_time_gap) const;
virtual void gmt_sec_to_TIME(TIME *tmp, my_time_t t) const;
--- 1.14/sql/tztime.h 2005-12-05 12:44:56 +02:00
+++ 1.15/sql/tztime.h 2006-02-25 20:35:09 +02:00
@@ -30,6 +30,7 @@
class Time_zone: public Sql_alloc
{
public:
+ Time_zone() {} /* Remove gcc warning */
/*
Converts local time in broken down TIME representation to
my_time_t (UTC seconds since Epoch) represenation.
--- 1.38/mysys/my_bitmap.c 2006-02-02 15:51:30 +02:00
+++ 1.39/mysys/my_bitmap.c 2006-02-25 21:54:29 +02:00
@@ -84,7 +84,7 @@
}
}
-static inline void bitmap_lock(MY_BITMAP *map)
+static inline void bitmap_lock(MY_BITMAP *map __attribute__((unused)))
{
#ifdef THREAD
if (map->mutex)
@@ -92,7 +92,7 @@
#endif
}
-static inline void bitmap_unlock(MY_BITMAP *map)
+static inline void bitmap_unlock(MY_BITMAP *map __attribute__((unused)))
{
#ifdef THREAD
if (map->mutex)
--- 1.11/mysql-test/t/view_grant.test 2006-02-07 18:56:23 +02:00
+++ 1.12/mysql-test/t/view_grant.test 2006-02-25 20:35:07 +02:00
@@ -717,3 +717,5 @@
create definer=some_user@localhost sql security invoker view v1 as select 1;
show create view v1;
drop view v1;
+
+
--- 1.48.5.1/ndb/include/ndbapi/NdbDictionary.hpp 2006-02-25 17:46:25 +02:00
+++ 1.70/storage/ndb/include/ndbapi/NdbDictionary.hpp 2006-02-25 20:35:09 +02:00
@@ -96,7 +96,9 @@
* Get version of object
*/
virtual int getObjectVersion() const = 0;
-
+
+ virtual int getObjectId() const = 0;
+
/**
* Object type
*/
@@ -109,7 +111,11 @@
HashIndexTrigger = 7, ///< Index maintenance, internal
IndexTrigger = 8, ///< Index maintenance, internal
SubscriptionTrigger = 9,///< Backup or replication, internal
- ReadOnlyConstraint = 10 ///< Trigger, internal
+ ReadOnlyConstraint = 10,///< Trigger, internal
+ Tablespace = 20, ///< Tablespace
+ LogfileGroup = 21, ///< Logfile group
+ Datafile = 22, ///< Datafile
+ Undofile = 23 ///< Undofile
};
/**
@@ -150,12 +156,17 @@
FragSingle = 1, ///< Only one fragment
FragAllSmall = 2, ///< One fragment per node, default
FragAllMedium = 3, ///< two fragments per node
- FragAllLarge = 4 ///< Four fragments per node.
+ FragAllLarge = 4, ///< Four fragments per node.
+ DistrKeyHash = 5,
+ DistrKeyLin = 6,
+ UserDefined = 7
};
};
class Table; // forward declaration
-
+ class Tablespace; // forward declaration
+// class NdbEventOperation; // forward declaration
+
/**
* @class Column
* @brief Represents a column in an NDB Cluster table
@@ -212,6 +223,34 @@
Timestamp = NDB_TYPE_TIMESTAMP ///< Unix time
};
+ /*
+ * Array type specifies internal attribute format.
+ *
+ * - ArrayTypeFixed is stored as fixed number of bytes. This type
+ * is fastest to access but can waste space.
+ *
+ * - ArrayTypeVar is stored as variable number of bytes with a fixed
+ * overhead of 2 bytes.
+ *
+ * Default is ArrayTypeVar for Var* types and ArrayTypeFixed for
+ * others. The default is normally ok.
+ */
+ enum ArrayType {
+ ArrayTypeFixed = NDB_ARRAYTYPE_FIXED, // 0 length bytes
+ ArrayTypeShortVar = NDB_ARRAYTYPE_SHORT_VAR, // 1 length bytes
+ ArrayTypeMediumVar = NDB_ARRAYTYPE_MEDIUM_VAR // 2 length bytes
+ };
+
+ /*
+ * Storage type specifies whether attribute is stored in memory or
+ * on disk. Default is memory. Disk attributes are potentially
+ * much slower to access and cannot be indexed in version 5.1.
+ */
+ enum StorageType {
+ StorageTypeMemory = NDB_STORAGETYPE_MEMORY,
+ StorageTypeDisk = NDB_STORAGETYPE_DISK
+ };
+
/**
* @name General
* @{
@@ -238,6 +277,10 @@
*/
int getColumnNo() const;
+#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
+ int getAttrId() const;
+#endif
+
/**
* Check if column is equal to some other column
* @param column Column to compare with
@@ -331,6 +374,9 @@
inline bool getDistributionKey() const { return getPartitionKey(); };
#endif
+ ArrayType getArrayType() const;
+ StorageType getStorageType() const;
+
/** @} *******************************************************************/
@@ -439,6 +485,9 @@
{ setPartitionKey(enable); };
#endif
+ void setArrayType(ArrayType type);
+ void setStorageType(StorageType type);
+
/** @} *******************************************************************/
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
@@ -456,6 +505,10 @@
static const Column * COMMIT_COUNT;
static const Column * ROW_SIZE;
static const Column * RANGE_NO;
+ static const Column * DISK_REF;
+ static const Column * RECORDS_IN_RANGE;
+ static const Column * ROWID;
+ static const Column * ROW_GCI;
int getSizeInBytes() const;
#endif
@@ -619,6 +672,24 @@
const void* getFrmData() const;
Uint32 getFrmLength() const;
+ /**
+ * Get Fragment Data (id, state and node group)
+ */
+ const void *getFragmentData() const;
+ Uint32 getFragmentDataLen() const;
+
+ /**
+ * Get Range or List Array (value, partition)
+ */
+ const void *getRangeListData() const;
+ Uint32 getRangeListDataLen() const;
+
+ /**
+ * Get Tablespace Data (id, version)
+ */
+ const void *getTablespaceData() const;
+ Uint32 getTablespaceDataLen() const;
+
/** @} *******************************************************************/
/**
@@ -665,7 +736,23 @@
* @see NdbDictionary::Table::getLogging.
*/
void setLogging(bool);
-
+
+ /**
+ * Set/Get Linear Hash Flag
+ */
+ void setLinearFlag(Uint32 flag);
+ bool getLinearFlag() const;
+
+ /**
+ * Set fragment count
+ */
+ void setFragmentCount(Uint32);
+
+ /**
+ * Get fragment count
+ */
+ Uint32 getFragmentCount() const;
+
/**
* Set fragmentation type
*/
@@ -697,6 +784,11 @@
*/
void setMaxLoadFactor(int);
+ void setTablespace(const char * name);
+ void setTablespace(const class Tablespace &);
+ const char * getTablespace() const;
+ bool getTablespace(Uint32 *id= 0, Uint32 *version= 0) const;
+
/**
* Get table object type
*/
@@ -713,18 +805,77 @@
virtual int getObjectVersion() const;
/**
+ * Set/Get Maximum number of rows in table (only used to calculate
+ * number of partitions).
+ */
+ void setMaxRows(Uint64 maxRows);
+ Uint64 getMaxRows() const;
+
+ /**
+ * Set/Get indicator if default number of partitions is used in table.
+ */
+ void setDefaultNoPartitionsFlag(Uint32 indicator);
+ Uint32 getDefaultNoPartitionsFlag() const;
+
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
+ /**
* Set frm file to store with this table
*/
void setFrm(const void* data, Uint32 len);
/**
+ * Set array of fragment information containing
+ * Fragment Identity
+ * Node group identity
+ * Fragment State
+ */
+ void setFragmentData(const void* data, Uint32 len);
+
+ /**
+ * Set/Get tablespace names per fragment
+ */
+ void setTablespaceNames(const void* data, Uint32 len);
+ const void *getTablespaceNames();
+ Uint32 getTablespaceNamesLen() const;
+
+ /**
+ * Set tablespace information per fragment
+ * Contains a tablespace id and a tablespace version
+ */
+ void setTablespaceData(const void* data, Uint32 len);
+
+ /**
+ * Set array of information mapping range values and list values
+ * to fragments. This is essentially a sorted map consisting of
+ * pairs of value, fragment identity. For range partitions there is
+ * one pair per fragment. For list partitions it could be any number
+ * of pairs, at least as many as there are fragments.
+ */
+ void setRangeListData(const void* data, Uint32 len);
+
+ /**
* Set table object type
*/
void setObjectType(Object::Type type);
/** @} *******************************************************************/
+ /**
+ *
+ */
+ void setRowGCIIndicator(bool value);
+ bool getRowGCIIndicator() const;
+
+ void setRowChecksumIndicator(bool value);
+ bool getRowChecksumIndicator() const;
+
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
+ const char *getMysqlName() const;
+
void setStoredTable(bool x) { setLogging(x); }
bool getStoredTable() const { return getLogging(); }
@@ -736,7 +887,10 @@
private:
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
+ friend class Ndb;
+ friend class NdbDictionaryImpl;
friend class NdbTableImpl;
+ friend class NdbEventOperationImpl;
#endif
class NdbTableImpl & m_impl;
Table(NdbTableImpl&);
@@ -825,6 +979,11 @@
*/
virtual int getObjectVersion() const;
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
/** @} *******************************************************************/
/**
@@ -918,6 +1077,7 @@
private:
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
friend class NdbIndexImpl;
+ friend class NdbIndexStat;
#endif
class NdbIndexImpl & m_impl;
Index(NdbIndexImpl&);
@@ -936,12 +1096,44 @@
/** TableEvent must match 1 << TriggerEvent */
#endif
enum TableEvent {
- TE_INSERT=1, ///< Insert event on table
- TE_DELETE=2, ///< Delete event on table
- TE_UPDATE=4, ///< Update event on table
- TE_ALL=7 ///< Any/all event on table (not relevant when
- ///< events are received)
+ TE_INSERT =1<<0, ///< Insert event on table
+ TE_DELETE =1<<1, ///< Delete event on table
+ TE_UPDATE =1<<2, ///< Update event on table
+#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
+ TE_SCAN =1<<3, ///< Scan event on table
+ TE_FIRST_NON_DATA_EVENT =1<<4,
+#endif
+ TE_DROP =1<<4, ///< Drop of table
+ TE_ALTER =1<<5, ///< Alter of table
+ TE_CREATE =1<<6, ///< Create of table
+ TE_GCP_COMPLETE=1<<7, ///< GCP is complete
+ TE_CLUSTER_FAILURE=1<<8, ///< Cluster is unavailable
+ TE_STOP =1<<9, ///< Stop of event operation
+ TE_NODE_FAILURE=1<<10, ///< Node failed
+ TE_SUBSCRIBE =1<<11, ///< Node subscribes
+ TE_UNSUBSCRIBE =1<<12, ///< Node unsubscribes
+ TE_ALL=0xFFFF ///< Any/all event on table (not relevant when
+ ///< events are received)
+ };
+#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
+ enum _TableEvent {
+ _TE_INSERT=0,
+ _TE_DELETE=1,
+ _TE_UPDATE=2,
+ _TE_SCAN=3,
+ _TE_FIRST_NON_DATA_EVENT=4,
+ _TE_DROP=4,
+ _TE_ALTER=5,
+ _TE_CREATE=6,
+ _TE_GCP_COMPLETE=7,
+ _TE_CLUSTER_FAILURE=8,
+ _TE_STOP=9,
+ _TE_NODE_FAILURE=10,
+ _TE_SUBSCRIBE=11,
+ _TE_UNSUBSCRIBE=12,
+ _TE_NUL=13 // internal (e.g. INS o DEL within same GCI)
};
+#endif
/**
* Specifies the durability of an event
* (future version may supply other types)
@@ -968,6 +1160,15 @@
};
/**
+ * Specifies reporting options for table events
+ */
+ enum EventReport {
+ ER_UPDATED = 0,
+ ER_ALL = 1,
+ ER_SUBSCRIBE = 2
+ };
+
+ /**
* Constructor
* @param name Name of event
*/
@@ -988,6 +1189,12 @@
*/
const char *getName() const;
/**
+ * Get table that the event is defined on
+ *
+ * @return pointer to table or NULL if no table has been defined
+ */
+ const NdbDictionary::Table * getTable() const;
+ /**
* Define table on which events should be detected
*
* @note calling this method will default to detection
@@ -1015,6 +1222,10 @@
*/
void addTableEvent(const TableEvent te);
/**
+ * Check if a specific table event will be detected
+ */
+ bool getTableEvent(const TableEvent te) const;
+ /**
* Set durability of the event
*/
void setDurability(EventDurability);
@@ -1022,6 +1233,14 @@
* Get durability of the event
*/
EventDurability getDurability() const;
+ /**
+ * Set report option of the event
+ */
+ void setReport(EventReport);
+ /**
+ * Get report option of the event
+ */
+ EventReport getReport() const;
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
void addColumn(const Column &c);
#endif
@@ -1060,6 +1279,29 @@
int getNoOfEventColumns() const;
/**
+ * Get a specific column in the event
+ */
+ const Column * getEventColumn(unsigned no) const;
+
+ /**
+ * The merge events flag is false by default. Setting it true
+ * implies that events are merged in following ways:
+ *
+ * - for given NdbEventOperation associated with this event,
+ * events on same PK within same GCI are merged into single event
+ *
+ * - a blob table event is created for each blob attribute
+ * and blob events are handled as part of main table events
+ *
+ * - blob post/pre data from the blob part events can be read
+ * via NdbBlob methods as a single value
+ *
+ * NOTE: Currently this flag is not inherited by NdbEventOperation
+ * and must be set on NdbEventOperation explicitly.
+ */
+ void mergeEvents(bool flag);
+
+ /**
* Get object status
*/
virtual Object::Status getObjectStatus() const;
@@ -1069,6 +1311,11 @@
*/
virtual int getObjectVersion() const;
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
void print();
#endif
@@ -1082,6 +1329,187 @@
Event(NdbEventImpl&);
};
+ struct AutoGrowSpecification {
+ Uint32 min_free;
+ Uint64 max_size;
+ Uint64 file_size;
+ const char * filename_pattern;
+ };
+
+ /**
+ * @class LogfileGroup
+ */
+ class LogfileGroup : public Object {
+ public:
+ LogfileGroup();
+ LogfileGroup(const LogfileGroup&);
+ virtual ~LogfileGroup();
+
+ void setName(const char * name);
+ const char* getName() const;
+
+ void setUndoBufferSize(Uint32 sz);
+ Uint32 getUndoBufferSize() const;
+
+ void setAutoGrowSpecification(const AutoGrowSpecification&);
+ const AutoGrowSpecification& getAutoGrowSpecification() const;
+
+ Uint64 getUndoFreeWords() const;
+
+ /**
+ * Get object status
+ */
+ virtual Object::Status getObjectStatus() const;
+
+ /**
+ * Get object version
+ */
+ virtual int getObjectVersion() const;
+
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
+ private:
+ friend class NdbDictionaryImpl;
+ friend class NdbLogfileGroupImpl;
+ class NdbLogfileGroupImpl & m_impl;
+ LogfileGroup(NdbLogfileGroupImpl&);
+ };
+
+ /**
+ * @class Tablespace
+ */
+ class Tablespace : public Object {
+ public:
+ Tablespace();
+ Tablespace(const Tablespace&);
+ virtual ~Tablespace();
+
+ void setName(const char * name);
+ const char* getName() const;
+
+ void setExtentSize(Uint32 sz);
+ Uint32 getExtentSize() const;
+
+ void setAutoGrowSpecification(const AutoGrowSpecification&);
+ const AutoGrowSpecification& getAutoGrowSpecification() const;
+
+ void setDefaultLogfileGroup(const char * name);
+ void setDefaultLogfileGroup(const class LogfileGroup&);
+
+ const char * getDefaultLogfileGroup() const;
+ Uint32 getDefaultLogfileGroupId() const;
+
+ /**
+ * Get object status
+ */
+ virtual Object::Status getObjectStatus() const;
+
+ /**
+ * Get object version
+ */
+ virtual int getObjectVersion() const;
+
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
+ private:
+ friend class NdbTablespaceImpl;
+ class NdbTablespaceImpl & m_impl;
+ Tablespace(NdbTablespaceImpl&);
+ };
+
+ class Datafile : public Object {
+ public:
+ Datafile();
+ Datafile(const Datafile&);
+ virtual ~Datafile();
+
+ void setPath(const char * name);
+ const char* getPath() const;
+
+ void setSize(Uint64);
+ Uint64 getSize() const;
+ Uint64 getFree() const;
+
+ void setTablespace(const char * name);
+ void setTablespace(const class Tablespace &);
+ const char * getTablespace() const;
+ Uint32 getTablespaceId() const;
+
+ void setNode(Uint32 nodeId);
+ Uint32 getNode() const;
+
+ Uint32 getFileNo() const;
+
+ /**
+ * Get object status
+ */
+ virtual Object::Status getObjectStatus() const;
+
+ /**
+ * Get object version
+ */
+ virtual int getObjectVersion() const;
+
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
+ private:
+ friend class NdbDatafileImpl;
+ class NdbDatafileImpl & m_impl;
+ Datafile(NdbDatafileImpl&);
+ };
+
+ class Undofile : public Object {
+ public:
+ Undofile();
+ Undofile(const Undofile&);
+ virtual ~Undofile();
+
+ void setPath(const char * path);
+ const char* getPath() const;
+
+ void setSize(Uint64);
+ Uint64 getSize() const;
+
+ void setLogfileGroup(const char * name);
+ void setLogfileGroup(const class LogfileGroup &);
+ const char * getLogfileGroup() const;
+ Uint32 getLogfileGroupId() const;
+
+ void setNode(Uint32 nodeId);
+ Uint32 getNode() const;
+
+ Uint32 getFileNo() const;
+
+ /**
+ * Get object status
+ */
+ virtual Object::Status getObjectStatus() const;
+
+ /**
+ * Get object version
+ */
+ virtual int getObjectVersion() const;
+
+ /**
+ * Get object id
+ */
+ virtual int getObjectId() const;
+
+ private:
+ friend class NdbUndofileImpl;
+ class NdbUndofileImpl & m_impl;
+ Undofile(NdbUndofileImpl&);
+ };
+
/**
* @class Dictionary
* @brief Dictionary for defining and retreiving meta data
@@ -1173,6 +1601,14 @@
*/
const Table * getTable(const char * name) const;
+#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
+ /*
+ * Save a table definition in dictionary cache
+ * @param table Object to put into cache
+ */
+ void putTable(const Table * table);
+#endif
+
/**
* Get index with given name, NULL if undefined
* @param indexName Name of index to get.
@@ -1308,10 +1744,39 @@
*/
void invalidateIndex(const char * indexName,
const char * tableName);
+ /**
+ * Force gcp and wait for gcp complete
+ */
+ int forceGCPWait();
#endif
/** @} *******************************************************************/
+ /** @} *******************************************************************/
+ /**
+ * @name Disk data objects
+ * @{
+ */
+
+ int createLogfileGroup(const LogfileGroup &);
+ int dropLogfileGroup(const LogfileGroup&);
+ LogfileGroup getLogfileGroup(const char * name);
+
+ int createTablespace(const Tablespace &);
+ int dropTablespace(const Tablespace&);
+ Tablespace getTablespace(const char * name);
+ Tablespace getTablespace(Uint32 tablespaceId);
+
+ int createDatafile(const Datafile &, bool overwrite_existing = false);
+ int dropDatafile(const Datafile&);
+ Datafile getDatafile(Uint32 node, const char * path);
+
+ int createUndofile(const Undofile &, bool overwrite_existing = false);
+ int dropUndofile(const Undofile&);
+ Undofile getUndofile(Uint32 node, const char * path);
+
+ /** @} *******************************************************************/
+
protected:
Dictionary(Ndb & ndb);
~Dictionary();
--- 1.14/mysql-test/t/temp_table.test 2005-11-23 22:44:54 +02:00
+++ 1.15/mysql-test/t/temp_table.test 2006-02-25 20:35:07 +02:00
@@ -1,3 +1,5 @@
+# mysqltest should be fixed
+-- source include/not_embedded.inc
#
# Test of temporary tables
#
--- 1.32/sql/sql_cache.h 2005-11-23 14:04:12 +02:00
+++ 1.33/sql/sql_cache.h 2006-02-25 21:54:29 +02:00
@@ -69,6 +69,7 @@
struct Query_cache_block_table
{
+ Query_cache_block_table() {} /* Remove gcc warning */
TABLE_COUNTER_TYPE n; // numbr in table (from 0)
Query_cache_block_table *next, *prev;
Query_cache_table *parent;
@@ -78,6 +79,7 @@
struct Query_cache_block
{
+ Query_cache_block() {} /* Remove gcc warning */
enum block_type {FREE, QUERY, RESULT, RES_CONT, RES_BEG,
RES_INCOMPLETE, TABLE, INCOMPLETE};
@@ -143,6 +145,7 @@
struct Query_cache_table
{
+ Query_cache_table() {} /* Remove gcc warning */
char *tbl;
uint32 key_len;
uint8 table_type;
@@ -171,6 +174,7 @@
struct Query_cache_result
{
+ Query_cache_result() {} /* Remove gcc warning */
Query_cache_block *query;
inline gptr data()
@@ -197,6 +201,7 @@
struct Query_cache_memory_bin
{
+ Query_cache_memory_bin() {} /* Remove gcc warning */
#ifndef DBUG_OFF
ulong size;
#endif
@@ -215,8 +220,7 @@
struct Query_cache_memory_bin_step
{
-public:
- Query_cache_memory_bin_step() {}
+ Query_cache_memory_bin_step() {} /* Remove gcc warning */
ulong size;
ulong increment;
uint idx;
--- 1.40/scripts/mysql_fix_privilege_tables.sql 2006-02-02 12:35:58 +02:00
+++ 1.41/scripts/mysql_fix_privilege_tables.sql 2006-02-25 21:54:29 +02:00
@@ -680,3 +680,9 @@
ALTER TABLE tables_priv MODIFY Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') COLLATE utf8_general_ci DEFAULT '' NOT NULL;
UPDATE user SET Trigger_priv=Super_priv WHERE @hadTriggerPriv = 0;
+
+# Activate the new, possible modified privilege tables
+# This should not be needed, but gives us some extra testing that the above
+# changes was correct
+
+flush privileges;
--- 1.7/mysql-test/t/sp-destruct.test 2006-02-09 12:34:34 +02:00
+++ 1.8/mysql-test/t/sp-destruct.test 2006-02-25 20:35:07 +02:00
@@ -54,10 +54,13 @@
# Thrashing the .frm file
--system echo 'saljdlfa' > $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
+--replace_result $MYSQLTEST_VARDIR . master-data// ''
--error ER_NOT_FORM_FILE
call bug14233();
+--replace_result $MYSQLTEST_VARDIR . master-data// ''
--error ER_NOT_FORM_FILE
create view v1 as select bug14233_f();
+--replace_result $MYSQLTEST_VARDIR . master-data// ''
--error ER_NOT_FORM_FILE
insert into t1 values (0);
--- 1.179/mysql-test/t/sp.test 2006-02-23 11:49:36 +02:00
+++ 1.180/mysql-test/t/sp.test 2006-02-25 20:35:07 +02:00
@@ -699,10 +699,11 @@
--disable_warnings
drop procedure if exists into_outfile|
--enable_warnings
-create procedure into_outfile(x char(16), y int)
+--replace_result $MYSQLTEST_VARDIR ..
+eval create procedure into_outfile(x char(16), y int)
begin
insert into test.t1 values (x, y);
- select * into outfile "../tmp/spout" from test.t1;
+ select * into outfile "$MYSQLTEST_VARDIR/tmp/spout" from test.t1;
insert into test.t1 values (concat(x, "2"), y+2);
end|
@@ -715,10 +716,11 @@
--disable_warnings
drop procedure if exists into_dumpfile|
--enable_warnings
-create procedure into_dumpfile(x char(16), y int)
+--replace_result $MYSQLTEST_VARDIR ..
+eval create procedure into_dumpfile(x char(16), y int)
begin
insert into test.t1 values (x, y);
- select * into dumpfile "../tmp/spdump" from test.t1 limit 1;
+ select * into dumpfile "$MYSQLTEST_VARDIR/tmp/spdump" from test.t1 limit 1;
insert into test.t1 values (concat(x, "2"), y+2);
end|
--- 1.4.1.1/mysql-test/r/binlog.result 2006-02-24 18:34:07 +02:00
+++ 1.8/mysql-test/r/binlog_stm_binlog.result 2006-02-25 21:54:29 +02:00
@@ -1,3 +1,15 @@
+create table t1 (a int, b int) engine=innodb;
+begin;
+insert into t1 values (1,2);
+commit;
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 4 Format_desc 1 102 Server ver: #, Binlog ver: #
+master-bin.000001 102 Query 1 209 use `test`; create table t1 (a int, b int) engine=innodb
+master-bin.000001 209 Query 1 277 use `test`; BEGIN
+master-bin.000001 277 Query 1 90 use `test`; insert into t1 values (1,2)
+master-bin.000001 367 Xid 1 394 COMMIT /* XID */
+drop table t1;
drop table if exists t1, t2;
reset master;
create table t1 (a int) engine=bdb;
@@ -8,7 +20,7 @@
begin;
insert t2 values (5);
commit;
-show binlog events from 98;
+show binlog events from 102;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=bdb
master-bin.000001 # Query 1 # use `test`; create table t2 (a int) engine=innodb
@@ -17,14 +29,14 @@
master-bin.000001 # Query 1 # use `test`; COMMIT
master-bin.000001 # Query 1 # use `test`; BEGIN
master-bin.000001 # Query 1 # use `test`; insert t2 values (5)
-master-bin.000001 # Xid 1 # COMMIT /* xid=12 */
+master-bin.000001 # Xid 1 # COMMIT /* xid= */
drop table t1,t2;
reset master;
create table t1 (n int) engine=innodb;
begin;
commit;
drop table t1;
-show binlog events in 'master-bin.000001' from 98;
+show binlog events in 'master-bin.000001' from 102;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; create table t1 (n int) engine=innodb
master-bin.000001 # Query 1 # use `test`; BEGIN
@@ -128,8 +140,8 @@
master-bin.000001 # Query 1 # use `test`; insert into t1 values(3 + 4)
master-bin.000001 # Query 1 # use `test`; insert into t1 values(2 + 4)
master-bin.000001 # Query 1 # use `test`; insert into t1 values(1 + 4)
-master-bin.000001 # Xid 1 # COMMIT /* xid=19 */
+master-bin.000001 # Xid 1 # COMMIT /* xid= */
master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
-show binlog events in 'master-bin.000002' from 98;
+show binlog events in 'master-bin.000002' from 102;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000002 # Query 1 # use `test`; drop table t1
--- 1.4.1.2/mysql-test/t/binlog.test 2006-02-25 13:24:15 +02:00
+++ 1.6/mysql-test/extra/binlog_tests/binlog.test 2006-02-25 21:54:29 +02:00
@@ -1,9 +1,11 @@
#
# misc binlogging tests that do not require a slave running
#
+
-- source include/not_embedded.inc
-- source include/have_bdb.inc
-- source include/have_innodb.inc
+-- source include/have_debug.inc
--disable_warnings
drop table if exists t1, t2;
@@ -19,9 +21,8 @@
insert t2 values (5);
commit;
# first COMMIT must be Query_log_event, second - Xid_log_event
---replace_result "xid=21" "xid=12"
--replace_column 2 # 5 #
-show binlog events from 98;
+show binlog events from 102;
drop table t1,t2;
#
@@ -41,9 +42,7 @@
--enable_query_log
commit;
drop table t1;
---replace_result "xid=32" "xid=19"
--replace_column 2 # 5 #
-show binlog events in 'master-bin.000001' from 98;
+show binlog events in 'master-bin.000001' from 102;
--replace_column 2 # 5 #
-show binlog events in 'master-bin.000002' from 98;
-
+show binlog events in 'master-bin.000002' from 102;
--- 1.178/tests/mysql_client_test.c 2006-02-16 11:09:47 +02:00
+++ 1.179/tests/mysql_client_test.c 2006-02-25 20:35:09 +02:00
@@ -14724,9 +14724,9 @@
mysql_close(mysql);
- if (rc= mysql_stmt_execute(prep_stmt))
+ if ((rc= mysql_stmt_execute(prep_stmt)))
{
- if (rc= mysql_stmt_reset(prep_stmt))
+ if ((rc= mysql_stmt_reset(prep_stmt)))
printf("OK!\n");
else
{
| Thread |
|---|
| • bk commit into 5.1 tree (monty:1.2177) | monty | 25 Feb |