3358 Tatjana Azundris Nuernberg 2011-08-11 [merge]
auto-merge
3357 Tatjana Azundris Nuernberg 2011-08-11 [merge]
auto-merge
modified:
mysql-test/r/sp_trans.result
mysql-test/t/sp_trans.test
sql/handler.cc
sql/handler.h
sql/mysqld.cc
sql/sql_class.cc
sql/sql_class.h
sql/sql_parse.cc
sql/sql_test.cc
sql/sql_yacc.yy
3356 Marc Alff 2011-08-11
bzr cleanup
removed:
mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result.THIS
mysql-test/suite/perfschema/r/pfs_upgrade_lc1.result.THIS
mysql-test/suite/perfschema/r/pfs_upgrade_lc2.result.THIS
mysql-test/suite/perfschema/r/schema_lc0.result.THIS
mysql-test/suite/perfschema/r/schema_lc1.result.THIS
mysql-test/suite/perfschema/r/schema_lc2.result.THIS
=== modified file 'mysql-test/r/sp_trans.result'
--- a/mysql-test/r/sp_trans.result 2011-07-28 08:31:36 +0000
+++ b/mysql-test/r/sp_trans.result 2011-08-08 17:07:51 +0000
@@ -554,6 +554,52 @@ f1 bug13575(f1)
3 ccc
drop function bug13575|
drop table t3|
+SELECT @@GLOBAL.default_storage_engine INTO @old_engine|
+SET @@GLOBAL.default_storage_engine=InnoDB|
+SET @@SESSION.default_storage_engine=InnoDB|
+SHOW GLOBAL VARIABLES LIKE 'default_storage_engine'|
+Variable_name Value
+default_storage_engine InnoDB
+SHOW SESSION VARIABLES LIKE 'default_storage_engine'|
+Variable_name Value
+default_storage_engine InnoDB
+CREATE PROCEDURE bug11758414()
+BEGIN
+SET @@GLOBAL.default_storage_engine="MyISAM";
+SET @@SESSION.default_storage_engine="MyISAM";
+# show defaults at execution time / that setting them worked
+SHOW GLOBAL VARIABLES LIKE 'default_storage_engine';
+SHOW SESSION VARIABLES LIKE 'default_storage_engine';
+CREATE TABLE t1 (id int);
+CREATE TABLE t2 (id int) ENGINE=InnoDB;
+# show we're heeding the default (at run-time, not parse-time!)
+ SHOW CREATE TABLE t1;
+ # show that we didn't break explicit override with ENGINE=...
+SHOW CREATE TABLE t2;
+END;
+|
+CALL bug11758414|
+Variable_name Value
+default_storage_engine MyISAM
+Variable_name Value
+default_storage_engine MyISAM
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `id` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SHOW GLOBAL VARIABLES LIKE 'default_storage_engine'|
+Variable_name Value
+default_storage_engine MyISAM
+SHOW SESSION VARIABLES LIKE 'default_storage_engine'|
+Variable_name Value
+default_storage_engine MyISAM
+DROP PROCEDURE bug11758414|
+DROP TABLE t1, t2|
+SET @@GLOBAL.default_storage_engine=@old_engine|
#
# End of 5.1 tests
#
=== modified file 'mysql-test/t/sp_trans.test'
--- a/mysql-test/t/sp_trans.test 2010-10-06 14:34:28 +0000
+++ b/mysql-test/t/sp_trans.test 2011-08-08 17:07:51 +0000
@@ -598,6 +598,39 @@ select distinct f1, bug13575(f1) from t3
drop function bug13575|
drop table t3|
+#
+# BUG#11758414: Default storage_engine not honored when set
+# from within a stored procedure
+#
+SELECT @@GLOBAL.default_storage_engine INTO @old_engine|
+SET @@GLOBAL.default_storage_engine=InnoDB|
+SET @@SESSION.default_storage_engine=InnoDB|
+# show defaults at define-time
+SHOW GLOBAL VARIABLES LIKE 'default_storage_engine'|
+SHOW SESSION VARIABLES LIKE 'default_storage_engine'|
+CREATE PROCEDURE bug11758414()
+BEGIN
+ SET @@GLOBAL.default_storage_engine="MyISAM";
+ SET @@SESSION.default_storage_engine="MyISAM";
+ # show defaults at execution time / that setting them worked
+ SHOW GLOBAL VARIABLES LIKE 'default_storage_engine';
+ SHOW SESSION VARIABLES LIKE 'default_storage_engine';
+ CREATE TABLE t1 (id int);
+ CREATE TABLE t2 (id int) ENGINE=InnoDB;
+ # show we're heeding the default (at run-time, not parse-time!)
+ SHOW CREATE TABLE t1;
+ # show that we didn't break explicit override with ENGINE=...
+ SHOW CREATE TABLE t2;
+END;
+|
+CALL bug11758414|
+# show that changing defaults within SP stuck
+SHOW GLOBAL VARIABLES LIKE 'default_storage_engine'|
+SHOW SESSION VARIABLES LIKE 'default_storage_engine'|
+DROP PROCEDURE bug11758414|
+DROP TABLE t1, t2|
+SET @@GLOBAL.default_storage_engine=@old_engine|
+
--echo #
--echo # End of 5.1 tests
--echo #
=== modified file 'sql/handler.cc'
--- a/sql/handler.cc 2011-08-05 10:26:13 +0000
+++ b/sql/handler.cc 2011-08-11 08:47:53 +0000
@@ -2150,7 +2150,7 @@ handler *handler::clone(const char *name
-void handler::ha_statistic_increment(ulong SSV::*offset) const
+void handler::ha_statistic_increment(ulonglong SSV::*offset) const
{
status_var_increment(table->in_use->status_var.*offset);
}
=== modified file 'sql/handler.h'
--- a/sql/handler.h 2011-08-05 10:26:13 +0000
+++ b/sql/handler.h 2011-08-11 08:47:53 +0000
@@ -2171,7 +2171,7 @@ public:
protected:
/* Service methods for use by storage engines. */
- void ha_statistic_increment(ulong SSV::*offset) const;
+ void ha_statistic_increment(ulonglong SSV::*offset) const;
void **ha_data(THD *) const;
THD *ha_thd(void) const;
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2011-07-28 10:54:44 +0000
+++ b/sql/mysqld.cc 2011-08-11 08:47:53 +0000
@@ -6460,18 +6460,18 @@ static int show_net_compression(THD *thd
static int show_starttime(THD *thd, SHOW_VAR *var, char *buff)
{
- var->type= SHOW_LONG;
+ var->type= SHOW_LONGLONG;
var->value= buff;
- *((long *)buff)= (long) (thd->query_start() - server_start_time);
+ *((longlong *)buff)= (longlong) (thd->query_start() - server_start_time);
return 0;
}
#ifdef ENABLED_PROFILING
static int show_flushstatustime(THD *thd, SHOW_VAR *var, char *buff)
{
- var->type= SHOW_LONG;
+ var->type= SHOW_LONGLONG;
var->value= buff;
- *((long *)buff)= (long) (thd->query_start() - flush_status_time);
+ *((longlong *)buff)= (longlong) (thd->query_start() - flush_status_time);
return 0;
}
#endif
@@ -6968,31 +6968,31 @@ SHOW_VAR status_vars[]= {
{"Com", (char*) com_status_vars, SHOW_ARRAY},
{"Compression", (char*) &show_net_compression, SHOW_FUNC},
{"Connections", (char*) &thread_id, SHOW_LONG_NOFLUSH},
- {"Created_tmp_disk_tables", (char*) offsetof(STATUS_VAR, created_tmp_disk_tables), SHOW_LONG_STATUS},
+ {"Created_tmp_disk_tables", (char*) offsetof(STATUS_VAR, created_tmp_disk_tables), SHOW_LONGLONG_STATUS},
{"Created_tmp_files", (char*) &my_tmp_file_created, SHOW_LONG},
- {"Created_tmp_tables", (char*) offsetof(STATUS_VAR, created_tmp_tables), SHOW_LONG_STATUS},
+ {"Created_tmp_tables", (char*) offsetof(STATUS_VAR, created_tmp_tables), SHOW_LONGLONG_STATUS},
{"Delayed_errors", (char*) &delayed_insert_errors, SHOW_LONG},
{"Delayed_insert_threads", (char*) &delayed_insert_threads, SHOW_LONG_NOFLUSH},
{"Delayed_writes", (char*) &delayed_insert_writes, SHOW_LONG},
{"Flush_commands", (char*) &refresh_version, SHOW_LONG_NOFLUSH},
- {"Handler_commit", (char*) offsetof(STATUS_VAR, ha_commit_count), SHOW_LONG_STATUS},
- {"Handler_delete", (char*) offsetof(STATUS_VAR, ha_delete_count), SHOW_LONG_STATUS},
- {"Handler_discover", (char*) offsetof(STATUS_VAR, ha_discover_count), SHOW_LONG_STATUS},
- {"Handler_external_lock", (char*) offsetof(STATUS_VAR, ha_external_lock_count), SHOW_LONG_STATUS},
- {"Handler_mrr_init", (char*) offsetof(STATUS_VAR, ha_multi_range_read_init_count), SHOW_LONG_STATUS},
- {"Handler_prepare", (char*) offsetof(STATUS_VAR, ha_prepare_count), SHOW_LONG_STATUS},
- {"Handler_read_first", (char*) offsetof(STATUS_VAR, ha_read_first_count), SHOW_LONG_STATUS},
- {"Handler_read_key", (char*) offsetof(STATUS_VAR, ha_read_key_count), SHOW_LONG_STATUS},
- {"Handler_read_last", (char*) offsetof(STATUS_VAR, ha_read_last_count), SHOW_LONG_STATUS},
- {"Handler_read_next", (char*) offsetof(STATUS_VAR, ha_read_next_count), SHOW_LONG_STATUS},
- {"Handler_read_prev", (char*) offsetof(STATUS_VAR, ha_read_prev_count), SHOW_LONG_STATUS},
- {"Handler_read_rnd", (char*) offsetof(STATUS_VAR, ha_read_rnd_count), SHOW_LONG_STATUS},
- {"Handler_read_rnd_next", (char*) offsetof(STATUS_VAR, ha_read_rnd_next_count), SHOW_LONG_STATUS},
- {"Handler_rollback", (char*) offsetof(STATUS_VAR, ha_rollback_count), SHOW_LONG_STATUS},
- {"Handler_savepoint", (char*) offsetof(STATUS_VAR, ha_savepoint_count), SHOW_LONG_STATUS},
- {"Handler_savepoint_rollback",(char*) offsetof(STATUS_VAR, ha_savepoint_rollback_count), SHOW_LONG_STATUS},
- {"Handler_update", (char*) offsetof(STATUS_VAR, ha_update_count), SHOW_LONG_STATUS},
- {"Handler_write", (char*) offsetof(STATUS_VAR, ha_write_count), SHOW_LONG_STATUS},
+ {"Handler_commit", (char*) offsetof(STATUS_VAR, ha_commit_count), SHOW_LONGLONG_STATUS},
+ {"Handler_delete", (char*) offsetof(STATUS_VAR, ha_delete_count), SHOW_LONGLONG_STATUS},
+ {"Handler_discover", (char*) offsetof(STATUS_VAR, ha_discover_count), SHOW_LONGLONG_STATUS},
+ {"Handler_external_lock", (char*) offsetof(STATUS_VAR, ha_external_lock_count), SHOW_LONGLONG_STATUS},
+ {"Handler_mrr_init", (char*) offsetof(STATUS_VAR, ha_multi_range_read_init_count), SHOW_LONGLONG_STATUS},
+ {"Handler_prepare", (char*) offsetof(STATUS_VAR, ha_prepare_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_first", (char*) offsetof(STATUS_VAR, ha_read_first_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_key", (char*) offsetof(STATUS_VAR, ha_read_key_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_last", (char*) offsetof(STATUS_VAR, ha_read_last_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_next", (char*) offsetof(STATUS_VAR, ha_read_next_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_prev", (char*) offsetof(STATUS_VAR, ha_read_prev_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_rnd", (char*) offsetof(STATUS_VAR, ha_read_rnd_count), SHOW_LONGLONG_STATUS},
+ {"Handler_read_rnd_next", (char*) offsetof(STATUS_VAR, ha_read_rnd_next_count), SHOW_LONGLONG_STATUS},
+ {"Handler_rollback", (char*) offsetof(STATUS_VAR, ha_rollback_count), SHOW_LONGLONG_STATUS},
+ {"Handler_savepoint", (char*) offsetof(STATUS_VAR, ha_savepoint_count), SHOW_LONGLONG_STATUS},
+ {"Handler_savepoint_rollback",(char*) offsetof(STATUS_VAR, ha_savepoint_rollback_count), SHOW_LONGLONG_STATUS},
+ {"Handler_update", (char*) offsetof(STATUS_VAR, ha_update_count), SHOW_LONGLONG_STATUS},
+ {"Handler_write", (char*) offsetof(STATUS_VAR, ha_write_count), SHOW_LONGLONG_STATUS},
{"Key_blocks_not_flushed", (char*) offsetof(KEY_CACHE, global_blocks_changed), SHOW_KEY_CACHE_LONG},
{"Key_blocks_unused", (char*) offsetof(KEY_CACHE, blocks_unused), SHOW_KEY_CACHE_LONG},
{"Key_blocks_used", (char*) offsetof(KEY_CACHE, blocks_used), SHOW_KEY_CACHE_LONG},
@@ -7008,8 +7008,8 @@ SHOW_VAR status_vars[]= {
{"Open_table_definitions", (char*) &show_table_definitions, SHOW_FUNC},
{"Open_tables", (char*) &show_open_tables, SHOW_FUNC},
{"Opened_files", (char*) &my_file_total_opened, SHOW_LONG_NOFLUSH},
- {"Opened_tables", (char*) offsetof(STATUS_VAR, opened_tables), SHOW_LONG_STATUS},
- {"Opened_table_definitions", (char*) offsetof(STATUS_VAR, opened_shares), SHOW_LONG_STATUS},
+ {"Opened_tables", (char*) offsetof(STATUS_VAR, opened_tables), SHOW_LONGLONG_STATUS},
+ {"Opened_table_definitions", (char*) offsetof(STATUS_VAR, opened_shares), SHOW_LONGLONG_STATUS},
{"Prepared_stmt_count", (char*) &show_prepared_stmt_count, SHOW_FUNC},
#ifdef HAVE_QUERY_CACHE
{"Qcache_free_blocks", (char*) &query_cache.free_memory_blocks, SHOW_LONG_NOFLUSH},
@@ -7022,12 +7022,12 @@ SHOW_VAR status_vars[]= {
{"Qcache_total_blocks", (char*) &query_cache.total_blocks, SHOW_LONG_NOFLUSH},
#endif /*HAVE_QUERY_CACHE*/
{"Queries", (char*) &show_queries, SHOW_FUNC},
- {"Questions", (char*) offsetof(STATUS_VAR, questions), SHOW_LONG_STATUS},
- {"Select_full_join", (char*) offsetof(STATUS_VAR, select_full_join_count), SHOW_LONG_STATUS},
- {"Select_full_range_join", (char*) offsetof(STATUS_VAR, select_full_range_join_count), SHOW_LONG_STATUS},
- {"Select_range", (char*) offsetof(STATUS_VAR, select_range_count), SHOW_LONG_STATUS},
- {"Select_range_check", (char*) offsetof(STATUS_VAR, select_range_check_count), SHOW_LONG_STATUS},
- {"Select_scan", (char*) offsetof(STATUS_VAR, select_scan_count), SHOW_LONG_STATUS},
+ {"Questions", (char*) offsetof(STATUS_VAR, questions), SHOW_LONGLONG_STATUS},
+ {"Select_full_join", (char*) offsetof(STATUS_VAR, select_full_join_count), SHOW_LONGLONG_STATUS},
+ {"Select_full_range_join", (char*) offsetof(STATUS_VAR, select_full_range_join_count), SHOW_LONGLONG_STATUS},
+ {"Select_range", (char*) offsetof(STATUS_VAR, select_range_count), SHOW_LONGLONG_STATUS},
+ {"Select_range_check", (char*) offsetof(STATUS_VAR, select_range_check_count), SHOW_LONGLONG_STATUS},
+ {"Select_scan", (char*) offsetof(STATUS_VAR, select_scan_count), SHOW_LONGLONG_STATUS},
{"Slave_open_temp_tables", (char*) &slave_open_temp_tables, SHOW_LONG},
#ifdef HAVE_REPLICATION
{"Slave_retried_transactions",(char*) &show_slave_retried_trans, SHOW_FUNC},
@@ -7037,11 +7037,11 @@ SHOW_VAR status_vars[]= {
{"Slave_running", (char*) &show_slave_running, SHOW_FUNC},
#endif
{"Slow_launch_threads", (char*) &slow_launch_threads, SHOW_LONG},
- {"Slow_queries", (char*) offsetof(STATUS_VAR, long_query_count), SHOW_LONG_STATUS},
- {"Sort_merge_passes", (char*) offsetof(STATUS_VAR, filesort_merge_passes), SHOW_LONG_STATUS},
- {"Sort_range", (char*) offsetof(STATUS_VAR, filesort_range_count), SHOW_LONG_STATUS},
- {"Sort_rows", (char*) offsetof(STATUS_VAR, filesort_rows), SHOW_LONG_STATUS},
- {"Sort_scan", (char*) offsetof(STATUS_VAR, filesort_scan_count), SHOW_LONG_STATUS},
+ {"Slow_queries", (char*) offsetof(STATUS_VAR, long_query_count), SHOW_LONGLONG_STATUS},
+ {"Sort_merge_passes", (char*) offsetof(STATUS_VAR, filesort_merge_passes), SHOW_LONGLONG_STATUS},
+ {"Sort_range", (char*) offsetof(STATUS_VAR, filesort_range_count), SHOW_LONGLONG_STATUS},
+ {"Sort_rows", (char*) offsetof(STATUS_VAR, filesort_rows), SHOW_LONGLONG_STATUS},
+ {"Sort_scan", (char*) offsetof(STATUS_VAR, filesort_scan_count), SHOW_LONGLONG_STATUS},
#ifdef HAVE_OPENSSL
#ifndef EMBEDDED_LIBRARY
{"Ssl_accept_renegotiates", (char*) &show_ssl_ctx_sess_accept_renegotiate, SHOW_FUNC},
=== modified file 'sql/sql_class.cc'
--- a/sql/sql_class.cc 2011-08-02 08:14:26 +0000
+++ b/sql/sql_class.cc 2011-08-11 08:47:53 +0000
@@ -1405,23 +1405,26 @@ THD::~THD()
from_var from this array
NOTES
- This function assumes that all variables are long/ulong.
+ This function assumes that all variables are longlong/ulonglong.
If this assumption will change, then we have to explictely add
the other variables after the while loop
*/
void add_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var)
{
- ulong *end= (ulong*) ((uchar*) to_var +
- offsetof(STATUS_VAR, last_system_status_var) +
- sizeof(ulong));
- ulong *to= (ulong*) to_var, *from= (ulong*) from_var;
+ int c;
+ ulonglong *end= (ulonglong*) ((uchar*) to_var +
+ offsetof(STATUS_VAR, last_system_status_var) +
+ sizeof(ulonglong));
+ ulonglong *to= (ulonglong*) to_var, *from= (ulonglong*) from_var;
while (to != end)
*(to++)+= *(from++);
- to_var->bytes_received+= from_var->bytes_received;
- to_var->bytes_sent+= from_var->bytes_sent;
+ to_var->com_other+= from_var->com_other;
+
+ for (c= 0; c< SQLCOM_END; c++)
+ to_var->com_stat[(uint) c] += from_var->com_stat[(uint) c];
}
/*
@@ -1434,22 +1437,27 @@ void add_to_status(STATUS_VAR *to_var, S
dec_var minus this array
NOTE
- This function assumes that all variables are long/ulong.
+ This function assumes that all variables are longlong/ulonglong.
*/
void add_diff_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var,
STATUS_VAR *dec_var)
{
- ulong *end= (ulong*) ((uchar*) to_var + offsetof(STATUS_VAR,
- last_system_status_var) +
- sizeof(ulong));
- ulong *to= (ulong*) to_var, *from= (ulong*) from_var, *dec= (ulong*) dec_var;
+ int c;
+ ulonglong *end= (ulonglong*) ((uchar*) to_var + offsetof(STATUS_VAR,
+ last_system_status_var) +
+ sizeof(ulonglong));
+ ulonglong *to= (ulonglong*) to_var,
+ *from= (ulonglong*) from_var,
+ *dec= (ulonglong*) dec_var;
while (to != end)
*(to++)+= *(from++) - *(dec++);
- to_var->bytes_received+= from_var->bytes_received - dec_var->bytes_received;;
- to_var->bytes_sent+= from_var->bytes_sent - dec_var->bytes_sent;
+ to_var->com_other+= from_var->com_other - dec_var->com_other;
+
+ for (c= 0; c< SQLCOM_END; c++)
+ to_var->com_stat[(uint) c] += from_var->com_stat[(uint) c] -dec_var->com_stat[(uint) c];
}
=== modified file 'sql/sql_class.h'
--- a/sql/sql_class.h 2011-08-02 08:14:26 +0000
+++ b/sql/sql_class.h 2011-08-11 08:47:53 +0000
@@ -554,70 +554,75 @@ typedef struct system_variables
typedef struct system_status_var
{
- ulong com_other;
- ulong com_stat[(uint) SQLCOM_END];
- ulong created_tmp_disk_tables;
- ulong created_tmp_tables;
- ulong ha_commit_count;
- ulong ha_delete_count;
- ulong ha_read_first_count;
- ulong ha_read_last_count;
- ulong ha_read_key_count;
- ulong ha_read_next_count;
- ulong ha_read_prev_count;
- ulong ha_read_rnd_count;
- ulong ha_read_rnd_next_count;
+ ulonglong created_tmp_disk_tables;
+ ulonglong created_tmp_tables;
+ ulonglong ha_commit_count;
+ ulonglong ha_delete_count;
+ ulonglong ha_read_first_count;
+ ulonglong ha_read_last_count;
+ ulonglong ha_read_key_count;
+ ulonglong ha_read_next_count;
+ ulonglong ha_read_prev_count;
+ ulonglong ha_read_rnd_count;
+ ulonglong ha_read_rnd_next_count;
/*
This number doesn't include calls to the default implementation and
calls made by range access. The intent is to count only calls made by
BatchedKeyAccess.
*/
- ulong ha_multi_range_read_init_count;
- ulong ha_rollback_count;
- ulong ha_update_count;
- ulong ha_write_count;
- ulong ha_prepare_count;
- ulong ha_discover_count;
- ulong ha_savepoint_count;
- ulong ha_savepoint_rollback_count;
- ulong ha_external_lock_count;
+ ulonglong ha_multi_range_read_init_count;
+ ulonglong ha_rollback_count;
+ ulonglong ha_update_count;
+ ulonglong ha_write_count;
+ ulonglong ha_prepare_count;
+ ulonglong ha_discover_count;
+ ulonglong ha_savepoint_count;
+ ulonglong ha_savepoint_rollback_count;
+ ulonglong ha_external_lock_count;
+#if 0
+ /* Tatiana thinks this may be dead now. */
/* KEY_CACHE parts. These are copies of the original */
- ulong key_blocks_changed;
- ulong key_blocks_used;
- ulong key_cache_r_requests;
- ulong key_cache_read;
- ulong key_cache_w_requests;
- ulong key_cache_write;
+ ulonglong key_blocks_changed;
+ ulonglong key_blocks_used;
+ ulonglong key_cache_r_requests;
+ ulonglong key_cache_read;
+ ulonglong key_cache_w_requests;
+ ulonglong key_cache_write;
/* END OF KEY_CACHE parts */
+#endif
- ulong opened_tables;
- ulong opened_shares;
- ulong select_full_join_count;
- ulong select_full_range_join_count;
- ulong select_range_count;
- ulong select_range_check_count;
- ulong select_scan_count;
- ulong long_query_count;
- ulong filesort_merge_passes;
- ulong filesort_range_count;
- ulong filesort_rows;
- ulong filesort_scan_count;
+ ulonglong opened_tables;
+ ulonglong opened_shares;
+ ulonglong select_full_join_count;
+ ulonglong select_full_range_join_count;
+ ulonglong select_range_count;
+ ulonglong select_range_check_count;
+ ulonglong select_scan_count;
+ ulonglong long_query_count;
+ ulonglong filesort_merge_passes;
+ ulonglong filesort_range_count;
+ ulonglong filesort_rows;
+ ulonglong filesort_scan_count;
/* Prepared statements and binary protocol */
- ulong com_stmt_prepare;
- ulong com_stmt_reprepare;
- ulong com_stmt_execute;
- ulong com_stmt_send_long_data;
- ulong com_stmt_fetch;
- ulong com_stmt_reset;
- ulong com_stmt_close;
+ ulonglong com_stmt_prepare;
+ ulonglong com_stmt_reprepare;
+ ulonglong com_stmt_execute;
+ ulonglong com_stmt_send_long_data;
+ ulonglong com_stmt_fetch;
+ ulonglong com_stmt_reset;
+ ulonglong com_stmt_close;
+
+ ulonglong bytes_received;
+ ulonglong bytes_sent;
/*
Number of statements sent from the client
*/
- ulong questions;
+ ulonglong questions;
+
+ ulong com_other;
+ ulong com_stat[(uint) SQLCOM_END];
- ulonglong bytes_received;
- ulonglong bytes_sent;
/*
IMPORTANT!
SEE last_system_status_var DEFINITION BELOW.
=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc 2011-08-05 10:26:13 +0000
+++ b/sql/sql_parse.cc 2011-08-08 17:07:51 +0000
@@ -2547,6 +2547,13 @@ case SQLCOM_PREPARE:
goto end_with_restore_list;
#endif
/*
+ If no engine type was given, work out the default now
+ rather than at parse-time.
+ */
+ if (!(create_info.used_fields & HA_CREATE_USED_ENGINE))
+ create_info.db_type= create_info.options & HA_LEX_CREATE_TMP_TABLE ?
+ ha_default_temp_handlerton(thd) : ha_default_handlerton(thd);
+ /*
If we are using SET CHARSET without DEFAULT, add an implicit
DEFAULT to not confuse old users. (This may change).
*/
=== modified file 'sql/sql_test.cc'
--- a/sql/sql_test.cc 2011-07-19 15:11:15 +0000
+++ b/sql/sql_test.cc 2011-08-11 08:47:53 +0000
@@ -571,13 +571,13 @@ void mysql_print_status()
process_key_caches(print_key_cache_status);
mysql_mutex_lock(&LOCK_status);
printf("\nhandler status:\n\
-read_key: %10lu\n\
-read_next: %10lu\n\
-read_rnd %10lu\n\
-read_first: %10lu\n\
-write: %10lu\n\
-delete %10lu\n\
-update: %10lu\n",
+read_key: %10llu\n\
+read_next: %10llu\n\
+read_rnd %10llu\n\
+read_first: %10llu\n\
+write: %10llu\n\
+delete %10llu\n\
+update: %10llu\n",
tmp.ha_read_key_count,
tmp.ha_read_next_count,
tmp.ha_read_rnd_count,
@@ -591,7 +591,7 @@ Opened tables: %10lu\n\
Open tables: %10lu\n\
Open files: %10lu\n\
Open streams: %10lu\n",
- tmp.opened_tables,
+ (ulong) tmp.opened_tables,
(ulong) cached_open_tables(),
(ulong) my_file_opened,
(ulong) my_stream_opened);
=== modified file 'sql/sql_yacc.yy'
--- a/sql/sql_yacc.yy 2011-08-05 10:26:13 +0000
+++ b/sql/sql_yacc.yy 2011-08-11 09:12:51 +0000
@@ -2073,9 +2073,6 @@ create:
lex->change=NullS;
memset(&lex->create_info, 0, sizeof(lex->create_info));
lex->create_info.options=$2 | $4;
- lex->create_info.db_type=
- lex->create_info.options & HA_LEX_CREATE_TMP_TABLE ?
- ha_default_temp_handlerton(thd) : ha_default_handlerton(thd);
lex->create_info.default_table_charset= NULL;
lex->name.str= 0;
lex->name.length= 0;
@@ -2086,7 +2083,8 @@ create:
THD *thd= YYTHD;
LEX *lex= thd->lex;
lex->current_select= &lex->select_lex;
- if (!lex->create_info.db_type)
+ if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
+ !lex->create_info.db_type)
{
lex->create_info.db_type=
lex->create_info.options & HA_LEX_CREATE_TMP_TABLE ?
@@ -5082,8 +5080,7 @@ create_table_option:
ENGINE_SYM opt_equal storage_engines
{
Lex->create_info.db_type= $3;
- if ($3)
- Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
+ Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
}
| MAX_ROWS opt_equal ulonglong_num
{
@@ -6883,6 +6880,11 @@ alter_list_item:
{
LEX *lex=Lex;
lex->alter_info.flags|= ALTER_OPTIONS;
+ if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
+ !lex->create_info.db_type)
+ {
+ lex->create_info.used_fields&= ~HA_CREATE_USED_ENGINE;
+ }
}
| FORCE_SYM
{
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (tatjana.nuernberg:3356 to 3358) | Tatjana Azundris Nuernberg | 16 Aug |