diff options
-rw-r--r-- | include/myisam.h | 2 | ||||
-rw-r--r-- | include/mysql/plugin.h | 2 | ||||
-rw-r--r-- | mysql-test/collections/default.experimental | 2 | ||||
-rw-r--r-- | mysql-test/r/subselect4.result | 21 | ||||
-rw-r--r-- | mysql-test/t/subselect4.test | 16 | ||||
-rw-r--r-- | mysys/my_getopt.c | 10 | ||||
-rw-r--r-- | sql/events.cc | 2 | ||||
-rw-r--r-- | sql/events.h | 2 | ||||
-rw-r--r-- | sql/item_cmpfunc.cc | 2 | ||||
-rw-r--r-- | sql/mysqld.cc | 8 | ||||
-rw-r--r-- | sql/mysqld.h | 6 | ||||
-rw-r--r-- | sql/sql_class.cc | 4 | ||||
-rw-r--r-- | sql/sql_class.h | 12 | ||||
-rw-r--r-- | sql/sql_plugin.cc | 8 | ||||
-rw-r--r-- | sql/sys_vars.h | 14 | ||||
-rw-r--r-- | storage/example/ha_example.cc | 2 | ||||
-rw-r--r-- | storage/myisam/mi_static.c | 4 |
17 files changed, 76 insertions, 41 deletions
diff --git a/include/myisam.h b/include/myisam.h index 3efc65a900a..c4076ead403 100644 --- a/include/myisam.h +++ b/include/myisam.h @@ -249,7 +249,7 @@ typedef struct st_columndef /* column information */ extern char * myisam_log_filename; /* Name of logfile */ extern ulong myisam_block_size; -extern uint myisam_concurrent_insert; +extern ulong myisam_concurrent_insert; extern my_bool myisam_flush,myisam_delay_key_write,myisam_single_user; extern my_off_t myisam_max_temp_length; extern ulong myisam_data_pointer_size; diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h index 1a14314b244..19cf0ed050d 100644 --- a/include/mysql/plugin.h +++ b/include/mysql/plugin.h @@ -327,7 +327,7 @@ DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \ #name, comment, check, update, &varname, def, min, max, blk } #define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \ -DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned int) = { \ +DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \ PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \ #name, comment, check, update, &varname, def, typelib } diff --git a/mysql-test/collections/default.experimental b/mysql-test/collections/default.experimental index 800044242ac..7609a4799e3 100644 --- a/mysql-test/collections/default.experimental +++ b/mysql-test/collections/default.experimental @@ -19,7 +19,6 @@ main.mysqlbinlog_row @solaris # Bug#52202 2010-03-22 alik mysqlbinlog main.mysqlbinlog_row_innodb @solaris # Bug#52202 2010-03-22 alik mysqlbinlog_row* fail in daily-trunk on Sol10 x86_64 debug_max main.mysqlbinlog_row_myisam @solaris # Bug#52202 2010-03-22 alik mysqlbinlog_row* fail in daily-trunk on Sol10 x86_64 debug_max main.outfile_loaddata @solaris # Bug#46895 2010-01-20 alik Test "outfile_loaddata" fails (reproducible) -main.plugin* @solaris # Bug#47146 Linking problem with example plugin when dtrace enabled main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun main.type_float @freebsd # Bug#38965 2010-05-04 alik test cases gis-rtree, type_float, type_newdecimal fail in embedded server @@ -32,7 +31,6 @@ rpl.rpl_heartbeat_2slaves # BUG#43828 2009-10-22 luis fails spora rpl.rpl_innodb_bug28430* # Bug#46029 rpl.rpl_innodb_bug30888* @solaris # Bug#47646 2009-09-25 alik rpl.rpl_innodb_bug30888 fails sporadically on Solaris rpl.rpl_killed_ddl @windows # Bug#47638 2010-01-20 alik The rpl_killed_ddl test fails on Windows -rpl.rpl_plugin_load* @solaris # Bug#47146 rpl.rpl_row_sp011* @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun sys_vars.max_sp_recursion_depth_func @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun diff --git a/mysql-test/r/subselect4.result b/mysql-test/r/subselect4.result index dd4bf599ad0..2e638ddb9ab 100644 --- a/mysql-test/r/subselect4.result +++ b/mysql-test/r/subselect4.result @@ -60,6 +60,27 @@ FROM t3 WHERE 1 = 0 GROUP BY 1; DROP TABLE t1,t2,t3; End of 5.0 tests. # +# Bug#54568: create view cause Assertion failed: 0, +# file .\item_subselect.cc, line 836 +# +EXPLAIN SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1249 Select 2 was reduced during optimization +DESCRIBE SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1249 Select 2 was reduced during optimization +# None of the below should crash +CREATE VIEW v1 AS SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +CREATE VIEW v2 AS SELECT 1 LIKE '%' ESCAPE ( 1 IN ( SELECT 1 ) ); +DROP VIEW v1, v2; +# +# End of 5.1 tests. +# +# # Bug#53236 Segfault in DTCollation::set(DTCollation&) # CREATE TABLE t1 ( diff --git a/mysql-test/t/subselect4.test b/mysql-test/t/subselect4.test index fb0f58bf804..a2c71c664c4 100644 --- a/mysql-test/t/subselect4.test +++ b/mysql-test/t/subselect4.test @@ -64,6 +64,22 @@ DROP TABLE t1,t2,t3; --echo End of 5.0 tests. --echo # +--echo # Bug#54568: create view cause Assertion failed: 0, +--echo # file .\item_subselect.cc, line 836 +--echo # +EXPLAIN SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +DESCRIBE SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +--echo # None of the below should crash +CREATE VIEW v1 AS SELECT 1 LIKE ( 1 IN ( SELECT 1 ) ); +CREATE VIEW v2 AS SELECT 1 LIKE '%' ESCAPE ( 1 IN ( SELECT 1 ) ); +DROP VIEW v1, v2; + + +--echo # +--echo # End of 5.1 tests. +--echo # + +--echo # --echo # Bug#53236 Segfault in DTCollation::set(DTCollation&) --echo # diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index e9fa6f6bee2..1c5bf0b6b1c 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -611,16 +611,16 @@ static int setval(const struct my_option *opts, void *value, char *argument, Accept an integer representation of the enumerated item. */ char *endptr; - uint arg= (uint) strtoul(argument, &endptr, 10); + ulong arg= strtoul(argument, &endptr, 10); if (*endptr || arg >= opts->typelib->count) { res= EXIT_ARGUMENT_INVALID; goto ret; } - *(uint*)value= arg; + *(ulong*)value= arg; } else - *(uint*)value= type - 1; + *(ulong*)value= type - 1; } break; case GET_SET: @@ -1016,7 +1016,7 @@ static void init_one_value(const struct my_option *option, void *variable, *((int*) variable)= (int) getopt_ll_limit_value((int) value, option, NULL); break; case GET_ENUM: - *((uint*) variable)= (uint) value; + *((ulong*) variable)= (ulong) value; break; case GET_UINT: *((uint*) variable)= (uint) getopt_ull_limit_value((uint) value, option, NULL); @@ -1292,7 +1292,7 @@ void my_print_variables(const struct my_option *options) printf("\n"); break; case GET_ENUM: - printf("%s\n", get_type(optp->typelib, *(uint*) value)); + printf("%s\n", get_type(optp->typelib, *(ulong*) value)); break; case GET_STR: case GET_STR_ALLOC: /* fall through */ diff --git a/sql/events.cc b/sql/events.cc index 5379ec2c9eb..99304a1c460 100644 --- a/sql/events.cc +++ b/sql/events.cc @@ -76,7 +76,7 @@ Event_queue *Events::event_queue; Event_scheduler *Events::scheduler; Event_db_repository *Events::db_repository; -uint Events::opt_event_scheduler= Events::EVENTS_OFF; +ulong Events::opt_event_scheduler= Events::EVENTS_OFF; mysql_mutex_t Events::LOCK_event_metadata; bool Events::check_system_tables_error= FALSE; diff --git a/sql/events.h b/sql/events.h index c84c37b881d..1482e736d29 100644 --- a/sql/events.h +++ b/sql/events.h @@ -91,7 +91,7 @@ public: */ enum enum_opt_event_scheduler { EVENTS_OFF, EVENTS_ON, EVENTS_DISABLED }; /* Protected using LOCK_global_system_variables only. */ - static uint opt_event_scheduler; + static ulong opt_event_scheduler; static mysql_mutex_t LOCK_event_metadata; static bool check_if_system_tables_error(); static bool start(); diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 85565b735d4..c18b79371df 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -4617,7 +4617,7 @@ bool Item_func_like::fix_fields(THD *thd, Item **ref) return TRUE; } - if (escape_item->const_item()) + if (escape_item->const_item() && !thd->lex->view_prepare_mode) { /* If we are on execution stage */ String *escape_str= escape_item->val_str(&cmp.value1); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index afc515a9d8c..eaa3e27cf29 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -439,10 +439,10 @@ static bool calling_initgroups= FALSE; /**< Used in SIGSEGV handler. */ #endif uint mysqld_port, test_flags, select_errors, dropping_tables, ha_open_options; uint mysqld_port_timeout; -uint delay_key_write_options; +ulong delay_key_write_options; uint protocol_version; uint lower_case_table_names; -uint tc_heuristic_recover= 0; +ulong tc_heuristic_recover= 0; uint volatile thread_count; int32 thread_running; ulong thread_created; @@ -453,7 +453,7 @@ ulong slow_launch_time, slave_open_temp_tables; ulong open_files_limit, max_binlog_size, max_relay_log_size; ulong slave_trans_retries; uint slave_net_timeout; -uint slave_exec_mode_options; +ulong slave_exec_mode_options; ulonglong slave_type_conversions_options; ulong thread_cache_size=0, thread_pool_size= 0; ulong binlog_cache_size=0; @@ -552,7 +552,7 @@ char *mysql_data_home= const_cast<char*>("."); const char *mysql_real_data_home_ptr= mysql_real_data_home; char server_version[SERVER_VERSION_LENGTH]; char *mysqld_unix_port, *opt_mysql_tmpdir; -uint thread_handling; +ulong thread_handling; /** name of reference on left expression in rewritten IN subquery */ const char *in_left_expr_name= "<left expr>"; diff --git a/sql/mysqld.h b/sql/mysqld.h index 22e757e6e8a..9605128166d 100644 --- a/sql/mysqld.h +++ b/sql/mysqld.h @@ -105,7 +105,7 @@ extern uint connection_count; extern my_bool opt_safe_user_create; extern my_bool opt_safe_show_db, opt_local_infile, opt_myisam_use_mmap; extern my_bool opt_slave_compressed_protocol, use_temp_pool; -extern uint slave_exec_mode_options; +extern ulong slave_exec_mode_options; extern ulonglong slave_type_conversions_options; extern my_bool opt_readonly, lower_case_file_system; extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs; @@ -136,7 +136,7 @@ extern my_bool relay_log_purge, opt_innodb_safe_binlog, opt_innodb; extern my_bool relay_log_recovery; extern uint test_flags,select_errors,ha_open_options; extern uint protocol_version, mysqld_port, dropping_tables; -extern uint delay_key_write_options; +extern ulong delay_key_write_options; extern char *opt_logname, *opt_slow_logname; extern char *opt_backup_history_logname, *opt_backup_progress_logname, *opt_backup_settings_name; @@ -300,7 +300,7 @@ extern ulong specialflag; extern uint mysql_data_home_len; extern uint mysql_real_data_home_len; extern const char *mysql_real_data_home_ptr; -extern uint thread_handling; +extern ulong thread_handling; extern MYSQL_PLUGIN_IMPORT char *mysql_data_home; extern char server_version[SERVER_VERSION_LENGTH]; extern MYSQL_PLUGIN_IMPORT char mysql_real_data_home[]; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 60a871e9e88..87935890965 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -3640,7 +3640,7 @@ int THD::decide_logging_format(TABLE_LIST *tables) { DBUG_ENTER("THD::decide_logging_format"); DBUG_PRINT("info", ("query: %s", query())); - DBUG_PRINT("info", ("variables.binlog_format: %u", + DBUG_PRINT("info", ("variables.binlog_format: %lu", variables.binlog_format)); DBUG_PRINT("info", ("lex->get_stmt_unsafe_flags(): 0x%x", lex->get_stmt_unsafe_flags())); @@ -4000,7 +4000,7 @@ int THD::decide_logging_format(TABLE_LIST *tables) DBUG_PRINT("info", ("decision: no logging since " "mysql_bin_log.is_open() = %d " "and (options & OPTION_BIN_LOG) = 0x%llx " - "and binlog_format = %u " + "and binlog_format = %lu " "and binlog_filter->db_ok(db) = %d", mysql_bin_log.is_open(), (variables.option_bits & OPTION_BIN_LOG), diff --git a/sql/sql_class.h b/sql/sql_class.h index b23b65dae2f..e348fbc1ad1 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -114,7 +114,7 @@ extern bool volatile shutdown_in_progress; #define TC_HEURISTIC_RECOVER_COMMIT 1 #define TC_HEURISTIC_RECOVER_ROLLBACK 2 -extern uint tc_heuristic_recover; +extern ulong tc_heuristic_recover; typedef struct st_user_var_events { @@ -426,13 +426,13 @@ typedef struct system_variables ulong log_warnings; ulong group_concat_max_len; - uint binlog_format; ///< binlog format for this thd (see enum_binlog_format) + ulong binlog_format; ///< binlog format for this thd (see enum_binlog_format) my_bool binlog_direct_non_trans_update; my_bool sql_log_bin; - uint completion_type; - uint query_cache_type; - uint tx_isolation; - uint updatable_views_with_limit; + ulong completion_type; + ulong query_cache_type; + ulong tx_isolation; + ulong updatable_views_with_limit; uint max_user_connections; /** In slave thread we need to know in behalf of which diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 7e8c1fed999..e3323260373 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -3025,11 +3025,11 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp, Allocate temporary space for the value of the tristate. This option will have a limited lifetime and is not used beyond server initialization. - GET_ENUM value is an unsigned integer. + GET_ENUM value is an unsigned long integer. */ options[0].value= options[1].value= - (uchar **)alloc_root(mem_root, sizeof(uint)); - *((uint*) options[0].value)= (uint) options[0].def_value; + (uchar **)alloc_root(mem_root, sizeof(ulong)); + *((ulong*) options[0].value)= (ulong) options[0].def_value; options+= 2; } @@ -3328,7 +3328,7 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp, list is always the <plugin name> option value. */ if (!tmp->is_mandatory) - plugin_load_policy= (enum_plugin_load_policy)*(uint*)opts[0].value; + plugin_load_policy= (enum_plugin_load_policy)*(ulong*)opts[0].value; } disable_plugin= (plugin_load_policy == PLUGIN_OFF); diff --git a/sql/sys_vars.h b/sql/sys_vars.h index ca3fc99deba..ee6b429b04a 100644 --- a/sql/sys_vars.h +++ b/sql/sys_vars.h @@ -271,28 +271,28 @@ public: deprecated_version, substitute) { option.var_type= GET_ENUM; - global_var(uint)= def_val; + global_var(ulong)= def_val; DBUG_ASSERT(def_val < typelib.count); - DBUG_ASSERT(size == sizeof(uint)); + DBUG_ASSERT(size == sizeof(ulong)); } bool session_update(THD *thd, set_var *var) { - session_var(thd, uint)= var->save_result.ulonglong_value; + session_var(thd, ulong)= var->save_result.ulonglong_value; return false; } bool global_update(THD *thd, set_var *var) { - global_var(uint)= var->save_result.ulonglong_value; + global_var(ulong)= var->save_result.ulonglong_value; return false; } void session_save_default(THD *thd, set_var *var) - { var->save_result.ulonglong_value= global_var(uint); } + { var->save_result.ulonglong_value= global_var(ulong); } void global_save_default(THD *thd, set_var *var) { var->save_result.ulonglong_value= option.def_value; } uchar *session_value_ptr(THD *thd, LEX_STRING *base) - { return (uchar*)typelib.type_names[session_var(thd, uint)]; } + { return (uchar*)typelib.type_names[session_var(thd, ulong)]; } uchar *global_value_ptr(THD *thd, LEX_STRING *base) - { return (uchar*)typelib.type_names[global_var(uint)]; } + { return (uchar*)typelib.type_names[global_var(ulong)]; } }; /** diff --git a/storage/example/ha_example.cc b/storage/example/ha_example.cc index 810859d2675..306f8eaeccd 100644 --- a/storage/example/ha_example.cc +++ b/storage/example/ha_example.cc @@ -912,7 +912,7 @@ int ha_example::create(const char *name, TABLE *table_arg, struct st_mysql_storage_engine example_storage_engine= { MYSQL_HANDLERTON_INTERFACE_VERSION }; -static uint srv_enum_var= 0; +static ulong srv_enum_var= 0; static ulong srv_ulong_var= 0; const char *enum_var_names[]= diff --git a/storage/myisam/mi_static.c b/storage/myisam/mi_static.c index 073b127f1a3..55967fc9001 100644 --- a/storage/myisam/mi_static.c +++ b/storage/myisam/mi_static.c @@ -33,9 +33,9 @@ uint myisam_quick_table_bits=9; ulong myisam_block_size= MI_KEY_BLOCK_LENGTH; /* Best by test */ my_bool myisam_flush=0, myisam_delay_key_write=0, myisam_single_user=0; #if defined(THREAD) && !defined(DONT_USE_RW_LOCKS) -uint myisam_concurrent_insert= 2; +ulong myisam_concurrent_insert= 2; #else -uint myisam_concurrent_insert= 0; +ulong myisam_concurrent_insert= 0; #endif ulonglong myisam_max_temp_length= MAX_FILE_SIZE; ulong myisam_data_pointer_size=4; |