From 1dd6255ffef901dddcff2191ddf975a2019799d9 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Mon, 27 Jun 2022 14:22:57 +0200 Subject: [PATCH 1/5] MDEV-27691: prequisite enable/disable service connection --- client/mysqltest.cc | 52 ++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 2a6d4265e5929..61bb3822d3620 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -120,6 +120,7 @@ static my_bool opt_mark_progress= 0; static my_bool ps_protocol= 0, ps_protocol_enabled= 0; static my_bool sp_protocol= 0, sp_protocol_enabled= 0; static my_bool view_protocol= 0, view_protocol_enabled= 0; +static my_bool service_connection_enabled= 1; static my_bool cursor_protocol= 0, cursor_protocol_enabled= 0; static my_bool parsing_disabled= 0; static my_bool display_result_vertically= FALSE, display_result_lower= FALSE, @@ -156,6 +157,7 @@ static struct property prop_list[] = { { &display_metadata, 0, 0, 0, "$ENABLED_METADATA" }, { &ps_protocol_enabled, 0, 0, 0, "$ENABLED_PS_PROTOCOL" }, { &view_protocol_enabled, 0, 0, 0, "$ENABLED_VIEW_PROTOCOL"}, + { &service_connection_enabled, 0, 1, 0, "$ENABLED_SERVICE_CONNECTION"}, { &disable_query_log, 0, 0, 1, "$ENABLED_QUERY_LOG" }, { &disable_result_log, 0, 0, 1, "$ENABLED_RESULT_LOG" }, { &disable_warnings, 0, 0, 1, "$ENABLED_WARNINGS" } @@ -171,6 +173,7 @@ enum enum_prop { P_META, P_PS, P_VIEW, + P_CONN, P_QUERY, P_RESULT, P_WARN, @@ -377,6 +380,7 @@ enum enum_commands { Q_START_TIMER, Q_END_TIMER, Q_CHARACTER_SET, Q_DISABLE_PS_PROTOCOL, Q_ENABLE_PS_PROTOCOL, Q_DISABLE_VIEW_PROTOCOL, Q_ENABLE_VIEW_PROTOCOL, + Q_DISABLE_SERVICE_CONNECTION, Q_ENABLE_SERVICE_CONNECTION, Q_ENABLE_NON_BLOCKING_API, Q_DISABLE_NON_BLOCKING_API, Q_DISABLE_RECONNECT, Q_ENABLE_RECONNECT, Q_IF, @@ -465,6 +469,8 @@ const char *command_names[]= "enable_ps_protocol", "disable_view_protocol", "enable_view_protocol", + "disable_service_connection", + "enable_service_connection", "enable_non_blocking_api", "disable_non_blocking_api", "disable_reconnect", @@ -8489,25 +8495,30 @@ int util_query(MYSQL* org_mysql, const char* query){ MYSQL* mysql; DBUG_ENTER("util_query"); - if(!(mysql= cur_con->util_mysql)) + if (service_connection_enabled) { - DBUG_PRINT("info", ("Creating util_mysql")); - if (!(mysql= mysql_init(mysql))) - die("Failed in mysql_init()"); + if(!(mysql= cur_con->util_mysql)) + { + DBUG_PRINT("info", ("Creating util_mysql")); + if (!(mysql= mysql_init(mysql))) + die("Failed in mysql_init()"); - if (opt_connect_timeout) - mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, - (void *) &opt_connect_timeout); + if (opt_connect_timeout) + mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, + (void *) &opt_connect_timeout); - /* enable local infile, in non-binary builds often disabled by default */ - mysql_options(mysql, MYSQL_OPT_LOCAL_INFILE, 0); - mysql_options(mysql, MYSQL_OPT_NONBLOCK, 0); - safe_connect(mysql, "util", org_mysql->host, org_mysql->user, - org_mysql->passwd, org_mysql->db, org_mysql->port, - org_mysql->unix_socket); + /* enable local infile, in non-binary builds often disabled by default */ + mysql_options(mysql, MYSQL_OPT_LOCAL_INFILE, 0); + mysql_options(mysql, MYSQL_OPT_NONBLOCK, 0); + safe_connect(mysql, "util", org_mysql->host, org_mysql->user, + org_mysql->passwd, org_mysql->db, org_mysql->port, + org_mysql->unix_socket); - cur_con->util_mysql= mysql; + cur_con->util_mysql= mysql; + } } + else + mysql= org_mysql; int ret= mysql_query(mysql, query); DBUG_RETURN(ret); @@ -8656,7 +8667,10 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags) Collect warnings from create of the view that should otherwise have been produced when the SELECT was executed */ - append_warnings(&ds_warnings, cur_con->util_mysql); + append_warnings(&ds_warnings, + service_connection_enabled ? + cur_con->util_mysql : + mysql); } dynstr_free(&query_str); @@ -9688,6 +9702,14 @@ int main(int argc, char **argv) case Q_ENABLE_VIEW_PROTOCOL: set_property(command, P_VIEW, view_protocol); break; + case Q_DISABLE_SERVICE_CONNECTION: + set_property(command, P_CONN, 0); + /* Close only util connections */ + close_util_connections(); + break; + case Q_ENABLE_SERVICE_CONNECTION: + set_property(command, P_CONN, view_protocol); + break; case Q_DISABLE_NON_BLOCKING_API: non_blocking_api_enabled= 0; break; From 72ba96a48eb3e99a967e0489cc79f378e865e3fd Mon Sep 17 00:00:00 2001 From: Lena Startseva Date: Thu, 9 Jun 2022 10:32:51 +0700 Subject: [PATCH 2/5] MDEV-27691: make working view-protocol Tests with checking metadata or that cannot be run with the view-protocol are excluded from --view-protocol. For tests that do not allow the use of an additional connection, the util connection is disabled with "--disable_service_connection". Also cases with bugs for --view-protocol are disabled. --- mysql-test/include/concurrent.inc | 20 ++-- mysql-test/include/count_sessions.inc | 4 + mysql-test/include/ctype_E05C.inc | 4 +- mysql-test/include/ctype_common.inc | 2 + mysql-test/include/ctype_datetime.inc | 3 + mysql-test/include/ctype_german.inc | 4 +- mysql-test/include/ctype_like_range_f1f2.inc | 3 + mysql-test/include/ctype_myanmar.inc | 4 + mysql-test/include/ctype_numconv.inc | 5 + mysql-test/include/ctype_pad.inc | 5 +- mysql-test/include/ctype_str_to_date.inc | 3 + mysql-test/include/ctype_unescape.inc | 3 + mysql-test/include/ctype_utf8mb4.inc | 6 ++ mysql-test/include/deadlock.inc | 10 +- mysql-test/include/empty_string_literal.inc | 18 ++++ mysql-test/include/explain_utils.inc | 3 +- mysql-test/include/func_hybrid_type.inc | 3 + mysql-test/include/gis_debug.inc | 8 ++ mysql-test/include/have_csv.inc | 2 + mysql-test/include/have_log_bin.inc | 1 + mysql-test/include/index_merge1.inc | 8 ++ mysql-test/include/mix2.inc | 4 +- mysql-test/include/mysqlhotcopy.inc | 4 +- mysql-test/include/no_view_protocol.inc | 6 ++ mysql-test/include/ps_conv.inc | 2 + mysql-test/include/query_cache.inc | 3 +- mysql-test/include/query_cache_partitions.inc | 4 + mysql-test/include/unsafe_binlog.inc | 11 +- mysql-test/include/update_use_source.inc | 3 + mysql-test/include/weight_string.inc | 4 +- mysql-test/include/weight_string_8140.inc | 4 +- mysql-test/include/weight_string_8EA1.inc | 4 +- mysql-test/include/weight_string_8FA2C3.inc | 4 +- mysql-test/include/weight_string_A1A1.inc | 4 +- mysql-test/include/weight_string_chde.inc | 3 + mysql-test/include/weight_string_euro.inc | 3 + mysql-test/include/weight_string_l1.inc | 3 + mysql-test/include/weight_string_l2.inc | 3 + mysql-test/main/alias.test | 3 + mysql-test/main/alter_table.test | 4 +- mysql-test/main/ansi.test | 3 +- .../main/auto_increment_ranges_innodb.test | 4 +- mysql-test/main/bigint.test | 2 + mysql-test/main/bool.test | 2 + mysql-test/main/cache_innodb.test | 3 +- mysql-test/main/case.test | 3 + mysql-test/main/cast.test | 4 + mysql-test/main/change_user.test | 2 + mysql-test/main/client_xml.test | 1 + mysql-test/main/commit.test | 1 + .../main/concurrent_innodb_safelog.test | 5 +- .../main/concurrent_innodb_unsafelog.test | 4 +- mysql-test/main/create.test | 34 ++++-- mysql-test/main/create_drop_event.test | 1 + mysql-test/main/create_drop_role.test | 1 + mysql-test/main/create_or_replace.test | 8 +- mysql-test/main/cte_nonrecursive.test | 6 ++ mysql-test/main/ctype_big5.test | 7 +- mysql-test/main/ctype_binary.test | 3 + mysql-test/main/ctype_collate.test | 3 + mysql-test/main/ctype_cp932.test | 3 + mysql-test/main/ctype_eucjpms.test | 4 + mysql-test/main/ctype_filename.test | 3 + mysql-test/main/ctype_gb2312.test | 4 + mysql-test/main/ctype_gbk.test | 4 +- mysql-test/main/ctype_latin1_de.test | 4 + mysql-test/main/ctype_latin2.test | 4 +- mysql-test/main/ctype_latin2_ch.test | 9 +- mysql-test/main/ctype_ldml.test | 3 + mysql-test/main/ctype_recoding.test | 12 ++- mysql-test/main/ctype_sjis.test | 20 ++++ mysql-test/main/ctype_swe7.test | 7 ++ mysql-test/main/ctype_tis620.test | 6 +- mysql-test/main/ctype_uca.test | 14 ++- mysql-test/main/ctype_uca_innodb.test | 4 +- mysql-test/main/ctype_ujis.test | 18 +++- mysql-test/main/ctype_upgrade.test | 12 ++- mysql-test/main/ctype_utf16.test | 9 +- mysql-test/main/ctype_utf16_uca.test | 3 +- mysql-test/main/ctype_utf16le.test | 5 + mysql-test/main/ctype_utf32.test | 18 +++- mysql-test/main/ctype_utf32_uca.test | 2 + mysql-test/main/ctype_utf8.test | 3 + mysql-test/main/ctype_utf8mb4.test | 3 + mysql-test/main/ctype_utf8mb4_innodb.test | 3 + .../main/custom_aggregate_functions.test | 3 + mysql-test/main/custom_aggregates_i_s.test | 3 + mysql-test/main/date_formats.test | 3 + mysql-test/main/ddl_i18n_koi8r.test | 2 + mysql-test/main/ddl_i18n_utf8.test | 2 + mysql-test/main/delayed.test | 8 +- mysql-test/main/derived_view.test | 2 + mysql-test/main/drop.test | 4 +- mysql-test/main/dyncol.test | 2 + mysql-test/main/events_2.test | 3 + mysql-test/main/events_bugs.test | 4 + mysql-test/main/events_grant.test | 3 +- mysql-test/main/events_logs_tests.test | 1 + mysql-test/main/events_trans.test | 1 + .../main/fast_prefix_index_fetch_innodb.test | 2 + mysql-test/main/fix_priv_tables.test | 1 + mysql-test/main/flush-innodb.test | 4 + mysql-test/main/flush.test | 4 +- mysql-test/main/flush_logs_not_windows.test | 4 + mysql-test/main/flush_table.test | 4 + mysql-test/main/fulltext.test | 9 +- mysql-test/main/fulltext2.test | 3 + mysql-test/main/fulltext_left_join.test | 3 + mysql-test/main/func_compress.test | 7 ++ mysql-test/main/func_concat.test | 6 ++ mysql-test/main/func_debug.test | 28 +++++ mysql-test/main/func_default.test | 5 + mysql-test/main/func_digest.test | 6 ++ mysql-test/main/func_encrypt_ucs2.test | 3 + mysql-test/main/func_gconcat.test | 8 ++ mysql-test/main/func_group.test | 10 +- mysql-test/main/func_group_innodb.test | 3 + mysql-test/main/func_hybrid_type.test | 39 +++++++ mysql-test/main/func_if.test | 4 +- mysql-test/main/func_in.test | 16 ++- mysql-test/main/func_json.test | 19 ++++ mysql-test/main/func_like.test | 4 + mysql-test/main/func_math.test | 18 ++++ mysql-test/main/func_misc.test | 17 +++ mysql-test/main/func_regexp_pcre.test | 21 +++- mysql-test/main/func_rollback.test | 1 + mysql-test/main/func_sapdb.test | 12 +++ mysql-test/main/func_set.test | 6 ++ mysql-test/main/func_str.test | 101 +++++++++++++++++- mysql-test/main/func_system.test | 3 +- mysql-test/main/func_test.test | 8 +- mysql-test/main/func_time.test | 60 ++++++++++- mysql-test/main/func_time_hires.test | 6 ++ mysql-test/main/get_diagnostics.test | 3 + mysql-test/main/gis-json.test | 13 +++ mysql-test/main/gis-precise.test | 29 ++++- mysql-test/main/gis.test | 45 +++++++- mysql-test/main/grant4.test | 4 + mysql-test/main/grant_4332.test | 4 + mysql-test/main/group_by.test | 35 ++++++ mysql-test/main/handler_read_last.test | 4 + mysql-test/main/having.test | 11 ++ mysql-test/main/implicit_commit.test | 4 + .../main/information_schema_all_engines.test | 4 + mysql-test/main/information_schema_db.test | 4 + mysql-test/main/information_schema_part.test | 2 + mysql-test/main/innodb_ext_key.test | 4 + mysql-test/main/intersect.test | 6 ++ mysql-test/main/invisible_binlog.test | 2 + mysql-test/main/join_cache.test | 29 +++++ mysql-test/main/join_nested.test | 5 + mysql-test/main/join_outer.test | 7 +- mysql-test/main/key.test | 4 +- mysql-test/main/kill-2.test | 3 +- mysql-test/main/kill.test | 4 + mysql-test/main/loaddata.test | 27 ++++- mysql-test/main/lock_view.test | 4 + mysql-test/main/lowercase_table.test | 3 + mysql-test/main/lowercase_table_qcache.test | 2 + mysql-test/main/mdev375.test | 2 + mysql-test/main/mdl.test | 3 +- mysql-test/main/merge_mmap.test | 2 + mysql-test/main/metadata.test | 2 + mysql-test/main/multi_statement.test | 3 + mysql-test/main/multi_update.test | 3 +- mysql-test/main/myisam-optimize.test | 2 + mysql-test/main/myisam.test | 3 +- mysql-test/main/myisam_optimize.test | 2 + mysql-test/main/mysql_upgrade.test | 4 +- mysql-test/main/mysqlcheck.test | 3 + mysql-test/main/no-threads.test | 4 + mysql-test/main/null.test | 17 +++ mysql-test/main/null_key.test | 3 + mysql-test/main/olap.test | 15 +++ mysql-test/main/order_by.test | 5 + mysql-test/main/outfile_loaddata.test | 3 + mysql-test/main/parser.test | 27 +++++ mysql-test/main/partition_explicit_prune.test | 13 ++- mysql-test/main/partition_innodb.test | 14 ++- mysql-test/main/partition_innodb_plugin.test | 3 + .../partition_innodb_semi_consistent.test | 2 + mysql-test/main/partition_symlink.test | 5 + mysql-test/main/plugin.test | 2 + mysql-test/main/pool_of_threads.test | 4 + mysql-test/main/precedence.test | 6 ++ mysql-test/main/processlist.test | 2 + mysql-test/main/profiling.test | 1 + mysql-test/main/ps_1general.test | 5 +- mysql-test/main/ps_ddl.test | 3 + mysql-test/main/query_cache.test | 1 + mysql-test/main/query_cache_debug.test | 3 +- mysql-test/main/query_cache_innodb.test | 3 +- mysql-test/main/query_cache_merge.test | 4 + mysql-test/main/query_cache_with_views.test | 1 + mysql-test/main/range.test | 9 ++ mysql-test/main/range_vs_index_merge.test | 3 +- mysql-test/main/read_only_innodb.test | 1 + mysql-test/main/reopen_temp_table.test | 4 + mysql-test/main/repair.test | 4 +- mysql-test/main/reset_connection.test | 5 +- mysql-test/main/row.test | 3 + mysql-test/main/second_frac-9175.test | 5 + mysql-test/main/select.test | 33 ++++-- mysql-test/main/select_found.test | 5 + mysql-test/main/selectivity.test | 4 +- mysql-test/main/set_statement.test | 2 + mysql-test/main/show_explain.test | 4 + mysql-test/main/show_profile.test | 4 + mysql-test/main/shutdown.test | 3 + mysql-test/main/simultaneous_assignment.test | 7 +- mysql-test/main/single_delete_update.test | 4 + mysql-test/main/sp-anchor-type.test | 4 + mysql-test/main/sp-error.test | 2 + mysql-test/main/sp-lock.test | 3 + mysql-test/main/sp-prelocking.test | 4 +- mysql-test/main/sp-security-anchor-type.test | 7 +- mysql-test/main/sp.test | 12 +++ mysql-test/main/sql_mode.test | 6 +- mysql-test/main/stat_tables.test | 4 + mysql-test/main/statistics.test | 4 + mysql-test/main/subselect.test | 88 ++++++++++++++- mysql-test/main/subselect2.test | 4 + mysql-test/main/subselect3.inc | 3 + mysql-test/main/subselect4.test | 3 + mysql-test/main/subselect_cache.test | 4 + mysql-test/main/subselect_exists2in.test | 13 +++ mysql-test/main/subselect_extra.test | 4 + .../main/subselect_extra_no_semijoin.test | 4 + mysql-test/main/subselect_innodb.test | 18 +++- mysql-test/main/subselect_mat.test | 4 + mysql-test/main/subselect_mat_cost_bugs.test | 3 + mysql-test/main/subselect_sj_mat.test | 8 ++ mysql-test/main/symlink.test | 5 + mysql-test/main/table_elim.test | 5 + mysql-test/main/table_value_constr.test | 23 ++++ mysql-test/main/temp_table.test | 3 + mysql-test/main/temp_table_frm.test | 4 + mysql-test/main/timezone2.test | 17 +++ mysql-test/main/tmp_table_count-7586.test | 4 + mysql-test/main/trigger.test | 2 + mysql-test/main/truncate.test | 5 + mysql-test/main/truncate_notembedded.test | 2 + mysql-test/main/type_bit.test | 6 ++ mysql-test/main/type_bit_innodb.test | 2 + mysql-test/main/type_date.test | 6 ++ mysql-test/main/type_datetime.test | 23 +++- mysql-test/main/type_enum.test | 4 + mysql-test/main/type_float.test | 3 + mysql-test/main/type_newdecimal.test | 28 ++++- mysql-test/main/type_num.test | 2 + mysql-test/main/type_time.test | 6 ++ mysql-test/main/type_year.test | 3 + mysql-test/main/udf.test | 7 ++ mysql-test/main/udf_debug_sync.test | 2 + mysql-test/main/union.test | 20 +++- mysql-test/main/update.test | 3 + mysql-test/main/upgrade.test | 3 + mysql-test/main/user_var.test | 3 + mysql-test/main/userstat-badlogin-4824.test | 4 + mysql-test/main/varbinary.test | 6 ++ mysql-test/main/win.test | 3 + mysql-test/main/win_avg.test | 5 +- mysql-test/main/win_big-mdev-10092.test | 5 + mysql-test/main/win_big-mdev-11697.test | 3 + mysql-test/main/win_big.test | 19 +++- mysql-test/main/win_first_last_value.test | 3 + mysql-test/main/win_nth_value.test | 6 ++ mysql-test/main/win_ntile.test | 3 + mysql-test/main/win_orderby.test | 3 + mysql-test/main/win_percentile.test | 2 + mysql-test/main/win_std.test | 4 + mysql-test/main/win_sum.test | 3 + mysql-test/main/xml.test | 71 +++++++++++- 273 files changed, 1867 insertions(+), 158 deletions(-) create mode 100644 mysql-test/include/no_view_protocol.inc diff --git a/mysql-test/include/concurrent.inc b/mysql-test/include/concurrent.inc index c6d8775af6b82..369b729a87ce1 100644 --- a/mysql-test/include/concurrent.inc +++ b/mysql-test/include/concurrent.inc @@ -64,6 +64,7 @@ drop table if exists t1; --echo ** --echo ** two UPDATE's running and both changing distinct result sets --echo ** +--disable_view_protocol connect (thread1, localhost, mysqltest,,); connection thread1; --echo ** Set up table @@ -149,7 +150,6 @@ drop table if exists t1; connection default; drop table t1; - --echo --echo ** --echo ** two UPDATE's running and one changing result set @@ -237,7 +237,7 @@ drop table t1; connection default; drop table t1; - +--enable_view_protocol --echo --echo ** @@ -315,8 +315,9 @@ drop table t1; --echo ** Begin a new transaction on thread 2 begin; --echo ** Select a range for update. + --disable_view_protocol select * from t1 where tipo=2 FOR UPDATE; - + --enable_view_protocol connection thread1; --echo ** Begin a new transaction on thread 1 begin; @@ -355,6 +356,7 @@ drop table t1; --echo ** --echo ** one UPDATE not changing result set and SELECT ... FOR UPDATE --echo ** +--disable_view_protocol #connect (thread1, localhost, mysqltest,,); connection thread1; --echo ** Set up table @@ -378,7 +380,6 @@ drop table t1; begin; --echo ** Starting SELECT .. FOR UPDATE select * from t1 where tipo=2 FOR UPDATE; - connection thread1; --echo --echo ** Starting new transaction on thread 1 @@ -448,14 +449,15 @@ drop table t1; --echo ** Begin a new transaction on thread 2 begin; select * from t1 where tipo=2 FOR UPDATE; - connection thread1; --echo ** Begin a new transaction on thread 1 begin; --echo ** Selecting a range for update by table scan will be blocked --echo ** because of on-going transaction on thread 2. + --disable_view_protocol --error ER_LOCK_WAIT_TIMEOUT - select * from t1 where tipo=1 FOR UPDATE; + select * from t1 where tipo=1 FOR UPDATE; + --enable_view_protocol connection thread2; --echo ** Table will be unchanged and the select command will not be @@ -478,7 +480,7 @@ drop table t1; connection default; drop table t1; - +--enable_view_protocol --echo --echo ** @@ -564,7 +566,7 @@ drop table t1; # succeding update in the following thread. Also the used status variables '%lock%' and # 'innodb_deleted_rows' and infos in processlist where not sucessful. sleep 1; - + --disable_view_protocol connection thread1; begin; --echo ** Update on t1 will cause a table scan which will be blocked because @@ -587,7 +589,7 @@ drop table t1; reap; select * from t1; send commit; - +--enable_view_protocol connection thread1; commit; diff --git a/mysql-test/include/count_sessions.inc b/mysql-test/include/count_sessions.inc index 4728e39ce74ea..65098e2731a94 100644 --- a/mysql-test/include/count_sessions.inc +++ b/mysql-test/include/count_sessions.inc @@ -18,4 +18,8 @@ # Created: 2009-01-14 mleich # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + let $count_sessions= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1); diff --git a/mysql-test/include/ctype_E05C.inc b/mysql-test/include/ctype_E05C.inc index 9ef35a989346f..7186104466472 100644 --- a/mysql-test/include/ctype_E05C.inc +++ b/mysql-test/include/ctype_E05C.inc @@ -81,6 +81,8 @@ DROP TABLE t1; # even if character_set_connection is big5/cp932/gbk/sjis. # Note, the other 0x5C which is before 0xE05C is also treated as escape. # +#check after fix MDEV-29290 +--disable_view_protocol SET character_set_client=binary, character_set_results=binary; SELECT @@character_set_client, @@character_set_connection, @@character_set_results; SELECT HEX('ΰ\['), HEX('\ΰ\['); @@ -105,7 +107,7 @@ SHOW CREATE TABLE t1; INSERT INTO t1 VALUES ('ΰ\['),('\ΰ\['); SELECT HEX(a) FROM t1; DROP TABLE t1; - +--enable_view_protocol --echo # Start of ctype_E05C.inc diff --git a/mysql-test/include/ctype_common.inc b/mysql-test/include/ctype_common.inc index a39c25f2cc8a3..a0b3dd9545104 100644 --- a/mysql-test/include/ctype_common.inc +++ b/mysql-test/include/ctype_common.inc @@ -67,10 +67,12 @@ drop table t1; --echo # --echo # MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found --echo # +--disable_service_connection SET character_set_client=latin1; SET character_set_connection= @test_character_set; SET collation_connection= @test_collation; SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +--enable_service_connection # # Bug#27580 SPACE() function collation bug? diff --git a/mysql-test/include/ctype_datetime.inc b/mysql-test/include/ctype_datetime.inc index f4ec2e81ea359..7fab2b18c1893 100644 --- a/mysql-test/include/ctype_datetime.inc +++ b/mysql-test/include/ctype_datetime.inc @@ -18,6 +18,8 @@ SET time_zone=default; # TODO: remove "--disable_ps_protocol" when MDEV-5444 is fixed --disable_ps_protocol +#remove "--disable_view_protocol" in 10.6 version +--disable_view_protocol SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY); SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY); SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY); @@ -55,3 +57,4 @@ SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERV SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY; SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY; DROP TABLE t1; +--enable_view_protocol diff --git a/mysql-test/include/ctype_german.inc b/mysql-test/include/ctype_german.inc index 0f8c995a4722f..3985216a8b4a2 100644 --- a/mysql-test/include/ctype_german.inc +++ b/mysql-test/include/ctype_german.inc @@ -46,6 +46,8 @@ INSERT INTO t1 VALUES (_latin1 0x9C), (_latin1 0x8C); # # Check order # +#enable after fix MDEV-29290 +--disable_view_protocol select s1, hex(s1) from t1 order by s1, binary s1; select group_concat(s1 order by binary s1) from t1 group by s1; @@ -53,7 +55,7 @@ SELECT s1, hex(s1), hex(weight_string(s1)) FROM t1 ORDER BY s1, BINARY(s1); SELECT s1, hex(s1) FROM t1 WHERE s1='ae' ORDER BY s1, BINARY(s1); drop table t1; - +--enable_view_protocol # # Check filesort for 'S' and "U+00DF SHARP S", diff --git a/mysql-test/include/ctype_like_range_f1f2.inc b/mysql-test/include/ctype_like_range_f1f2.inc index 54ea1b4c66589..def341e8d5ed0 100644 --- a/mysql-test/include/ctype_like_range_f1f2.inc +++ b/mysql-test/include/ctype_like_range_f1f2.inc @@ -17,9 +17,12 @@ INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +#check after fix MDEV-29290 +--disable_view_protocol # Check pattern (important for ucs2, utf16, utf32) SELECT hex(concat(repeat(0xF1F2, 10), '%')); --echo 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); DROP TABLE t1; +--enable_view_protocol diff --git a/mysql-test/include/ctype_myanmar.inc b/mysql-test/include/ctype_myanmar.inc index 82dce1335a05f..a305430835ff1 100644 --- a/mysql-test/include/ctype_myanmar.inc +++ b/mysql-test/include/ctype_myanmar.inc @@ -1293,7 +1293,11 @@ INSERT INTO t1 (s1) VALUES (_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C103910181000103A /* tea */); +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol + SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; +--enable_view_protocol DROP TABLE t1; diff --git a/mysql-test/include/ctype_numconv.inc b/mysql-test/include/ctype_numconv.inc index 07298b1d47b04..db9a9b7f5c0b6 100644 --- a/mysql-test/include/ctype_numconv.inc +++ b/mysql-test/include/ctype_numconv.inc @@ -1,3 +1,7 @@ +#remove this include after fix MDEV-27871 +# maybe some tests need to be excluded separately after fix +--source include/no_view_protocol.inc + SET TIME_ZONE = _latin1 '+03:00'; --echo # @@ -1631,6 +1635,7 @@ SELECT charset(@x), collation(@x); --echo # --echo # Bug#54916 GROUP_CONCAT + IFNULL truncates output --echo # + SELECT @@collation_connection; # ENGINE=MYISAM is very important to make sure "SYSTEM" join type # is in use, which will create instances of Item_copy. diff --git a/mysql-test/include/ctype_pad.inc b/mysql-test/include/ctype_pad.inc index 4cefc575cdd0c..a18876145df82 100644 --- a/mysql-test/include/ctype_pad.inc +++ b/mysql-test/include/ctype_pad.inc @@ -52,13 +52,14 @@ DROP TABLE t1; --echo # --echo # IF, CASE, LEAST --echo # - +#enable after fix MDEV-27871 +--disable_view_protocol eval SELECT IF('abc' COLLATE $coll = 'abc ', 'pad', 'nopad'); eval SELECT CASE 'abc' COLLATE $coll WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; eval SELECT CASE WHEN 'abc' COLLATE $coll = 'abc ' THEN 'pad' ELSE 'nopad' END; eval SELECT HEX(LEAST('abc ' COLLATE $coll, 'abc ')); eval SELECT HEX(GREATEST('abc ' COLLATE $coll, 'abc ')); - +--enable_view_protocol --echo # --echo # Collation mix --echo # diff --git a/mysql-test/include/ctype_str_to_date.inc b/mysql-test/include/ctype_str_to_date.inc index 62adb05b094cb..fc7d6801adf85 100644 --- a/mysql-test/include/ctype_str_to_date.inc +++ b/mysql-test/include/ctype_str_to_date.inc @@ -3,7 +3,10 @@ --echo # SELECT @@character_set_connection, HEX(CAST(_utf8'Γ·' AS CHAR)); +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol SELECT STR_TO_DATE(CAST(_utf8'2001Γ·01Γ·01' AS CHAR),CAST(_utf8'%YΓ·%mΓ·%d' AS CHAR)); +--enable_view_protocol CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; SHOW COLUMNS FROM t1; INSERT INTO t1 VALUES (_utf8'2001Γ·01Γ·01',_utf8'%YΓ·%mΓ·%d'); diff --git a/mysql-test/include/ctype_unescape.inc b/mysql-test/include/ctype_unescape.inc index 171843ff66a16..d7a8a27509a44 100644 --- a/mysql-test/include/ctype_unescape.inc +++ b/mysql-test/include/ctype_unescape.inc @@ -309,12 +309,15 @@ CALL p2(); --disable_warnings # All records marked with '[BAD]' mean that the string was unescaped # in a unexpected way, that means there is a bug in UNESCAPE() above. +#check after fix MDEV-29290 +--disable_view_protocol SELECT HEX(a),HEX(b), CONCAT(unescape_type(a,b), wellformedness(a,b), mysql_real_escape_string_generated(a), IF(UNESCAPE(a)<>b,CONCAT('[BAD',HEX(UNESCAPE(a)),']'),'')) AS comment FROM t1 ORDER BY LENGTH(a),a; +--enable_view_protocol --enable_warnings DROP TABLE t1; DROP PROCEDURE p1; diff --git a/mysql-test/include/ctype_utf8mb4.inc b/mysql-test/include/ctype_utf8mb4.inc index d24ee2fafeba8..436b0f2782fea 100644 --- a/mysql-test/include/ctype_utf8mb4.inc +++ b/mysql-test/include/ctype_utf8mb4.inc @@ -1,6 +1,12 @@ # # Tests with the utf8mb4 character set # + +# Tests will be skipped for the view protocol because the view protocol uses +# an additional util connection and don't use for this nessesary configurations +# Also need to resolve MDEV-27871 +-- source include/no_view_protocol.inc + --source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2; diff --git a/mysql-test/include/deadlock.inc b/mysql-test/include/deadlock.inc index 2fa61f48624af..aa71444544815 100644 --- a/mysql-test/include/deadlock.inc +++ b/mysql-test/include/deadlock.inc @@ -9,7 +9,7 @@ # old name was t/innodb-deadlock.test # main code went into include/deadlock.inc # - +--disable_service_connection connect (con1,localhost,root,,); connect (con2,localhost,root,,); @@ -20,7 +20,7 @@ drop table if exists t1,t2; # # Testing of FOR UPDATE # - +--disable_view_protocol connection con1; eval create table t1 (id integer, x integer) engine = $engine_type; insert into t1 values(0, 0); @@ -49,10 +49,11 @@ select * from t1; commit; drop table t1; +--enable_view_protocol # # Testing of FOR UPDATE # - +--disable_view_protocol connection con1; eval create table t1 (id integer, x integer) engine = $engine_type; eval create table t2 (b integer, a integer) engine = $engine_type; @@ -125,7 +126,7 @@ connection default; disconnect con1; disconnect con2; drop table t1, t2; - +--enable_view_protocol --echo End of 4.1 tests # @@ -152,3 +153,4 @@ drop table if exists a; set storage_engine=default; --echo End of 5.0 tests. +--enable_service_connection diff --git a/mysql-test/include/empty_string_literal.inc b/mysql-test/include/empty_string_literal.inc index f02b626a48446..9ccedde6dce98 100644 --- a/mysql-test/include/empty_string_literal.inc +++ b/mysql-test/include/empty_string_literal.inc @@ -4,6 +4,12 @@ SET SESSION character_set_client=cp1250; --echo # --echo # Test litteral --echo # + +#enable view protocol after fix MDEV-27871 and +# it is necessary that the view protocol uses the same connection, +# not util connection +--disable_view_protocol + SET sql_mode=@mode; select @@sql_mode; SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); @@ -12,6 +18,8 @@ SET sql_mode=default; SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); SELECT CHARSET(NULLIF('','')),NULLIF('',''); + + --echo # --echo # Test NCHAR litteral --echo # @@ -22,6 +30,8 @@ SET sql_mode=default; SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); + + --echo # --echo # Test CHARSET prefix litteral --echo # @@ -52,6 +62,8 @@ SELECT '' '' '',CHARSET('' '' ''); SELECT _latin1'' '' '',CHARSET(_latin1'' '' ''); SELECT N'' '' '',CHARSET(N'' '' ''); +--enable_view_protocol + --echo # --echo # UNION - implicit group by --echo # @@ -70,10 +82,16 @@ UNION SELECT 1 , _cp1250 '' ORDER BY 1; +# it is necessary that the view protocol uses the same connection, +# not util connection +--disable_view_protocol + SELECT NULLIF(_cp1250 '',_cp1250 '') UNION SELECT NULLIF(N'',N''); +--enable_view_protocol + --error ER_CANT_AGGREGATE_2COLLATIONS SELECT 1 , _latin2 '' UNION diff --git a/mysql-test/include/explain_utils.inc b/mysql-test/include/explain_utils.inc index 505798e432a51..4333319c364aa 100644 --- a/mysql-test/include/explain_utils.inc +++ b/mysql-test/include/explain_utils.inc @@ -26,7 +26,7 @@ --echo # query: $query --echo # select: $select --echo # - +--disable_view_protocol if ($select) { --disable_query_log --eval $select INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/before_explain.txt' @@ -159,3 +159,4 @@ SHOW STATUS WHERE (Variable_name LIKE 'Sort%' OR --enable_query_log --echo +--enable_view_protocol diff --git a/mysql-test/include/func_hybrid_type.inc b/mysql-test/include/func_hybrid_type.inc index 0eed936db3824..f4da357a5fa89 100644 --- a/mysql-test/include/func_hybrid_type.inc +++ b/mysql-test/include/func_hybrid_type.inc @@ -1,5 +1,7 @@ # "mtr --ps" returns different values in "Max length" --disable_ps_protocol +# view protocol createincorrect table name +--disable_view_protocol --enable_metadata --vertical_results SELECT @@ -39,6 +41,7 @@ FROM t1; --horizontal_results --disable_metadata --enable_ps_protocol +--enable_view_protocol CREATE TABLE t2 AS SELECT a AS ___________a, diff --git a/mysql-test/include/gis_debug.inc b/mysql-test/include/gis_debug.inc index c81932ef90c3c..813ae252070b0 100644 --- a/mysql-test/include/gis_debug.inc +++ b/mysql-test/include/gis_debug.inc @@ -119,6 +119,8 @@ CALL p1(-1, 'GeometryCollection(Point(9 9),LineString(1 5,0 0),Polygon((2 2,2 8, --enable_query_log +#enable after fix MDEV-27871 +--disable_view_protocol SELECT ST_CONTAINS( GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('POINT(5 10)')); @@ -138,6 +140,7 @@ SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 --echo # SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)); +--enable_view_protocol --echo # --echo # Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER @@ -145,6 +148,9 @@ SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 DO ST_BUFFER(ST_GEOMCOLLFROMTEXT('linestring(1 1,2 2)'),''); +#enable after fix MDEV-27871 +--disable_view_protocol + SELECT ST_WITHIN( LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '), ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '), @@ -159,3 +165,5 @@ SELECT ST_NUMINTERIORRINGS( SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))); + +--enable_view_protocol diff --git a/mysql-test/include/have_csv.inc b/mysql-test/include/have_csv.inc index 4b43d41f22f73..fef2d6fa2c50d 100644 --- a/mysql-test/include/have_csv.inc +++ b/mysql-test/include/have_csv.inc @@ -1,3 +1,5 @@ +-- source include/no_view_protocol.inc + disable_query_log; --require include/true.require select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'csv'; diff --git a/mysql-test/include/have_log_bin.inc b/mysql-test/include/have_log_bin.inc index fd5dc66e41629..f8733aa7876a3 100644 --- a/mysql-test/include/have_log_bin.inc +++ b/mysql-test/include/have_log_bin.inc @@ -7,6 +7,7 @@ # source include/have_log_bin.inc; source include/not_embedded.inc; +-- source include/no_view_protocol.inc if (`select not @@log_bin`) { skip Test requires: 'have_log_bin'; diff --git a/mysql-test/include/index_merge1.inc b/mysql-test/include/index_merge1.inc index ebadb5077ae53..74691cfe21711 100644 --- a/mysql-test/include/index_merge1.inc +++ b/mysql-test/include/index_merge1.inc @@ -297,6 +297,10 @@ select * from t0 where key1 < 3 or key2 < 4; select count(*) from t0; # Test for BUG#4177 + +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol + drop table t4; create table t4 (a int); insert into t4 values (1),(4),(3); @@ -346,6 +350,8 @@ set join_buffer_size= @save_join_buffer_size; drop table t0, t1, t2, t3, t4; +--enable_view_protocol + # BUG#16166 CREATE TABLE t1 ( cola char(3) not null, colb char(3) not null, filler char(200), @@ -409,6 +415,7 @@ drop table t1, t2, t3; # # BUG#20256 - LOCK WRITE - MyISAM # +--disable_service_connection CREATE TABLE t1(a INT); INSERT INTO t1 VALUES(1); CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b)); @@ -437,6 +444,7 @@ INSERT INTO t2(a,b) VALUES(1,2); SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1; UNLOCK TABLES; DROP TABLE t1, t2; +--enable_service_connection # # BUG#29740: HA_KEY_SCAN_NOT_ROR wasn't set for HEAP engine diff --git a/mysql-test/include/mix2.inc b/mysql-test/include/mix2.inc index ed06e436eadb3..9465d578208f7 100644 --- a/mysql-test/include/mix2.inc +++ b/mysql-test/include/mix2.inc @@ -157,7 +157,7 @@ drop table t1; # Test of reading on secondary key with may be null - +--disable_view_protocol eval create table t1 (a int,b varchar(20),key(a)) engine=$engine_type; insert into t1 values (1,""), (2,"testing"); select * from t1 where a = 1; @@ -289,7 +289,7 @@ drop table t1; rename table t2 to t1; drop table t1; set autocommit=1; - +--enable_view_protocol # # The following simple tests failed at some point # diff --git a/mysql-test/include/mysqlhotcopy.inc b/mysql-test/include/mysqlhotcopy.inc index 2fc14d599d949..481ebc0262288 100644 --- a/mysql-test/include/mysqlhotcopy.inc +++ b/mysql-test/include/mysqlhotcopy.inc @@ -23,7 +23,7 @@ if (!$MYSQLHOTCOPY) # be skipped if Perl modules required by the mysqlhotcopy tool are not # found when the script is run this way. - +--disable_service_connection let $MYSQLD_DATADIR= `SELECT @@datadir`; --disable_warnings DROP DATABASE IF EXISTS hotcopy_test; @@ -134,4 +134,4 @@ DROP DATABASE hotcopy_test_cpy; DROP DATABASE hotcopy_test; DROP DATABASE hotcopy_save; DROP DATABASE hotcopy_save_old; - +--enable_service_connection diff --git a/mysql-test/include/no_view_protocol.inc b/mysql-test/include/no_view_protocol.inc new file mode 100644 index 0000000000000..9e5797835df23 --- /dev/null +++ b/mysql-test/include/no_view_protocol.inc @@ -0,0 +1,6 @@ +# The file with expected results fits only to a run without +# view-protocol. +if (`SELECT $VIEW_PROTOCOL > 0`) +{ + --skip Test requires: view-protocol disabled +} \ No newline at end of file diff --git a/mysql-test/include/ps_conv.inc b/mysql-test/include/ps_conv.inc index d31f41ef39d52..e84becec01028 100644 --- a/mysql-test/include/ps_conv.inc +++ b/mysql-test/include/ps_conv.inc @@ -77,7 +77,9 @@ show create table t5 ; --vertical_results --enable_metadata --disable_ps_protocol +--disable_view_protocol select * from t5 ; +--enable_view_protocol --enable_ps_protocol --disable_metadata --horizontal_results diff --git a/mysql-test/include/query_cache.inc b/mysql-test/include/query_cache.inc index fcb9c2494d4cb..cd99cac799cb4 100644 --- a/mysql-test/include/query_cache.inc +++ b/mysql-test/include/query_cache.inc @@ -14,7 +14,7 @@ # old name was innodb_cache.test # main code went into include/query_cache.inc # - +--disable_view_protocol SET global query_cache_type=ON; SET local query_cache_type=ON; eval SET SESSION STORAGE_ENGINE = $engine_type; @@ -191,3 +191,4 @@ set @@global.query_cache_size = @save_query_cache_size; drop table t2; SET global query_cache_type=default; +--enable_view_protocol diff --git a/mysql-test/include/query_cache_partitions.inc b/mysql-test/include/query_cache_partitions.inc index c69356f907d3e..d97d9db27b01f 100644 --- a/mysql-test/include/query_cache_partitions.inc +++ b/mysql-test/include/query_cache_partitions.inc @@ -4,6 +4,10 @@ # $engine_type -- storage engine to be tested # have to be set before sourcing this script. +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + SET global query_cache_type=ON; SET local query_cache_type=ON; eval SET SESSION STORAGE_ENGINE = $engine_type; diff --git a/mysql-test/include/unsafe_binlog.inc b/mysql-test/include/unsafe_binlog.inc index 2fc2ad77bc9eb..4c74845e32f2e 100644 --- a/mysql-test/include/unsafe_binlog.inc +++ b/mysql-test/include/unsafe_binlog.inc @@ -21,7 +21,7 @@ # Test cases for bug#15650 # DELETE with LEFT JOIN crashes server with innodb_locks_unsafe_for_binlog # - +--disable_service_connection --disable_warnings drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; --enable_warnings @@ -52,15 +52,19 @@ eval create table t1(a int not null, b int, primary key(a)) engine = $engine_typ insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2),(7,3); commit; set autocommit = 0; +--disable_view_protocol select * from t1 lock in share mode; +--enable_view_protocol update t1 set b = 5 where b = 1; connection b; set autocommit = 0; # # S-lock to records (2,2),(4,2), and (6,2) should not be released in a update # +--disable_view_protocol --error ER_LOCK_WAIT_TIMEOUT select * from t1 where a = 2 and b = 2 for update; +--enable_view_protocol connection a; commit; connection b; @@ -113,7 +117,9 @@ eval create table t2(d int not null, e int, primary key(d)) engine = $engine_typ insert into t2 values (8,6),(12,1),(3,1); commit; set autocommit = 0; +--disable_view_protocol select * from t2 for update; +--enable_view_protocol connection b; set autocommit = 0; insert into t1 select * from t2; @@ -171,7 +177,9 @@ eval create table t9(d int not null, e int, primary key(d)) engine = $engine_typ insert into t9 values (8,6),(12,1),(3,1); commit; set autocommit = 0; +--disable_view_protocol select * from t2 for update; +--enable_view_protocol connection b; set autocommit = 0; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; @@ -263,3 +271,4 @@ disconnect h; disconnect i; disconnect j; drop table t1, t2, t3, t5, t6, t8, t9; +--enable_service_connection diff --git a/mysql-test/include/update_use_source.inc b/mysql-test/include/update_use_source.inc index 864b58e5d7f3a..3c487704233c1 100644 --- a/mysql-test/include/update_use_source.inc +++ b/mysql-test/include/update_use_source.inc @@ -4,6 +4,8 @@ --echo # Update a with value from subquery on the same table, no search clause. ALL access --echo # +#Enable view protocol after fix MDEV-29207 +--disable_view_protocol start transaction; --enable_info ONCE update t1 @@ -145,3 +147,4 @@ update t1 order by c3 desc limit 2; select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1 ; rollback; +--enable_view_protocol diff --git a/mysql-test/include/weight_string.inc b/mysql-test/include/weight_string.inc index 1ae8801c56049..78c013d7d0218 100644 --- a/mysql-test/include/weight_string.inc +++ b/mysql-test/include/weight_string.inc @@ -33,7 +33,8 @@ DROP TABLE t1; # # End of MDEV-5180 # - +#enable after fix MDEV-29290 +--disable_view_protocol select hex(weight_string('a')); select hex(weight_string('A')); select hex(weight_string('abc')); @@ -64,3 +65,4 @@ select hex(weight_string('abc', 3, 4, 0xC0)); select hex(weight_string('abc', 4, 4, 0xC0)); select hex(weight_string('abc', 5, 4, 0xC0)); select hex(weight_string('abc',25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_8140.inc b/mysql-test/include/weight_string_8140.inc index f91d40a1381e1..5e1351e368005 100644 --- a/mysql-test/include/weight_string_8140.inc +++ b/mysql-test/include/weight_string_8140.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select collation(cast(0x8140 as char)); select hex(weight_string(cast(0x6141 as char))); select hex(weight_string(cast(0x8140 as char))); @@ -33,4 +35,4 @@ select hex(weight_string(cast(0x814081408140 as char), 3, 4, 0xC0)); select hex(weight_string(cast(0x814081408140 as char), 4, 4, 0xC0)); select hex(weight_string(cast(0x814081408140 as char), 5, 4, 0xC0)); select hex(weight_string(cast(0x814081408140 as char),25, 4, 0xC0)); - +--enable_view_protocol diff --git a/mysql-test/include/weight_string_8EA1.inc b/mysql-test/include/weight_string_8EA1.inc index 0396fc9d808fb..95a502932fdf6 100644 --- a/mysql-test/include/weight_string_8EA1.inc +++ b/mysql-test/include/weight_string_8EA1.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select collation(cast(0xA1A1 as char)); select hex(weight_string(cast(0x6141 as char))); select hex(weight_string(cast(0x8EA1 as char))); @@ -33,4 +35,4 @@ select hex(weight_string(cast(0x8EA18EA18EA1 as char), 3, 4, 0xC0)); select hex(weight_string(cast(0x8EA18EA18EA1 as char), 4, 4, 0xC0)); select hex(weight_string(cast(0x8EA18EA18EA1 as char), 5, 4, 0xC0)); select hex(weight_string(cast(0x8EA18EA18EA1 as char),25, 4, 0xC0)); - +--enable_view_protocol diff --git a/mysql-test/include/weight_string_8FA2C3.inc b/mysql-test/include/weight_string_8FA2C3.inc index 936b2e6c5e095..bce5c81640652 100644 --- a/mysql-test/include/weight_string_8FA2C3.inc +++ b/mysql-test/include/weight_string_8FA2C3.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select collation(cast(0x8FA2C3 as char)); select hex(weight_string(cast(0x6141 as char))); select hex(weight_string(cast(0x8FA2C3 as char))); @@ -33,4 +35,4 @@ select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 3, 4, 0xC0)); select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 4, 4, 0xC0)); select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 5, 4, 0xC0)); select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char),25, 4, 0xC0)); - +--enable_view_protocol diff --git a/mysql-test/include/weight_string_A1A1.inc b/mysql-test/include/weight_string_A1A1.inc index 34ace06d203c5..8a5111065ba82 100644 --- a/mysql-test/include/weight_string_A1A1.inc +++ b/mysql-test/include/weight_string_A1A1.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select collation(cast(0xA1A1 as char)); select hex(weight_string(cast(0x6141 as char))); select hex(weight_string(cast(0xA1A1 as char))); @@ -33,4 +35,4 @@ select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 3, 4, 0xC0)); select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 4, 4, 0xC0)); select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 5, 4, 0xC0)); select hex(weight_string(cast(0xA1A1A1A1A1A1 as char),25, 4, 0xC0)); - +--enable_view_protocol diff --git a/mysql-test/include/weight_string_chde.inc b/mysql-test/include/weight_string_chde.inc index 97c929605f9b2..54852a8c203d2 100644 --- a/mysql-test/include/weight_string_chde.inc +++ b/mysql-test/include/weight_string_chde.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select @@collation_connection; select collation(cast(_latin1 0xDF as char)); select hex(weight_string('s')); @@ -57,3 +59,4 @@ select hex(weight_string(cast(_latin1 0xDF6368 as char), 2, 4,0xC0)); select hex(weight_string(cast(_latin1 0xDF6368 as char), 3, 4,0xC0)); select hex(weight_string(cast(_latin1 0xDF6368 as char), 4, 4,0xC0)); select hex(weight_string(cast(_latin1 0xDF6368 as char),25, 4,0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_euro.inc b/mysql-test/include/weight_string_euro.inc index e888bdc3df0c2..835c515b6be45 100644 --- a/mysql-test/include/weight_string_euro.inc +++ b/mysql-test/include/weight_string_euro.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select @@collation_connection; select hex(weight_string(cast(_latin1 0x80 as char))); select hex(weight_string(cast(_latin1 0x808080 as char))); @@ -28,3 +30,4 @@ select hex(weight_string(cast(_latin1 0x808080 as char), 3, 4, 0xC0)); select hex(weight_string(cast(_latin1 0x808080 as char), 4, 4, 0xC0)); select hex(weight_string(cast(_latin1 0x808080 as char), 5, 4, 0xC0)); select hex(weight_string(cast(_latin1 0x808080 as char),25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_l1.inc b/mysql-test/include/weight_string_l1.inc index f5ad279e563f3..20b353c72bfe5 100644 --- a/mysql-test/include/weight_string_l1.inc +++ b/mysql-test/include/weight_string_l1.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select @@collation_connection; select hex(weight_string('a' LEVEL 1)); select hex(weight_string('A' LEVEL 1)); @@ -8,3 +10,4 @@ select hex(weight_string('abc' as char(5) LEVEL 1)); select hex(weight_string('abc' as char(5) LEVEL 1 REVERSE)); select hex(weight_string('abc' as char(5) LEVEL 1 DESC)); select hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_l2.inc b/mysql-test/include/weight_string_l2.inc index 1802fcc9c7947..28f90aa5789f9 100644 --- a/mysql-test/include/weight_string_l2.inc +++ b/mysql-test/include/weight_string_l2.inc @@ -1,3 +1,5 @@ +#enable after fix MDEV-29290 +--disable_view_protocol select @@collation_connection; select hex(weight_string('a' LEVEL 2)); select hex(weight_string('A' LEVEL 2)); @@ -5,3 +7,4 @@ select hex(weight_string('abc' LEVEL 2)); select hex(weight_string('abc' as char(2) LEVEL 2)); select hex(weight_string('abc' as char(3) LEVEL 2)); select hex(weight_string('abc' as char(5) LEVEL 2)); +--disable_view_protocol diff --git a/mysql-test/main/alias.test b/mysql-test/main/alias.test index f6c44accff37b..ce90979dcdb8b 100644 --- a/mysql-test/main/alias.test +++ b/mysql-test/main/alias.test @@ -1,3 +1,6 @@ +#remove this include after fix MDEV-27871 +--source include/no_view_protocol.inc + --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings diff --git a/mysql-test/main/alter_table.test b/mysql-test/main/alter_table.test index fd50366311f7f..77c27700d9881 100644 --- a/mysql-test/main/alter_table.test +++ b/mysql-test/main/alter_table.test @@ -783,6 +783,8 @@ drop table t1; # Unix/Windows and transactional/non-transactional tables). # See also innodb_mysql.test # + +--disable_service_connection --disable_warnings drop table if exists t1, t2, t3; --enable_warnings @@ -825,7 +827,7 @@ unlock tables; insert into t1 values (); select * from t1; drop tables t1, t3; - +--enable_service_connection # # Bug#18775 - Temporary table from alter table visible to other threads diff --git a/mysql-test/main/ansi.test b/mysql-test/main/ansi.test index 0620465728bc6..19dc4ff07698d 100644 --- a/mysql-test/main/ansi.test +++ b/mysql-test/main/ansi.test @@ -5,7 +5,7 @@ --disable_warnings drop table if exists t1; --enable_warnings - +--disable_service_connection set sql_mode="MySQL40"; select @@sql_mode; set @@sql_mode="ANSI"; @@ -72,3 +72,4 @@ SELECT -1||0^1 AS a FROM DUAL; EXPLAIN EXTENDED SELECT -1^1||1 AS a FROM DUAL; EXPLAIN EXTENDED SELECT -1||0^1 AS a FROM DUAL; +--enable_service_connection diff --git a/mysql-test/main/auto_increment_ranges_innodb.test b/mysql-test/main/auto_increment_ranges_innodb.test index 92d377eb1476e..aaa64e2d6f96b 100644 --- a/mysql-test/main/auto_increment_ranges_innodb.test +++ b/mysql-test/main/auto_increment_ranges_innodb.test @@ -23,7 +23,7 @@ drop table t1; --echo # MDEV-21842: auto_increment does not increment with compound primary --echo # key on partitioned table --echo # - +--disable_service_connection create or replace table `t` ( `id` bigint(20) unsigned not null auto_increment, `a` int(10) not null , @@ -76,4 +76,4 @@ disconnect con2; --connection default select * from t; drop table t; - +--enable_service_connection diff --git a/mysql-test/main/bigint.test b/mysql-test/main/bigint.test index 68ffcd9230ec0..fc7d6a3906046 100644 --- a/mysql-test/main/bigint.test +++ b/mysql-test/main/bigint.test @@ -311,6 +311,7 @@ select cast(-19999999999999999999 as signed); # # PS protocol gives different metadata for `Max length' column +--disable_view_protocol --disable_ps_protocol --enable_metadata select -9223372036854775808; @@ -319,6 +320,7 @@ select -((9223372036854775808)); select -(-(9223372036854775808)); --disable_metadata --enable_ps_protocol +--enable_view_protocol select --9223372036854775808, ---9223372036854775808, ----9223372036854775808; select -(-9223372036854775808), -(-(-9223372036854775808)); diff --git a/mysql-test/main/bool.test b/mysql-test/main/bool.test index 34c51c648d38e..d79e3e3676258 100644 --- a/mysql-test/main/bool.test +++ b/mysql-test/main/bool.test @@ -21,10 +21,12 @@ SELECT * FROM t1 where (1 AND a)=1; SELECT * FROM t1 where (1 AND a) IS NULL; # WL#638 - Behaviour of NOT does not follow SQL specification +--disable_service_connection set sql_mode='high_not_precedence'; select * from t1 where not a between 2 and 3; set sql_mode=default; select * from t1 where not a between 2 and 3; +--enable_service_connection # SQL boolean tests select a, a is false, a is true, a is unknown from t1; diff --git a/mysql-test/main/cache_innodb.test b/mysql-test/main/cache_innodb.test index f71026275065d..efd877dda24ae 100644 --- a/mysql-test/main/cache_innodb.test +++ b/mysql-test/main/cache_innodb.test @@ -19,6 +19,7 @@ let $test_foreign_keys= 1; # Bug#56452 Assertion failed: thd->transaction.stmt.is_empty() || # thd->in_sub_stmt # +--disable_view_protocol CREATE TABLE t1 (a INT) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES(1); @@ -28,4 +29,4 @@ ROLLBACK WORK AND CHAIN NO RELEASE; SELECT a FROM t1; ROLLBACK; DROP TABLE t1; - +--enable_view_protocol diff --git a/mysql-test/main/case.test b/mysql-test/main/case.test index 78d5b3a595181..b80408f44d637 100644 --- a/mysql-test/main/case.test +++ b/mysql-test/main/case.test @@ -2,6 +2,9 @@ # Testing of CASE # +#remove this include after fix MDEV-27871 +--source include/no_view_protocol.inc + --disable_warnings drop table if exists t1, t2; --enable_warnings diff --git a/mysql-test/main/cast.test b/mysql-test/main/cast.test index 165980aebedb5..94a9c5ee9397f 100644 --- a/mysql-test/main/cast.test +++ b/mysql-test/main/cast.test @@ -2,6 +2,10 @@ # Test of cast function # +#remove this include after fix MDEV-27871 +# discuss what to do with "set names binary" +--source include/no_view_protocol.inc + # For TIME->DATETIME conversion SET timestamp=unix_timestamp('2001-02-03 10:20:30'); diff --git a/mysql-test/main/change_user.test b/mysql-test/main/change_user.test index d191b1c3ca044..4073b79a9c6b3 100644 --- a/mysql-test/main/change_user.test +++ b/mysql-test/main/change_user.test @@ -1,4 +1,5 @@ # This test is checking that old password authentication works +--disable_service_connection set global secure_auth=0; # # functional change user tests @@ -149,3 +150,4 @@ select year(now()) > 2011; --echo change_user --change_user select year(now()) > 2011; +--enable_service_connection diff --git a/mysql-test/main/client_xml.test b/mysql-test/main/client_xml.test index 5230922e4b8bd..d39659a33357c 100644 --- a/mysql-test/main/client_xml.test +++ b/mysql-test/main/client_xml.test @@ -1,5 +1,6 @@ # Can't run with embedded server -- source include/not_embedded.inc +-- source include/no_view_protocol.inc # Disable concurrent inserts to avoid test failures when reading # data from concurrent connections (insert might return before diff --git a/mysql-test/main/commit.test b/mysql-test/main/commit.test index 762397dfa237c..892e8f8d80ade 100644 --- a/mysql-test/main/commit.test +++ b/mysql-test/main/commit.test @@ -1,4 +1,5 @@ --source include/have_innodb.inc +--source include/no_view_protocol.inc connect (con1,localhost,root,,); diff --git a/mysql-test/main/concurrent_innodb_safelog.test b/mysql-test/main/concurrent_innodb_safelog.test index 828df9ef717c9..971298a774b3d 100644 --- a/mysql-test/main/concurrent_innodb_safelog.test +++ b/mysql-test/main/concurrent_innodb_safelog.test @@ -11,13 +11,12 @@ # t/concurrent_innodb_unsafelog.test # new wrapper t/concurrent_innodb_safelog.test # - --source include/have_innodb.inc let $engine_type= InnoDB; SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; # innodb_locks_unsafe_for_binlog not set for this test - +--disable_service_connection --source include/concurrent.inc - +--enable_service_connection diff --git a/mysql-test/main/concurrent_innodb_unsafelog.test b/mysql-test/main/concurrent_innodb_unsafelog.test index e2c03655e43af..8e4a3c19ae22d 100644 --- a/mysql-test/main/concurrent_innodb_unsafelog.test +++ b/mysql-test/main/concurrent_innodb_unsafelog.test @@ -18,6 +18,6 @@ let $engine_type= InnoDB; SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; # innodb_locks_unsafe_for_binlog is set fro this test. - +--disable_service_connection --source include/concurrent.inc - +--enable_service_connection diff --git a/mysql-test/main/create.test b/mysql-test/main/create.test index c68ae1130ba96..f1dfba65b4b0a 100644 --- a/mysql-test/main/create.test +++ b/mysql-test/main/create.test @@ -106,6 +106,7 @@ create table t1 (i int, index `` (i)); # We don't allow creation of non-temporary tables under LOCK TABLES # as following meta-data locking protocol in this case can lead to # deadlock. +--disable_service_connection create table t1 (i int); lock tables t1 read; --error ER_TABLE_NOT_LOCKED @@ -115,6 +116,7 @@ create temporary table t2 (j int); drop temporary table t2; unlock tables; drop table t1; +--enable_service_connection # # Test of CREATE ... SELECT with indexes @@ -286,7 +288,7 @@ drop table if exists t2,t1; # # Test for CREATE TABLE .. LIKE .. # - +--disable_view_protocol create table t1(id int not null, name char(20)); insert into t1 values(10,'mysql'),(20,'monty- the creator'); create table t2(id int not null); @@ -325,13 +327,14 @@ create temporary table t3 like t1; drop table t1, t2, t3; drop table t3; drop database mysqltest; - +--enable_view_protocol # # CREATE TABLE LIKE under LOCK TABLES # # Similarly to ordinary CREATE TABLE we don't allow creation of # non-temporary tables under LOCK TABLES. Also we require source # table to be locked. +--disable_service_connection create table t1 (i int); create table t2 (j int); lock tables t1 read; @@ -345,6 +348,7 @@ drop temporary table t3; create temporary table t3 like t2; unlock tables; drop tables t1, t2; +--enable_service_connection # # Test default table type @@ -453,7 +457,7 @@ drop table t1, t2, t3; # # Bug #1209 # - +--disable_service_connection create database mysqltest; use mysqltest; select database(); @@ -469,6 +473,7 @@ connection default; disconnect user1; drop user mysqltest_1; use test; +--enable_service_connection # # Test for Bug 856 'Naming a key "Primary" causes trouble' @@ -530,6 +535,7 @@ drop table t1,t2; # This tests two additional possible errors and a hang if # an improper fix is present. # +--disable_service_connection create table t1 (a int); --error ER_TABLE_EXISTS_ERROR create table t1 select * from t1; @@ -538,6 +544,7 @@ create table t2 union = (t1) select * from t1; flush tables with read lock; unlock tables; drop table t1; +--enable_service_connection # # Bug#10413: Invalid column name is not rejected @@ -772,13 +779,14 @@ create table t1 select coalesce('a' collate latin1_swedish_ci,'b' collate latin1 # permanent table. After patch for Bug#47418, we create the base table and # instert data into it, even though a temporary table exists with the same # name. +--disable_view_protocol create temporary table t1 (j int); create table if not exists t1 select 1; select * from t1; drop temporary table t1; select * from t1; drop table t1; - +--enable_view_protocol # # CREATE TABLE ... SELECT and LOCK TABLES @@ -788,6 +796,7 @@ drop table t1; # the server doesn't crash, hang and produces sensible errors. # Includes test for bug #20662 "Infinite loop in CREATE TABLE # IF NOT EXISTS ... SELECT with locked tables". +--disable_service_connection create table t1 (i int); insert into t1 values (1), (2); lock tables t1 read; @@ -828,7 +837,7 @@ create temporary table if not exists t2 select * from t1; select * from t2; unlock tables; drop table t1, t2; - +--enable_service_connection # # Bug#21772: can not name a column 'upgrade' when create a table @@ -989,6 +998,7 @@ SHOW CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # # Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte # +--disable_service_connection set @save_character_set_client=@@character_set_client; set @save_collation_connection=@@collation_connection; set names utf8; @@ -1014,7 +1024,7 @@ from имя_Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹_Π²_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅_ΡƒΡ‚Ρ„8_Π΄Π»ΠΈΠ½ΠΎΠΉ_больш # database, table, field, key, view select * from имя_Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹_Π²_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅_ΡƒΡ‚Ρ„8_Π΄Π»ΠΈΠ½ΠΎΠΉ_большС_Ρ‡Π΅ΠΌ_48; - +--disable_view_protocol --sorted_result select TABLE_NAME from information_schema.tables where table_schema='test'; @@ -1027,6 +1037,7 @@ table_schema='test'; select TABLE_NAME from information_schema.views where table_schema='test'; +--enable_view_protocol show create table имя_Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹_Π²_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅_ΡƒΡ‚Ρ„8_Π΄Π»ΠΈΠ½ΠΎΠΉ_большС_Ρ‡Π΅ΠΌ_48; show create view имя_вью_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅_ΡƒΡ‚Ρ„8_Π΄Π»ΠΈΠ½ΠΎΠΉ_большС_Ρ‡Π΅ΠΌ_42; @@ -1070,6 +1081,7 @@ drop table имя_Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹_Π²_ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅_ΡƒΡ‚Ρ„8_Π΄Π»ΠΈΠ½ΠΎΠΉ_Π±ΠΎ set @@character_set_client=@save_character_set_client; set @@character_set_results=@save_character_set_client; set @@session.collation_connection=@save_collation_connection; +--enable_service_connection # # Bug#21136 CREATE TABLE SELECT within CREATE TABLE SELECT causes server crash @@ -1382,7 +1394,7 @@ DROP VIEW t2; --echo # Bug #49193 CREATE TABLE reacts differently depending --echo # on whether data is selected or not --echo # - +--disable_view_protocol CREATE TEMPORARY TABLE t2 (ID INT); INSERT INTO t2 VALUES (1),(2),(3); @@ -1418,7 +1430,7 @@ SELECT * FROM t1; DROP TABLE t1; DROP TEMPORARY TABLE t2; - +--enable_view_protocol --echo # --echo # Bug #22909 "Using CREATE ... LIKE is possible to create field @@ -1499,7 +1511,7 @@ drop table t1; --echo # --echo # 2. A temporary table. --echo # - +--disable_view_protocol create temporary table if not exists t1 (a int) select 1 as a; select * from t1; --error ER_TABLE_EXISTS_ERROR @@ -1652,6 +1664,7 @@ select * from t1; drop table t1; --error ER_NO_SUCH_TABLE create table if not exists t1 (a int) select * from t1; +--enable_view_protocol --echo # --echo # 7. Test of non-matching columns, REPLACE and IGNORE. @@ -1692,7 +1705,7 @@ drop table t1; --echo # --echo # Checking that CREATE IF NOT EXISTS is not blocked by running SELECT --echo # - +--disable_service_connection create table t1 (a int, b int) engine=myisam; create table t2 (a int, b int) engine=myisam; insert into t1 values (1,1); @@ -1715,6 +1728,7 @@ connection default; select * from t1; unlock tables; drop table t1,t2; +--enable_service_connection --echo # --echo # MDEV-6179: dynamic columns functions/cast()/convert() doesn't diff --git a/mysql-test/main/create_drop_event.test b/mysql-test/main/create_drop_event.test index d885a39e45321..a906ec33072fb 100644 --- a/mysql-test/main/create_drop_event.test +++ b/mysql-test/main/create_drop_event.test @@ -1,4 +1,5 @@ --source include/not_embedded.inc +--source include/no_view_protocol.inc SET timestamp=UNIX_TIMESTAMP('2014-11-01 10:20:30'); SET GLOBAL event_scheduler=off; diff --git a/mysql-test/main/create_drop_role.test b/mysql-test/main/create_drop_role.test index 11bc832c6e9b3..808461ed3441c 100644 --- a/mysql-test/main/create_drop_role.test +++ b/mysql-test/main/create_drop_role.test @@ -1,3 +1,4 @@ +--source include/no_view_protocol.inc --source include/not_embedded.inc CREATE ROLE IF NOT EXISTS role1 WITH ADMIN user1; diff --git a/mysql-test/main/create_or_replace.test b/mysql-test/main/create_or_replace.test index ba32f4b7603a7..5bce08949ba23 100644 --- a/mysql-test/main/create_or_replace.test +++ b/mysql-test/main/create_or_replace.test @@ -44,7 +44,7 @@ DROP TEMPORARY TABLE t1; --echo # --echo # Testing with temporary tables --echo # - +--disable_view_protocol CREATE OR REPLACE TABLE t1 (a int); CREATE OR REPLACE TEMPORARY TABLE t1 (a int); CREATE OR REPLACE TEMPORARY TABLE t1 (a int, b int); @@ -104,6 +104,7 @@ create or replace table t1 as select a from (select a from t1) as t3; --error ER_UPDATE_TABLE_USED create or replace table t1 as select a from t2 where t2.a in (select a from t1); drop table t1; +--enable_view_protocol --echo # --echo # Testing with normal tables @@ -126,6 +127,7 @@ CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; DROP TABLE t1; +--disable_service_connection # Using lock tables with CREATE OR REPLACE CREATE OR REPLACE TABLE t1 (a int); LOCK TABLES t1 write,t2 write; @@ -207,6 +209,7 @@ drop table t1,t3,t4; --echo # Test the meta data locks are freed properly --echo # +--disable_view_protocol create database mysqltest2; drop table if exists test.t1,mysqltest2.t2; @@ -268,7 +271,7 @@ show tables; select * from information_schema.metadata_lock_info; create table t1 (i int); drop table t1; - +--enable_view_protocol --echo # --echo # Testing CREATE .. LIKE @@ -485,3 +488,4 @@ CREATE OR REPLACE TEMPORARY TABLE t2(c INT DEFAULT ''); SELECT * FROM t3; UNLOCK TABLES; DROP TABLE t3; +--enable_service_connection diff --git a/mysql-test/main/cte_nonrecursive.test b/mysql-test/main/cte_nonrecursive.test index c21090fbdc3d6..79e2bc838a20a 100644 --- a/mysql-test/main/cte_nonrecursive.test +++ b/mysql-test/main/cte_nonrecursive.test @@ -1036,6 +1036,8 @@ drop table t1; --echo # MDEV-16473: query with CTE when no database is set --echo # +# Enable view protocol after fix MDEV-27944 +--disable_view_protocol create database db_mdev_16473; use db_mdev_16473; drop database db_mdev_16473; @@ -1059,6 +1061,7 @@ select * from cte, db_mdev_16473.t1 as t where cte.a=t.a; drop database db_mdev_16473; use test; +--enable_view_protocol --echo # --echo # MDEV-17154: using parameter markers for PS within CTEs more than once @@ -1205,6 +1208,8 @@ DROP TABLE test.t; --echo # MDEV-22781: create view with CTE without default database --echo # +# Enable view protocol after fix MDEV-27944 +--disable_view_protocol create database db; use db; drop database db; @@ -1230,6 +1235,7 @@ drop table db1.t1; drop database db1; use test; +--enable_view_protocol --echo # --echo # MDEV-24597: CTE with union used multiple times in query diff --git a/mysql-test/main/ctype_big5.test b/mysql-test/main/ctype_big5.test index 410203c7c86e5..8c773893cb5bb 100644 --- a/mysql-test/main/ctype_big5.test +++ b/mysql-test/main/ctype_big5.test @@ -78,6 +78,8 @@ create table t1 (a blob); insert into t1 values (0xEE00); select * into outfile 'test/t1.txt' from t1; delete from t1; +#enable after fix MDEV-27871 +--disable_view_protocol let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR --eval select hex(load_file('$MYSQLD_DATADIR/test/t1.txt')); @@ -85,7 +87,8 @@ load data infile 't1.txt' into table t1; select hex(a) from t1; --remove_file $MYSQLD_DATADIR/test/t1.txt drop table t1; - +#enable_view_protocol +# --echo End of 5.0 tests @@ -239,12 +242,14 @@ DROP TABLE t1; # # Checking binary->big5 conversion of an unassigned character 0xC840 in optimizer # +--disable_service_connection SET NAMES binary; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET big5, KEY(a)); INSERT INTO t1 VALUES (0xC840),(0xC841),(0xC842); SELECT HEX(a) FROM t1 WHERE a='Θ@'; SELECT HEX(a) FROM t1 IGNORE KEY(a) WHERE a='Θ@'; DROP TABLE t1; +--enable_service_connection --echo # --echo # End of 10.0 tests diff --git a/mysql-test/main/ctype_binary.test b/mysql-test/main/ctype_binary.test index 27870a9fc5474..2824f8de8cad2 100644 --- a/mysql-test/main/ctype_binary.test +++ b/mysql-test/main/ctype_binary.test @@ -1,4 +1,7 @@ +#remove this include after fix MDEV-27871 +--source include/no_view_protocol.inc + set names binary; --echo # diff --git a/mysql-test/main/ctype_collate.test b/mysql-test/main/ctype_collate.test index ce8559732ee0d..ab79a6cd51a42 100644 --- a/mysql-test/main/ctype_collate.test +++ b/mysql-test/main/ctype_collate.test @@ -1,3 +1,6 @@ +#remove this include after fix MDEV-27871 +--source include/no_view_protocol.inc + --disable_warnings DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; diff --git a/mysql-test/main/ctype_cp932.test b/mysql-test/main/ctype_cp932.test index 2486ca8a79ef4..ffce768c3aa19 100644 --- a/mysql-test/main/ctype_cp932.test +++ b/mysql-test/main/ctype_cp932.test @@ -4,6 +4,9 @@ --echo # USED. --echo # +#remove this include in 10.6 version +--source include/no_view_protocol.inc + SET @old_character_set_client= @@character_set_client; SET @old_character_set_connection= @@character_set_connection; SET @old_character_set_results= @@character_set_results; diff --git a/mysql-test/main/ctype_eucjpms.test b/mysql-test/main/ctype_eucjpms.test index 867ca809dbf98..f144f5566f3fe 100644 --- a/mysql-test/main/ctype_eucjpms.test +++ b/mysql-test/main/ctype_eucjpms.test @@ -1,3 +1,7 @@ +# remove this include in 10.6 version, +# if MDEV-27871 will be fix +--source include/no_view_protocol.inc + -- source include/have_eucjpms.inc diff --git a/mysql-test/main/ctype_filename.test b/mysql-test/main/ctype_filename.test index 0c38172a0ef84..b72745c6aa1fc 100644 --- a/mysql-test/main/ctype_filename.test +++ b/mysql-test/main/ctype_filename.test @@ -20,7 +20,10 @@ drop table com1; create table `clock$` (a int); drop table `clock$`; +# Enable after fix MDEV-29295 +--disable_view_protocol select convert(convert(',' using filename) using binary); +--enable_view_protocol --echo # --echo # MDEV-7677 my_charset_handler_filename has a wrong "ismbchar" member diff --git a/mysql-test/main/ctype_gb2312.test b/mysql-test/main/ctype_gb2312.test index 4489168a16347..a91bbff97b35d 100644 --- a/mysql-test/main/ctype_gb2312.test +++ b/mysql-test/main/ctype_gb2312.test @@ -7,6 +7,8 @@ drop table if exists t1; --enable_warnings +--disable_service_connection + SET @test_character_set= 'gb2312'; SET @test_collation= 'gb2312_chinese_ci'; -- source include/ctype_common.inc @@ -177,6 +179,8 @@ let $coll='gb2312_nopad_bin'; let $coll_pad='gb2312_bin'; --source include/ctype_pad_all_engines.inc +--enable_service_connection + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/main/ctype_gbk.test b/mysql-test/main/ctype_gbk.test index d9d0a4d0ee446..59dac91d2289c 100644 --- a/mysql-test/main/ctype_gbk.test +++ b/mysql-test/main/ctype_gbk.test @@ -445,11 +445,13 @@ DROP TABLE t1; --echo # --echo # MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences --echo # +#enable after fix MDEV-27871 +--disable_view_protocol set sql_mode=''; SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)); SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)); set sql_mode=default; - +--enable_view_protocol --echo # --echo # End of 10.1 tests diff --git a/mysql-test/main/ctype_latin1_de.test b/mysql-test/main/ctype_latin1_de.test index dc261790f6c65..09cbcf0ad877c 100644 --- a/mysql-test/main/ctype_latin1_de.test +++ b/mysql-test/main/ctype_latin1_de.test @@ -1,6 +1,10 @@ # # Test latin_de character set # + +# Enable after fix MDEV-27904 and not earlier version 10.6 +-- source include/no_view_protocol.inc + create database latin1_german2_ci default character set latin1 collate latin1_german2_ci; use latin1_german2_ci; diff --git a/mysql-test/main/ctype_latin2.test b/mysql-test/main/ctype_latin2.test index e80515993f279..e71a60a232465 100644 --- a/mysql-test/main/ctype_latin2.test +++ b/mysql-test/main/ctype_latin2.test @@ -1,4 +1,3 @@ - # Tests with the latin1 character set # --disable_warnings @@ -61,7 +60,7 @@ drop table t1; --echo # --echo # WL#3664 WEIGHT_STRING --echo # - +--disable_service_connection set names latin2; --source include/weight_string.inc --source include/weight_string_l1.inc @@ -70,6 +69,7 @@ set names latin2; set collation_connection=latin2_bin; --source include/weight_string.inc --source include/weight_string_l1.inc +--enable_service_connection --echo # --echo # End of 5.6 tests diff --git a/mysql-test/main/ctype_latin2_ch.test b/mysql-test/main/ctype_latin2_ch.test index 06ccd2c978284..6d3453ed1fb30 100644 --- a/mysql-test/main/ctype_latin2_ch.test +++ b/mysql-test/main/ctype_latin2_ch.test @@ -30,10 +30,11 @@ select * from t1 where tt like '%AA%'; drop table t1; # End of 4.1 tests - +--disable_service_connection set names latin2 collate latin2_czech_cs; --source include/ctype_pad_space.inc --source include/ctype_like_cond_propagation.inc +--enable_service_connection # We can not use ctype_filesort.inc because # order of SPACE and TAB is not strict @@ -219,9 +220,10 @@ DROP TABLE t1; --echo # --echo # WL#3664 WEIGHT_STRING --echo # - +--disable_service_connection set names latin2 collate latin2_czech_cs; --source include/ctype_pad_space.inc +--enable_service_connection # We can not use ctype_filesort.inc because # order of SPACE and TAB is not strict #--source include/ctype_filesort.inc @@ -230,6 +232,8 @@ set names latin2 collate latin2_czech_cs; --echo # Note: --echo # latin2_czech_cs does not support WEIGHT_STRING in full extent --echo # +#check after fix MDEV-29290 +--disable_view_protocol --source include/weight_string.inc --source include/weight_string_chde.inc --source include/weight_string_l1.inc @@ -238,6 +242,7 @@ set names latin2 collate latin2_czech_cs; --source include/weight_string_l4.inc --source include/weight_string_l12.inc --source include/weight_string_l14.inc +--enable_view_protocol --echo # --echo # End of 5.6 tests diff --git a/mysql-test/main/ctype_ldml.test b/mysql-test/main/ctype_ldml.test index a6cba4b978022..68891646c0fa7 100644 --- a/mysql-test/main/ctype_ldml.test +++ b/mysql-test/main/ctype_ldml.test @@ -3,6 +3,9 @@ --source include/have_utf16.inc --source include/have_utf32.inc +#remove this include after fix MDEV-27871 +--source include/no_view_protocol.inc + --disable_warnings drop table if exists t1; --enable_warnings diff --git a/mysql-test/main/ctype_recoding.test b/mysql-test/main/ctype_recoding.test index ba2e65b3626c4..cc58d4aeff99b 100644 --- a/mysql-test/main/ctype_recoding.test +++ b/mysql-test/main/ctype_recoding.test @@ -74,11 +74,13 @@ SHOW TABLES IN SET CHARACTER SET koi8r; DROP DATABASE ΤΕΣΤ; +# Enable view protocol after fix MDEV-27944 +--disable_view_protocol SET NAMES koi8r; SELECT hex('ΤΕΣΤ'); SET character_set_connection=cp1251; SELECT hex('ΤΕΣΤ'); - +--enable_view_protocol USE test; # Bug#4417 @@ -94,9 +96,12 @@ DROP TABLE `тСст`; SET NAMES binary; SET character_set_connection=utf8; SELECT 'тСст' as s; +# enable view-protocol in 10.6 version +--disable_view_protocol SET NAMES utf8; SET character_set_connection=binary; SELECT 'тСст' as s; +--enable_view_protocol # Bug#4417, another aspect: # Check that both "SHOW CREATE TABLE" and "SHOW COLUMNS" @@ -173,6 +178,8 @@ drop table t1; # # Check more automatic conversion # +# Enable view protocol after fix MDEV-28017 +--disable_view_protocol set names koi8r; create table t1 (c1 char(10) character set cp1251); insert into t1 values ('ί'); @@ -197,7 +204,8 @@ select rpad(c1,3,' #select case c1 when 'ί' then 'ί' when 'φ' then 'φ' else 'c' end from t1; #select export_set(5,c1,'φ'), export_set(5,'φ',c1) from t1; drop table t1; - +--enable_view_protocol + # # Bug 20695: problem with field default value's character set # diff --git a/mysql-test/main/ctype_sjis.test b/mysql-test/main/ctype_sjis.test index 9a8ce414c14d4..918d20ae3dc3c 100644 --- a/mysql-test/main/ctype_sjis.test +++ b/mysql-test/main/ctype_sjis.test @@ -64,17 +64,21 @@ select hex(c) from t1; drop table t1; +--disable_service_connection SET collation_connection='sjis_japanese_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc -- source include/ctype_like_range_f1f2.inc -- source include/ctype_str_to_date.inc + + SET collation_connection='sjis_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc -- source include/ctype_like_range_f1f2.inc +--enable_service_connection # Check parsing of string literals in SJIS with multibyte characters that # have an embedded \ in them. (Bug #8303) @@ -173,6 +177,8 @@ WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> --echo # WL#3090 Japanese Character Set adjustments --echo # Test sjis->Unicode conversion --echo # +# enable view-protocol in 10.6 version +--disable_view_protocol SELECT HEX(a), HEX(CONVERT(a USING utf8)) as b FROM t1 WHERE a<>'' HAVING b<>'3F' ORDER BY code; @@ -187,6 +193,7 @@ DROP TABLE t1; SELECT HEX(a), HEX(CONVERT(a using sjis)) as b FROM t1 HAVING b<>'3F' ORDER BY BINARY a; DROP TABLE t1; +--enable_view_protocol --echo # --echo # End of 5.5 tests @@ -201,6 +208,9 @@ DROP TABLE t1; --echo # WL#3664 WEIGHT_STRING --echo # +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol + set names sjis; --source include/weight_string.inc --source include/weight_string_l1.inc @@ -212,6 +222,8 @@ set collation_connection=sjis_bin; --source include/weight_string_l1.inc --source include/weight_string_8140.inc +--enable_view_protocol + --echo # --echo # End of 5.6 tests --echo # @@ -220,13 +232,21 @@ set collation_connection=sjis_bin; --echo # Start of 10.0 tests --echo # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +# (it is necessary to run the view-protocol not in util session ) +--disable_view_protocol + let $ctype_unescape_combinations=selected; --source include/ctype_unescape.inc + --character_set sjis SET NAMES sjis; --source include/ctype_E05C.inc +--enable_view_protocol + --echo # --echo # End of 10.0 tests diff --git a/mysql-test/main/ctype_swe7.test b/mysql-test/main/ctype_swe7.test index 2e648a8940670..83bde449e191f 100644 --- a/mysql-test/main/ctype_swe7.test +++ b/mysql-test/main/ctype_swe7.test @@ -11,9 +11,16 @@ SET NAMES swe7; # as uses stored functions actively. # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +# (it is necessary to run the view-protocol not in util session ) +--disable_service_connection + let $ctype_unescape_combinations=selected; --source include/ctype_unescape.inc +--enable_service_connection + --echo # --echo # End of 10.0 tests --echo # diff --git a/mysql-test/main/ctype_tis620.test b/mysql-test/main/ctype_tis620.test index 7f6382fe7bc44..f432b23d71c78 100644 --- a/mysql-test/main/ctype_tis620.test +++ b/mysql-test/main/ctype_tis620.test @@ -169,7 +169,7 @@ SET collation_connection='tis620_bin'; --echo # --echo # Start of 5.6 tests --echo # - +--disable_service_connection --echo # --echo # WL#3664 WEIGHT_STRING --echo # @@ -186,8 +186,11 @@ set collation_connection=tis620_bin; --source include/weight_string.inc --source include/weight_string_l1.inc --source include/ctype_pad_space.inc +#enable after fix MDEV-29290 +--disable_view_protocol select hex(weight_string(cast(0xE0A1 as char))); select hex(weight_string(cast(0xE0A1 as char) as char(1))); +--enable_view_protocol --echo # --echo # End of 5.6 tests @@ -208,6 +211,7 @@ let $coll_pad='tis620_thai_ci'; let $coll='tis620_nopad_bin'; let $coll_pad='tis620_bin'; --source include/ctype_pad_all_engines.inc +--enable_service_connection --echo # --echo # MDEV-24901 SIGSEGV in fts_get_table_name, SIGSEGV in ib_vector_size, SIGSEGV in row_merge_fts_doc_tokenize, stack smashing diff --git a/mysql-test/main/ctype_uca.test b/mysql-test/main/ctype_uca.test index 82be0305f0786..1b7474428c140 100644 --- a/mysql-test/main/ctype_uca.test +++ b/mysql-test/main/ctype_uca.test @@ -8,6 +8,7 @@ DROP TABLE IF EXISTS t1; # # Test Unicode collations. # +--disable_service_connection set names utf8; # @@ -72,6 +73,7 @@ select group_concat(c1 order by c1) from t1 group by c1 collate utf8_unicode_520 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_vietnamese_ci; select group_concat(c1 order by c1) from t1 group by c1 collate utf8_thai_520_w2; +--disable_view_protocol ALTER TABLE t1 CONVERT TO CHARACTER SET ucs2 COLLATE ucs2_bin; SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_unicode_ci; SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_icelandic_ci; @@ -96,7 +98,7 @@ SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_croatian_ci SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_german2_ci; SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_unicode_520_ci; SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_vietnamese_ci; - +--enable_view_protocol drop table t1; # @@ -475,7 +477,7 @@ set collation_connection=ucs2_unicode_ci; -- source include/ctype_regex.inc -- source include/ctype_like_range_f1f2.inc set names utf8; - +--enable_service_connection -- echo End for 5.0 tests --echo End of 5.1 tests @@ -491,7 +493,7 @@ SET collation_connection=utf8_czech_ci; SET collation_connection=ucs2_czech_ci; --source include/ctype_czech.inc --source include/ctype_like_ignorable.inc - +--disable_service_connection create table t1 (a int, c1 varchar(200) collate utf8_croatian_mysql561_ci, key (c1)); insert into t1 values (1,'=> DZ'),(2,'=> Dz'),(3,'=> dz'),(4,'=> dZ'); insert into t1 values (5,'=> DΕ½'),(6,'=> DΕΎ'),(7,'=> dΕΎ'),(8,'=> dΕ½'); @@ -508,7 +510,6 @@ select * from t1 where c1 = '=> dΕΎ'; select * from t1 where concat(c1) = '=> dΕΎ'; drop table t1; - --echo # --echo # MDEV-7649 wrong result when comparing utf8 column with an invalid literal --echo # @@ -551,7 +552,10 @@ set @@collation_connection=ucs2_czech_ci; --echo # --echo # Bug#33077 weight of supplementary characters is not 0xfffd --echo # +#enable_after_fix MDEV-27871 +--disable_view_protocol select hex(weight_string(_utf8mb4 0xF0908080 /* U+10000 */ collate utf8mb4_unicode_ci)); +--enable_view_protocol --echo # --echo # Bug#53064 garbled data when using utf8_german2_ci collation @@ -690,7 +694,7 @@ CREATE VIEW v1 AS SELECT group_concat('f') AS col1; SELECT col1 FROM v1 UNION SELECT col1 FROM t1; DROP VIEW v1; DROP TABLE t1; - +--enable_service_connection --echo # --echo # End of MariaDB-10.2 tests diff --git a/mysql-test/main/ctype_uca_innodb.test b/mysql-test/main/ctype_uca_innodb.test index cb6caff4a035c..d105229dfa439 100644 --- a/mysql-test/main/ctype_uca_innodb.test +++ b/mysql-test/main/ctype_uca_innodb.test @@ -1,7 +1,6 @@ # # Tests for UCA collations with InnoDB # - let collation=utf8_unicode_ci; --source include/have_collation.inc --source include/have_innodb.inc @@ -15,10 +14,11 @@ let collation=utf8_unicode_ci; --echo # --echo # MDEV-7649 wrong result when comparing utf8 column with an invalid literal --echo # - +--disable_service_connection SET NAMES utf8 COLLATE utf8_unicode_ci; --let ENGINE=InnoDB --source include/ctype_utf8_ilseq.inc +--enable_service_connection --echo # --echo # End of 5.5 tests diff --git a/mysql-test/main/ctype_ujis.test b/mysql-test/main/ctype_ujis.test index 72a609edf3943..8b0ba671abc2e 100644 --- a/mysql-test/main/ctype_ujis.test +++ b/mysql-test/main/ctype_ujis.test @@ -37,7 +37,12 @@ select locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3); select 0xa1a2a1a3 like concat(_binary'%',0xa2a1,_binary'%'); select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%'); + +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate ujis_bin; +--disable_view_protocol + select 'a' like 'a'; select 'A' like 'a'; select 'A' like 'a' collate ujis_bin; @@ -1216,9 +1221,11 @@ DROP TABLE t2; --echo # --echo # Bug#57257 Replace(ExtractValue(...)) causes MySQL crash --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SET NAMES utf8; SELECT CONVERT(REPLACE(EXPORT_SET('a','a','a','','a'),'00','') USING ujis); - +--enable_view_protocol set names default; set character_set_database=@save_character_set_server; @@ -1307,6 +1314,10 @@ WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> --echo # WL#3090 Japanese Character Set adjustments --echo # Test sjis->Unicode conversion --echo # + +# enable view-protocol in 10.6 version +--disable_view_protocol + SELECT HEX(a), HEX(CONVERT(a USING utf8)) as b FROM t1 WHERE a<>'' HAVING b<>'3F' ORDER BY code; @@ -1321,7 +1332,7 @@ DROP TABLE t1; SELECT HEX(a), HEX(CONVERT(a using sjis)) as b FROM t1 HAVING b<>'3F' ORDER BY BINARY a; DROP TABLE t1; - +--enable_view_protocol --echo # --echo # End of 5.5 tests @@ -1336,6 +1347,8 @@ DROP TABLE t1; --echo # WL#3664 WEIGHT_STRING --echo # +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol set names ujis; --source include/weight_string.inc --source include/weight_string_l1.inc @@ -1349,6 +1362,7 @@ set collation_connection=ujis_bin; --source include/weight_string_A1A1.inc --source include/weight_string_8EA1.inc --source include/weight_string_8FA2C3.inc +--enable_view_protocol --echo # --echo # End of 5.6 tests diff --git a/mysql-test/main/ctype_upgrade.test b/mysql-test/main/ctype_upgrade.test index 62567c5afe466..fee962e7ceb57 100644 --- a/mysql-test/main/ctype_upgrade.test +++ b/mysql-test/main/ctype_upgrade.test @@ -85,13 +85,15 @@ DROP TABLE maria050533_xxx_croatian_ci; --copy_file std_data/ctype_upgrade/maria050533_xxx_croatian_ci.MYI $MYSQLD_DATADIR/test/maria050533_xxx_croatian_ci.MYI ALTER TABLE maria050533_xxx_croatian_ci FORCE; SHOW CREATE TABLE maria050533_xxx_croatian_ci; +# enable after fix MDEV-28571 +--disable_view_protocol SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM maria050533_xxx_croatian_ci GROUP BY a; SELECT GROUP_CONCAT(b ORDER BY BINARY b) FROM maria050533_xxx_croatian_ci GROUP BY b; SELECT GROUP_CONCAT(c ORDER BY BINARY c) FROM maria050533_xxx_croatian_ci GROUP BY c; SELECT GROUP_CONCAT(d ORDER BY BINARY d) FROM maria050533_xxx_croatian_ci GROUP BY d; SELECT GROUP_CONCAT(e ORDER BY BINARY e) FROM maria050533_xxx_croatian_ci GROUP BY e; DROP TABLE maria050533_xxx_croatian_ci; - +--enable_view_protocol --echo # --echo # Upgrade from Maria-10.0.4 @@ -116,13 +118,15 @@ DROP TABLE maria100004_xxx_croatian_ci; --copy_file std_data/ctype_upgrade/maria100004_xxx_croatian_ci.MYI $MYSQLD_DATADIR/test/maria100004_xxx_croatian_ci.MYI ALTER TABLE maria100004_xxx_croatian_ci FORCE; SHOW CREATE TABLE maria100004_xxx_croatian_ci; +# enable after fix MDEV-28571 +--disable_view_protocol SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM maria100004_xxx_croatian_ci GROUP BY a; SELECT GROUP_CONCAT(b ORDER BY BINARY b) FROM maria100004_xxx_croatian_ci GROUP BY b; SELECT GROUP_CONCAT(c ORDER BY BINARY c) FROM maria100004_xxx_croatian_ci GROUP BY c; SELECT GROUP_CONCAT(d ORDER BY BINARY d) FROM maria100004_xxx_croatian_ci GROUP BY d; SELECT GROUP_CONCAT(e ORDER BY BINARY e) FROM maria100004_xxx_croatian_ci GROUP BY e; DROP TABLE maria100004_xxx_croatian_ci; - +--enable_view_protocol --echo # @@ -137,13 +141,15 @@ DROP TABLE maria100004_xxx_croatian_ci; --copy_file std_data/ctype_upgrade/mysql050614_xxx_croatian_ci.MYI $MYSQLD_DATADIR/test/mysql050614_xxx_croatian_ci.MYI CHECK TABLE mysql050614_xxx_croatian_ci FOR UPGRADE; SHOW CREATE TABLE mysql050614_xxx_croatian_ci; +# enable after fix MDEV-28571 +--disable_view_protocol SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM mysql050614_xxx_croatian_ci GROUP BY a; SELECT GROUP_CONCAT(b ORDER BY BINARY b) FROM mysql050614_xxx_croatian_ci GROUP BY b; SELECT GROUP_CONCAT(c ORDER BY BINARY c) FROM mysql050614_xxx_croatian_ci GROUP BY c; SELECT GROUP_CONCAT(d ORDER BY BINARY d) FROM mysql050614_xxx_croatian_ci GROUP BY d; SELECT GROUP_CONCAT(e ORDER BY BINARY e) FROM mysql050614_xxx_croatian_ci GROUP BY e; DROP TABLE mysql050614_xxx_croatian_ci; - +--enable_view_protocol --echo # --echo # Checking mysql_upgrade diff --git a/mysql-test/main/ctype_utf16.test b/mysql-test/main/ctype_utf16.test index 2267facd10695..cf32fc3094a2b 100644 --- a/mysql-test/main/ctype_utf16.test +++ b/mysql-test/main/ctype_utf16.test @@ -1,7 +1,6 @@ -- source include/have_utf16.inc -- source include/have_utf8mb4.inc - SET TIME_ZONE='+03:00'; --disable_warnings @@ -11,6 +10,7 @@ DROP TABLE IF EXISTS t1; --echo # --echo # Start of 5.5 tests --echo # +--disable_service_connection SET NAMES latin1; SET character_set_connection=utf16; @@ -52,6 +52,8 @@ DROP TABLE t1; # # Check LPAD/RPAD # +#enable after fix MDEV-29290 +--disable_view_protocol SELECT hex(LPAD(_utf16 X'0420',10,_utf16 X'0421')); SELECT hex(LPAD(_utf16 X'0420',10,_utf16 X'04210422')); SELECT hex(LPAD(_utf16 X'0420',10,_utf16 X'042104220423')); @@ -65,6 +67,7 @@ SELECT hex(RPAD(_utf16 X'0420',10,_utf16 X'042104220423')); SELECT hex(RPAD(_utf16 X'0420042104220423042404250426042704280429042A042B',10,_utf16 X'042104220423')); SELECT hex(RPAD(_utf16 X'D800DC00', 10, _utf16 X'0421')); SELECT hex(RPAD(_utf16 X'0421', 10, _utf16 X'D800DC00')); +--enable_view_protocol CREATE TABLE t1 SELECT LPAD(_utf16 X'0420',10,_utf16 X'0421') l, @@ -738,6 +741,7 @@ CREATE TABLE t1 ( s3 MEDIUMTEXT CHARACTER SET utf16, s4 LONGTEXT CHARACTER SET utf16 ); +--disable_view_protocol --enable_metadata SET NAMES utf8, @@character_set_results=NULL; SELECT *, HEX(s1) FROM t1; @@ -746,6 +750,7 @@ SELECT *, HEX(s1) FROM t1; SET NAMES utf8; SELECT *, HEX(s1) FROM t1; --disable_metadata +--enable_view_protocol CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1; SHOW CREATE TABLE t2; DROP TABLE t1, t2; @@ -950,7 +955,7 @@ DROP TABLE t1; VALUES (1) UNION SELECT _utf16 0x0020; VALUES ('') UNION SELECT _utf16 0x0020 COLLATE utf16_bin; VALUES ('') UNION VALUES ( _utf16 0x0020 COLLATE utf16_bin); - +--enable_service_connection --echo # --echo # End of 10.3 tests diff --git a/mysql-test/main/ctype_utf16_uca.test b/mysql-test/main/ctype_utf16_uca.test index 93807232bab46..78ef51586f413 100644 --- a/mysql-test/main/ctype_utf16_uca.test +++ b/mysql-test/main/ctype_utf16_uca.test @@ -9,6 +9,7 @@ DROP TABLE IF EXISTS t1; --echo # Start of 5.5 tests --echo # +--disable_service_connection set names utf8; set collation_connection=utf16_unicode_ci; select hex('a'), hex('a '); @@ -267,7 +268,7 @@ INSERT INTO t1 (c) VALUES (1); SELECT HEX(c) FROM t1; DROP TABLE t1; - +--enable_service_connection --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/main/ctype_utf16le.test b/mysql-test/main/ctype_utf16le.test index c0cac7f5d67f8..13efc03d01410 100644 --- a/mysql-test/main/ctype_utf16le.test +++ b/mysql-test/main/ctype_utf16le.test @@ -3,6 +3,8 @@ -- source include/have_utf32.inc -- source include/have_utf8mb4.inc +--disable_service_connection + let $MYSQLD_DATADIR= `select @@datadir`; SET TIME_ZONE='+03:00'; @@ -701,6 +703,7 @@ CREATE TABLE t1 ( s3 MEDIUMTEXT CHARACTER SET utf16le, s4 LONGTEXT CHARACTER SET utf16le ); +--disable_view_protocol --enable_metadata SET NAMES utf8, @@character_set_results=NULL; SELECT *, HEX(s1) FROM t1; @@ -709,6 +712,7 @@ SELECT *, HEX(s1) FROM t1; SET NAMES utf8; SELECT *, HEX(s1) FROM t1; --disable_metadata +--enable_view_protocol CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1; SHOW CREATE TABLE t2; DROP TABLE t1, t2; @@ -846,6 +850,7 @@ SELECT TABLE_NAME, TABLE_SCHEMA, HEX(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES DROP TABLE t; SET NAMES utf8; +--enable_service_connection --echo # --echo # End of 10.2 tests diff --git a/mysql-test/main/ctype_utf32.test b/mysql-test/main/ctype_utf32.test index 739096ae9cb35..a62416621b874 100644 --- a/mysql-test/main/ctype_utf32.test +++ b/mysql-test/main/ctype_utf32.test @@ -1,6 +1,7 @@ -- source include/have_utf32.inc -- source include/have_utf8mb4.inc +--disable_service_connection SET TIME_ZONE = '+03:00'; --disable_warnings @@ -62,12 +63,18 @@ DROP TABLE t1; SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0421')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT hex(LPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')); +--enable_view_protocol SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0421')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT hex(RPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')); +--enable_view_protocol CREATE TABLE t1 SELECT LPAD(_utf32 X'0420',10,_utf32 X'0421') l, @@ -117,8 +124,11 @@ DROP TABLE t1; # # Check that INSERT() works fine. # This invokes charpos() function. +#enable after fix MDEV-27871 +--disable_view_protocol select insert(_utf32 0x000000610000006200000063,10,2,_utf32 0x000000640000006500000066); select insert(_utf32 0x000000610000006200000063,1,2,_utf32 0x000000640000006500000066); +--enable_view_protocol ####################################################### @@ -794,6 +804,7 @@ CREATE TABLE t1 ( s3 MEDIUMTEXT CHARACTER SET utf32, s4 LONGTEXT CHARACTER SET utf32 ); +--disable_view_protocol --enable_metadata SET NAMES utf8mb4, @@character_set_results=NULL; SELECT *, HEX(s1) FROM t1; @@ -802,6 +813,7 @@ SELECT *, HEX(s1) FROM t1; SET NAMES utf8mb4; SELECT *, HEX(s1) FROM t1; --disable_metadata +--enable_view_protocol CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1; SHOW CREATE TABLE t2; DROP TABLE t1, t2; @@ -872,8 +884,10 @@ ORDER BY l DESC; --echo # --echo # incorrect charset for val_str_ascii --echo # - +#enable after fix MDEV-27871 +--disable_view_protocol SELECT '2010-10-10 10:10:10' + INTERVAL GeometryType(GeomFromText('POINT(1 1)')) hour_second; +--enable_view_protocol --echo # --echo # MDEV-5745 analyze MySQL fix for bug#12368495 @@ -1085,7 +1099,7 @@ CREATE TABLE t1 ( SHOW CREATE TABLE t1; DROP TABLE t1; - +--enable_service_connection --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/main/ctype_utf32_uca.test b/mysql-test/main/ctype_utf32_uca.test index 9073d8c57f52c..6e37839460591 100644 --- a/mysql-test/main/ctype_utf32_uca.test +++ b/mysql-test/main/ctype_utf32_uca.test @@ -8,6 +8,7 @@ DROP TABLE IF EXISTS t1; --echo # --echo # Start of 5.5 tests --echo # +--disable_service_connection set names utf8; set collation_connection=utf32_unicode_ci; @@ -303,6 +304,7 @@ SHOW CREATE TABLE t1; DROP TABLE t1; SET NAMES utf8; +--enable_service_connection --echo # --echo # End of 10.2 tests diff --git a/mysql-test/main/ctype_utf8.test b/mysql-test/main/ctype_utf8.test index e2c47e7599300..ce1f64c8a7b0f 100644 --- a/mysql-test/main/ctype_utf8.test +++ b/mysql-test/main/ctype_utf8.test @@ -2,6 +2,9 @@ # Tests with the utf8 character set # +# Enable after fix MDEV-27904 +-- source include/no_view_protocol.inc + let $MYSQLD_DATADIR= `select @@datadir`; let collation=utf8_unicode_ci; diff --git a/mysql-test/main/ctype_utf8mb4.test b/mysql-test/main/ctype_utf8mb4.test index 8fbbee872cec8..a749d5420a163 100644 --- a/mysql-test/main/ctype_utf8mb4.test +++ b/mysql-test/main/ctype_utf8mb4.test @@ -1,3 +1,6 @@ +# Enable after fix MDEV-27904 +-- source include/no_view_protocol.inc + --source include/have_utf8mb4.inc # diff --git a/mysql-test/main/ctype_utf8mb4_innodb.test b/mysql-test/main/ctype_utf8mb4_innodb.test index 3bf0612a1ab6e..75667e04d5f99 100644 --- a/mysql-test/main/ctype_utf8mb4_innodb.test +++ b/mysql-test/main/ctype_utf8mb4_innodb.test @@ -1,3 +1,6 @@ +# Enable after fix MDEV-27904 +-- source include/no_view_protocol.inc + --source include/have_utf8mb4.inc --source include/have_innodb.inc diff --git a/mysql-test/main/custom_aggregate_functions.test b/mysql-test/main/custom_aggregate_functions.test index 7442c7ec2ee5d..889d56ad7e71b 100644 --- a/mysql-test/main/custom_aggregate_functions.test +++ b/mysql-test/main/custom_aggregate_functions.test @@ -1,3 +1,6 @@ +# Check tests after fix MDEV-28475 +-- source include/no_view_protocol.inc + create table t2 (sal int(10)); delimiter |; diff --git a/mysql-test/main/custom_aggregates_i_s.test b/mysql-test/main/custom_aggregates_i_s.test index 11ed26c59b0f1..c6b195f797425 100644 --- a/mysql-test/main/custom_aggregates_i_s.test +++ b/mysql-test/main/custom_aggregates_i_s.test @@ -1,3 +1,6 @@ +# enable view-protocol after fix MDEV-28475 +-- source include/no_view_protocol.inc + --source include/default_optimizer_switch.inc flush status; diff --git a/mysql-test/main/date_formats.test b/mysql-test/main/date_formats.test index 3bf6fabbf6d8e..4f252f29a6909 100644 --- a/mysql-test/main/date_formats.test +++ b/mysql-test/main/date_formats.test @@ -2,6 +2,9 @@ # Test of date format functions # +#remove this include after fix MDEV-27871 +-- source include/no_view_protocol.inc + --disable_warnings drop table if exists t1; --enable_warnings diff --git a/mysql-test/main/ddl_i18n_koi8r.test b/mysql-test/main/ddl_i18n_koi8r.test index ada21b092aaa9..85fc947253be7 100644 --- a/mysql-test/main/ddl_i18n_koi8r.test +++ b/mysql-test/main/ddl_i18n_koi8r.test @@ -42,6 +42,7 @@ let collation=utf8_unicode_ci; --source include/have_collation.inc ########################################################################### +--disable_service_connection set names koi8r; delimiter |; @@ -1119,3 +1120,4 @@ delimiter ;| USE test; DROP DATABASE mysqltest1; DROP DATABASE mysqltest2; +--enable_service_connection diff --git a/mysql-test/main/ddl_i18n_utf8.test b/mysql-test/main/ddl_i18n_utf8.test index 2e6944d8b8616..3e0b28dd191ba 100644 --- a/mysql-test/main/ddl_i18n_utf8.test +++ b/mysql-test/main/ddl_i18n_utf8.test @@ -42,6 +42,7 @@ let collation=utf8_unicode_ci; --source include/have_collation.inc ########################################################################### +--disable_service_connection set names utf8; delimiter |; @@ -1122,3 +1123,4 @@ delimiter ;| USE test; DROP DATABASE mysqltest1; DROP DATABASE mysqltest2; +--enable_service_connection diff --git a/mysql-test/main/delayed.test b/mysql-test/main/delayed.test index 573985fec1fb6..035d3b7269e71 100644 --- a/mysql-test/main/delayed.test +++ b/mysql-test/main/delayed.test @@ -309,6 +309,7 @@ DROP TABLE t1,t2; # Bug#40536: SELECT is blocked by INSERT DELAYED waiting on upgrading lock, # even with low_priority_updates # +--disable_service_connection set @old_delayed_updates = @@global.low_priority_updates; set global low_priority_updates = 1; @@ -344,7 +345,7 @@ select * from t1; drop table t1; set global low_priority_updates = @old_delayed_updates; - +--enable_service_connection --echo # --echo # Bug #47682 strange behaviour of INSERT DELAYED @@ -414,6 +415,7 @@ DROP TABLE t1; --echo # This test is not supposed to work under --ps-protocol since --echo # INSERT DELAYED doesn't work under LOCK TABLES with this protocol. --disable_ps_protocol +--disable_view_protocol --disable_warnings DROP TABLE IF EXISTS t1, t2; @@ -563,11 +565,12 @@ disconnect con1; connection default; DROP TABLE t1, t2, t3; --enable_ps_protocol - +--enable_view_protocol --echo # --echo # Test for bug #56251 "Deadlock with INSERT DELAYED and MERGE tables". --echo # +--disable_view_protocol connect (con1,localhost,root,,); connection default; --disable_warnings @@ -608,6 +611,7 @@ disconnect con1; --source include/wait_until_disconnected.inc connection default; drop tables tm, t1, t2; +--enable_view_protocol --echo # --echo # MDEV-9621 INSERT DELAYED fails on insert for tables with many columns diff --git a/mysql-test/main/derived_view.test b/mysql-test/main/derived_view.test index 006bdaea5ef6c..caccc7dafa166 100644 --- a/mysql-test/main/derived_view.test +++ b/mysql-test/main/derived_view.test @@ -1,3 +1,5 @@ +--source include/no_view_protocol.inc + --source include/default_optimizer_switch.inc --disable_warnings diff --git a/mysql-test/main/drop.test b/mysql-test/main/drop.test index 6f506dd7215da..f926313ec18a8 100644 --- a/mysql-test/main/drop.test +++ b/mysql-test/main/drop.test @@ -96,7 +96,8 @@ drop table t1; # removing of database name from cache" reappeared in 5.1 as bug#19403 # In its case crash happened when one concurrently executed DROP DATABASE # and one of name-locking command. -# +# +--disable_service_connection --disable_warnings drop database if exists mysqltest; drop table if exists t1; @@ -125,6 +126,7 @@ connection addconroot1; disconnect addconroot1; --source include/wait_until_disconnected.inc connection default; +--enable_service_connection # # Bug#25858 Some DROP TABLE under LOCK TABLES can cause deadlocks diff --git a/mysql-test/main/dyncol.test b/mysql-test/main/dyncol.test index c0835de8c442d..286cc6216a6d5 100644 --- a/mysql-test/main/dyncol.test +++ b/mysql-test/main/dyncol.test @@ -1,6 +1,8 @@ # # Dynamic column function test # +# enable view-protocol after fix MDEV-27871 +-- source include/no_view_protocol.inc --source include/default_charset.inc diff --git a/mysql-test/main/events_2.test b/mysql-test/main/events_2.test index 2012f94e9f2c7..cd0d908b8703c 100644 --- a/mysql-test/main/events_2.test +++ b/mysql-test/main/events_2.test @@ -3,6 +3,8 @@ # Can't test with embedded server that doesn't support grants -- source include/not_embedded.inc +--disable_service_connection + set sql_mode=""; --source include/default_charset.inc @@ -523,3 +525,4 @@ let $wait_condition= --source include/wait_condition.inc drop database events_test; +--enable_service_connection diff --git a/mysql-test/main/events_bugs.test b/mysql-test/main/events_bugs.test index ab45446667e87..fe744de86c9f9 100644 --- a/mysql-test/main/events_bugs.test +++ b/mysql-test/main/events_bugs.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + #### t/events_bugs.test # # Last change: diff --git a/mysql-test/main/events_grant.test b/mysql-test/main/events_grant.test index 0c89e9d1f6c7c..cd5b691154226 100644 --- a/mysql-test/main/events_grant.test +++ b/mysql-test/main/events_grant.test @@ -2,7 +2,7 @@ -- source include/not_embedded.inc --source include/default_charset.inc - +--disable_service_connection CREATE DATABASE IF NOT EXISTS events_test; use events_test; # @@ -113,3 +113,4 @@ DROP DATABASE events_test2; --source include/check_events_off.inc DROP DATABASE events_test; +--enable_service_connection diff --git a/mysql-test/main/events_logs_tests.test b/mysql-test/main/events_logs_tests.test index c4ef133f46bf7..5d00c3ab9ce10 100644 --- a/mysql-test/main/events_logs_tests.test +++ b/mysql-test/main/events_logs_tests.test @@ -1,5 +1,6 @@ # Can't test with embedded server that doesn't support grants -- source include/not_embedded.inc +-- source include/no_view_protocol.inc set @save_long_query_time=@@long_query_time; --disable_warnings diff --git a/mysql-test/main/events_trans.test b/mysql-test/main/events_trans.test index eea24f195777f..cc83fa6e578e7 100644 --- a/mysql-test/main/events_trans.test +++ b/mysql-test/main/events_trans.test @@ -3,6 +3,7 @@ # -- source include/have_innodb.inc -- source include/not_embedded.inc +-- source include/no_view_protocol.inc set sql_mode=""; diff --git a/mysql-test/main/fast_prefix_index_fetch_innodb.test b/mysql-test/main/fast_prefix_index_fetch_innodb.test index 1987416ff871f..68d3dc0648d81 100644 --- a/mysql-test/main/fast_prefix_index_fetch_innodb.test +++ b/mysql-test/main/fast_prefix_index_fetch_innodb.test @@ -1,4 +1,5 @@ -- source include/have_innodb.inc +--disable_service_connection SET @save_opt= @@GLOBAL.innodb_prefix_index_cluster_optimization; set global innodb_prefix_index_cluster_optimization = ON; @@ -717,3 +718,4 @@ AND path IN ( '/fondsinvesteringer/', '/' ); DROP TABLE wp_blogs; SET GLOBAL innodb_prefix_index_cluster_optimization = @save_opt; +--enable_service_connection diff --git a/mysql-test/main/fix_priv_tables.test b/mysql-test/main/fix_priv_tables.test index 293d3915a0529..382417a6b1010 100644 --- a/mysql-test/main/fix_priv_tables.test +++ b/mysql-test/main/fix_priv_tables.test @@ -1,5 +1,6 @@ # Embedded server doesn't support external clients --source include/not_embedded.inc +--source include/no_view_protocol.inc # Don't run this test if $MYSQL_FIX_PRIVILEGE_TABLES isn't set # to the location of mysql_fix_privilege_tables.sql diff --git a/mysql-test/main/flush-innodb.test b/mysql-test/main/flush-innodb.test index bf7b79bb5a3b2..36d0d1e6e5e7b 100644 --- a/mysql-test/main/flush-innodb.test +++ b/mysql-test/main/flush-innodb.test @@ -1,5 +1,9 @@ --source include/have_innodb.inc +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + # MDEV-254: Server hang with FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT; UNLOCK TABLES; diff --git a/mysql-test/main/flush.test b/mysql-test/main/flush.test index 51b5c48c1375f..27ec63bc5ff0d 100644 --- a/mysql-test/main/flush.test +++ b/mysql-test/main/flush.test @@ -1,3 +1,5 @@ +--disable_service_connection + connect (con1,localhost,root,,); connect (con2,localhost,root,,); connection con1; @@ -703,4 +705,4 @@ UNLOCK TABLES; DROP VIEW v1; DROP TABLE t1; - +--enable_service_connection diff --git a/mysql-test/main/flush_logs_not_windows.test b/mysql-test/main/flush_logs_not_windows.test index af50e4bb9e80f..ff30062b3a361 100644 --- a/mysql-test/main/flush_logs_not_windows.test +++ b/mysql-test/main/flush_logs_not_windows.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + source include/not_windows.inc; source include/not_embedded.inc; # diff --git a/mysql-test/main/flush_table.test b/mysql-test/main/flush_table.test index e4fc1b0c39f46..91047c2d9d39c 100644 --- a/mysql-test/main/flush_table.test +++ b/mysql-test/main/flush_table.test @@ -6,6 +6,9 @@ # Should work in embedded server after mysqltest is fixed -- source include/not_embedded.inc + +--disable_service_connection + --disable_warnings drop table if exists t1,t2; --enable_warnings @@ -59,6 +62,7 @@ select * from t1; connection default; drop table t1; disconnect locker; +--enable_service_connection # # In the following test FLUSH TABLES produces a deadlock diff --git a/mysql-test/main/fulltext.test b/mysql-test/main/fulltext.test index d52f13ab97861..7f27a88300460 100644 --- a/mysql-test/main/fulltext.test +++ b/mysql-test/main/fulltext.test @@ -278,6 +278,7 @@ drop table t1; # # UTF8 # +--disable_service_connection SET NAMES latin1; CREATE TABLE t1 (t text character set utf8 not null, fulltext(t)); INSERT t1 VALUES ('Mit freundlichem Grόί'), ('aus Osnabrόck'); @@ -298,7 +299,7 @@ alter table t1 modify t varchar(200) collate latin1_german2_ci not null; SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrόck'); SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck'); DROP TABLE t1; - +--enable_service_connection # # bug#3964 # @@ -655,6 +656,7 @@ DROP TABLE t1; --echo # --echo # MDEV-6146 Can't mix (latin1_swedish_ci,NUMERIC) and (utf8_unicode_ci,IMPLICIT) for MATCH --echo # +--disable_service_connection SET NAMES utf8; CREATE TABLE t1 ( @@ -682,7 +684,7 @@ INSERT INTO t1 VALUES ('nnn5 x5 y5 ΓΆΓΆΓΆ5','mmm5 '); SELECT * FROM t1 WHERE MATCH (txt1,txt2) AGAINST ('ΓΆΓΆΓΆ1' IN BOOLEAN MODE); SELECT * FROM t1 WHERE MATCH (txt1,txt2) AGAINST ('ΓΉΓΉΓΉ2' IN BOOLEAN MODE); DROP TABLE t1; - +--enable_service_connection --echo # --echo # MDEV-14743: Server crashes in Item_func_match::init_search @@ -691,7 +693,10 @@ DROP TABLE t1; CREATE TABLE t1 (f VARCHAR(8)); INSERT INTO t1 VALUES ('foo'),('bar'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) ); +--enable_view_protocol SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ; explain extended SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ; diff --git a/mysql-test/main/fulltext2.test b/mysql-test/main/fulltext2.test index 78c7c859e9568..5f73505f9b319 100644 --- a/mysql-test/main/fulltext2.test +++ b/mysql-test/main/fulltext2.test @@ -232,9 +232,12 @@ set names latin1; # # BUG#19580 - FULLTEXT search produces wrong results on UTF-8 columns # +--disable_service_connection SET NAMES utf8; CREATE TABLE t1(a VARCHAR(255), FULLTEXT(a)) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO t1 VALUES('β€žMySQLβ€œ'); SELECT a FROM t1 WHERE MATCH a AGAINST('β€œMySQLβ€ž' IN BOOLEAN MODE); DROP TABLE t1; SET NAMES latin1; +--enable_service_connection + diff --git a/mysql-test/main/fulltext_left_join.test b/mysql-test/main/fulltext_left_join.test index 3a81c1a5d1ba3..8d08fba430113 100644 --- a/mysql-test/main/fulltext_left_join.test +++ b/mysql-test/main/fulltext_left_join.test @@ -26,8 +26,11 @@ INSERT INTO t2 VALUES('456', 'lui'); select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5) from t1 left join t2 on t2.id=t1.id; +#enable after fix MDEV-27871 +--disable_view_protocol select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE) from t1 left join t2 on t2.id=t1.id; +--enable_view_protocol drop table t1, t2; diff --git a/mysql-test/main/func_compress.test b/mysql-test/main/func_compress.test index 2a6c027670576..f41a58981548a 100644 --- a/mysql-test/main/func_compress.test +++ b/mysql-test/main/func_compress.test @@ -48,6 +48,9 @@ drop table t1; # note that when LOW_MEMORY is set the "test" below is meaningless # +#view protocol generates additional warning +--disable_view_protocol + set @@global.max_allowed_packet=1048576*100; --replace_result "''" XXX "'1'" XXX @@ -59,6 +62,8 @@ disconnect newconn; connection default; set @@global.max_allowed_packet=@save_max_allowed_packet; +--enable_view_protocol + # # Bug #18643: problem with null values # @@ -185,7 +190,9 @@ DROP TABLE t1; --echo # --echo # MDEV-23149 Server crashes in my_convert / ErrConvString::ptr / Item_char_typecast::check_truncation_with_warn --echo # +--disable_view_protocol select 'foo' in (cast(compress('bar') as char(4)), 'qux'); +--enable_view_protocol --echo # --echo # End of 10.2 tests diff --git a/mysql-test/main/func_concat.test b/mysql-test/main/func_concat.test index e1bda4be29e6b..070d341cb2d10 100644 --- a/mysql-test/main/func_concat.test +++ b/mysql-test/main/func_concat.test @@ -56,10 +56,16 @@ select 'a' union select concat('a', -0.0000); # # Bug#16716: subselect in concat() may lead to a wrong result # + +#enable after fix MDEV-27871 +--disable_view_protocol + select concat((select x from (select 'a' as x) as t1 ), (select y from (select 'b' as y) as t2 )) from (select 1 union select 2 ) as t3; +--enable_view_protocol + # End of 4.1 tests # diff --git a/mysql-test/main/func_debug.test b/mysql-test/main/func_debug.test index 8dd01650ed36b..0e45b05d1e6ab 100644 --- a/mysql-test/main/func_debug.test +++ b/mysql-test/main/func_debug.test @@ -24,11 +24,16 @@ SELECT 'a' IN ('a','b',NULL); SELECT 'a' NOT IN ('a','b'); SELECT 'a' NOT IN ('a','b',NULL); +#enable after fix MDEV-27871 +--disable_view_protocol + SELECT TIMESTAMP'2001-01-01 10:20:30' IN ('2001-01-01 10:20:30','2001-02-02 10:20:30'); SELECT TIMESTAMP'2001-01-01 10:20:30' IN ('2001-01-01 10:20:30','2001-02-02 10:20:30',NULL); SELECT TIMESTAMP'2001-01-01 10:20:30' NOT IN ('2001-01-01 10:20:30','2001-02-02 10:20:30'); SELECT TIMESTAMP'2001-01-01 10:20:30' NOT IN ('2001-01-01 10:20:30','2001-02-02 10:20:30',NULL); +--enable_view_protocol + SELECT TIME'10:20:30' IN ('10:20:30','10:20:30'); SELECT TIME'10:20:30' IN ('10:20:30','10:20:30',NULL); SELECT TIME'10:20:30' NOT IN ('10:20:30','10:20:30'); @@ -81,6 +86,9 @@ SELECT a NOT IN ('a','b','c') FROM t1; SELECT a NOT IN ('a','b','c',NULL) FROM t1; DROP TABLE t1; +#enable after fix MDEV-27871 +--disable_view_protocol + CREATE TABLE t1 (a DATE); SELECT a IN ('2001-01-01',DATE'2001-01-02',20010102,20010102.0,20010102e0) FROM t1; SELECT a IN ('2001-01-01',DATE'2001-01-02',20010102,20010102.0,20010102e0,NULL) FROM t1; @@ -102,6 +110,8 @@ SELECT a NOT IN ('2001-01-01',TIMESTAMP'2001-01-01 10:20:30',DATE'2001-01-01',TI SELECT a NOT IN ('2001-01-01',TIMESTAMP'2001-01-01 10:20:30',DATE'2001-01-01',TIME'10:20:30',20010101102030,20010101102030.0,20010101102030e0,NULL) FROM t1; DROP TABLE t1; +--enable_view_protocol + --echo # Constant predicant, compatible types, no bisect --echo # Bisect is not used because of non-constant expressions in the list CREATE TABLE t1 (a INT); @@ -146,6 +156,9 @@ SELECT TIME'10:20:30' NOT IN (a,'10:20:30') FROM t1; SELECT TIME'10:20:30' NOT IN (a,'10:20:30',NULL) FROM t1; DROP TABLE t1; +#enable after fix MDEV-27871 +--disable_view_protocol + CREATE TABLE t1 (a DATETIME); SELECT TIMESTAMP'2001-01-01 10:20:30' IN (a,TIMESTAMP'2001-01-01 10:20:30') FROM t1; SELECT TIMESTAMP'2001-01-01 10:20:30' IN (a,TIMESTAMP'2001-01-01 10:20:30',NULL) FROM t1; @@ -153,6 +166,7 @@ SELECT TIMESTAMP'2001-01-01 10:20:30' NOT IN (a,TIMESTAMP'2001-01-01 10:20:30') SELECT TIMESTAMP'2001-01-01 10:20:30' NOT IN (a,TIMESTAMP'2001-01-01 10:20:30',NULL) FROM t1; DROP TABLE t1; +--enable_view_protocol --echo # Constant predicant, incompatible types, no bisect SELECT 1 IN (1,2e0); @@ -175,6 +189,9 @@ SELECT 'a' IN ('a',2,NULL); SELECT 'a' NOT IN ('a',2); SELECT 'a' NOT IN ('a',2,NULL); +#enable after fix MDEV-27871 +--disable_view_protocol + SELECT TIME'10:20:30' IN (1,TIME'10:20:30'); SELECT TIME'10:20:30' IN (1,TIME'10:20:30',NULL); SELECT TIME'10:20:30' IN (102030, TIME'10:20:30',TIMESTAMP'2001-01-01 10:20:32'); @@ -203,6 +220,8 @@ SELECT a NOT IN (CAST(1 AS SIGNED), CAST(1 AS UNSIGNED),NULL) FROM t1; SELECT a NOT IN (CAST(1 AS DECIMAL),CAST(1 AS SIGNED), CAST(1 AS UNSIGNED)) FROM t1; SELECT a NOT IN (CAST(1 AS DECIMAL),CAST(1 AS SIGNED), CAST(1 AS UNSIGNED),NULL) FROM t1; +--enable_view_protocol + SELECT a IN (1,1.0) FROM t1; SELECT a IN (1,1.0,NULL) FROM t1; SELECT a NOT IN (1,1.0) FROM t1; @@ -260,6 +279,9 @@ SELECT a NOT IN ('a',1) FROM t1; SELECT a NOT IN ('a',TIME'10:20:30') FROM t1; DROP TABLE t1; +#enable after fix MDEV-27871 +--disable_view_protocol + CREATE TABLE t1 (a TIME); SELECT a IN (102030, TIME'10:20:30',TIMESTAMP'2001-01-01 10:20:32') FROM t1; SELECT a IN (102030, TIME'10:20:30',TIMESTAMP'2001-01-01 10:20:32',NULL) FROM t1; @@ -271,6 +293,8 @@ SELECT a NOT IN (102030, 102030, TIME'10:20:30',TIMESTAMP'2001-01-01 10:20:32') SELECT a NOT IN (102030, 102030, TIME'10:20:30',TIMESTAMP'2001-01-01 10:20:32',NULL) FROM t1; DROP TABLE t1; +--enable_view_protocol + # # ROW tests # @@ -413,9 +437,13 @@ DROP TABLE t1; --echo # --echo # MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32'); +--enable_view_protocol + PREPARE stmt FROM "SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32')"; EXECUTE stmt; diff --git a/mysql-test/main/func_default.test b/mysql-test/main/func_default.test index 25bf5d24b9f8d..3413f6bc1d861 100644 --- a/mysql-test/main/func_default.test +++ b/mysql-test/main/func_default.test @@ -142,6 +142,9 @@ DROP TABLE t1; --echo # --echo # MDEV-21028 Server crashes in Query_arena::set_query_arena upon SELECT from view --echo # +#view protocol generates additional statistics +--disable_view_protocol + create table t1 (a datetime default current_timestamp); insert into t1 () values (),(); create algorithm=temptable view v1 as select * from t1; @@ -153,6 +156,8 @@ select table_name,is_updatable from information_schema.views; drop view v1, v2; drop table t1; +--enable_view_protocol + create table t1 (v1 timestamp) select 'x'; show create table t1; select default(v1) from (select v1 from t1) dt; diff --git a/mysql-test/main/func_digest.test b/mysql-test/main/func_digest.test index e7d73b4f36878..afc3941e1b3cf 100644 --- a/mysql-test/main/func_digest.test +++ b/mysql-test/main/func_digest.test @@ -458,6 +458,8 @@ SELECT SHA2( x'f4259473bfd39877bfe9597353d7ce8dd520c66d1fc7884e4e03b655c63a77217 SELECT SHA2( x'd60da691585b7c0c3714905411ae8e3515e8490dbbaf07d1b2431f501a96c7bcf4f52766d7e9b2c9e460b5cafc08303e30fce6ad78a2b055a8d31672a13d20bdc4066a33adb277171d47473a37af2c7af05dd989c134bcf09ea48e532c1628f62f8a9880417e74ffca126e2d2c6b29f23e554b29fc2cd4a77dfcae7925e784', 512 ) = 'ec83376ff6f633ee2d898d87a6a91efb0788bce188fac7d3c4c35f81ba6015640dbfad1f8584557ec210478a0cb566f1490643ce602aa5abfab63d46f7f1d4ee' as NIST_SHA512_test_vector; SELECT SHA2( x'b7d5d5f8955d1ad349b9e618c7987814f6dc7bdc6c4ee59a79902026685468d601cc74965361583bb0a8aa14f892e3c21be3094ad9e58b69cc5d6d28a9bea4afc39dc45ed065d81af04c91e5eb85a4b2bab76d774aafd8837c52811270d51a1f03300e7996cf6319128be5b328da818bde42ef8a471494919156a60d460191cc', 512 ) = '6e7fb797dfca7577432c0b339fe9003b36942a549b112d32016b257c9a866e4385e01d4e757d4378b8e61f5a8a29aa73f2daafdaab23dfe4e0b93df21374e594' as NIST_SHA512_test_vector; +#view protocol generates additional warnings +--disable_view_protocol ## Test some unusual parameters items. ## First, the ones that must return NULL. SELECT SHA2( x'ff', 1 ); @@ -467,6 +469,7 @@ SELECT SHA2( x'ff', 511 ); SELECT SHA2( x'ff', least(123, 42) ); SELECT SHA2( x'ff', 10000000000000 ); SELECT SHA2( SHA2( NULL, 224), 224 ); +--enable_view_protocol ## Second, things that mustn't return NULL; SELECT SHA2( SHA2( x'ff', 224), 224 ) is not NULL; SELECT SHA2( SHA2( x'ff', NULL), 224 ) is not NULL; @@ -485,6 +488,8 @@ SELECT LENGTH(SHA2( 'computed', 512 )) / 2 * 8 = 512; --echo # --echo # Bug#54661 sha2() returns BINARY result --echo # + +--disable_view_protocol --enable_metadata SET NAMES binary; SELECT sha2('1',224); @@ -493,6 +498,7 @@ SELECT sha2('1',224); SET NAMES latin1; SELECT sha2('1',224); --disable_metadata +--disable_view_protocol --echo # --echo # Start of 10.1 tests diff --git a/mysql-test/main/func_encrypt_ucs2.test b/mysql-test/main/func_encrypt_ucs2.test index 1242c3b9e6ade..6c1306955aa81 100644 --- a/mysql-test/main/func_encrypt_ucs2.test +++ b/mysql-test/main/func_encrypt_ucs2.test @@ -8,5 +8,8 @@ SELECT CHAR_LENGTH(DES_ENCRYPT(0, CHAR('1' USING ucs2))); SELECT CONVERT(DES_ENCRYPT(0, CHAR('1' USING ucs2)),UNSIGNED); +#enable after fix MDEV-28643, MDEV-27871 +--disable_view_protocol SELECT CHAR_LENGTH(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' USING ucs2))); SELECT CONVERT(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' using ucs2)), UNSIGNED); +--enable_view_protocol diff --git a/mysql-test/main/func_gconcat.test b/mysql-test/main/func_gconcat.test index 3c21aa04ffc0e..e24dba5d04f76 100644 --- a/mysql-test/main/func_gconcat.test +++ b/mysql-test/main/func_gconcat.test @@ -1,6 +1,7 @@ # # simple test of group_concat function # + source include/have_sequence.inc; create table t1 (grp int, a bigint unsigned, c char(10) not null, d char(10) not null); @@ -403,7 +404,9 @@ drop table t1; create table t1 (f1 int unsigned, f2 varchar(255)); insert into t1 values (1,repeat('a',255)),(2,repeat('b',255)); --enable_metadata +--disable_view_protocol select f2,group_concat(f1) from t1 group by f2; +--enable_view_protocol --disable_metadata drop table t1; @@ -491,7 +494,9 @@ set names latin1; create table t1 (f1 int unsigned, f2 varchar(255)); insert into t1 values (1,repeat('a',255)),(2,repeat('b',255)); --enable_metadata +--disable_view_protocol select f2,group_concat(f1) from t1 group by f2; +--enable_view_protocol --disable_metadata drop table t1; @@ -931,7 +936,10 @@ SELECT * FROM (SELECT a,GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLU SELECT * FROM v1; DROP VIEW v1; +#enable after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30'); +--enable_view_protocol CREATE VIEW v1 AS SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30'); SELECT * FROM v1; diff --git a/mysql-test/main/func_group.test b/mysql-test/main/func_group.test index f91aee3e5775d..e34018aafd9fe 100644 --- a/mysql-test/main/func_group.test +++ b/mysql-test/main/func_group.test @@ -583,6 +583,8 @@ DROP TABLE t1; # # Bug #16792 query with subselect, join, and group not returning proper values # +#enable after fix MDEV-28573 +--disable_view_protocol CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 VALUES (1,1),(1,2),(2,3); @@ -593,6 +595,7 @@ SELECT AVG(2), BIT_AND(2), BIT_OR(2), BIT_XOR(2), COUNT(*), COUNT(12), COUNT(DISTINCT 12), MIN(2),MAX(2),STD(2), VARIANCE(2),SUM(2), GROUP_CONCAT(2),GROUP_CONCAT(DISTINCT 2); DROP TABLE t1; +--enable_view_protocol # End of 4.1 tests @@ -624,11 +627,13 @@ drop table t1, t2, t3; # # BUG#3190, WL#1639: Standard Deviation STDDEV - 2 different calculations # - +#enable after fix MDEV-28573 +--disable_view_protocol CREATE TABLE t1 (id int(11),value1 float(10,2)); INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00), (2,13.00); select id, stddev_pop(value1), var_pop(value1), stddev_samp(value1), var_samp(value1) from t1 group by id; DROP TABLE t1; +--enable_view_protocol # # BUG#8464 decimal AVG returns incorrect result @@ -964,6 +969,8 @@ INSERT INTO D VALUES (83,45,4,repeat(' X', 42)), (105,53,12,NULL); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT COUNT( int_nokey ) FROM derived1 AS X @@ -977,6 +984,7 @@ GROUP BY int_nokey LIMIT 1; DROP TABLE derived1; DROP TABLE D; +--enable_view_protocol # # Bug #39656: Behaviour different for agg functions with & without where - diff --git a/mysql-test/main/func_group_innodb.test b/mysql-test/main/func_group_innodb.test index c4914b97641a6..1a6c48fba41db 100644 --- a/mysql-test/main/func_group_innodb.test +++ b/mysql-test/main/func_group_innodb.test @@ -8,7 +8,10 @@ create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB; --enable_warnings insert into t1 values (1, 3); +#enable after fix MDEV-27871 +--disable_view_protocol select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ from t1 group by MAX_REQ; +--enable_view_protocol select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ; drop table t1; diff --git a/mysql-test/main/func_hybrid_type.test b/mysql-test/main/func_hybrid_type.test index 7d986130d7f93..6b7234f54124c 100644 --- a/mysql-test/main/func_hybrid_type.test +++ b/mysql-test/main/func_hybrid_type.test @@ -126,10 +126,12 @@ DROP TABLE t1; --echo # MDEV-4848 Wrong metadata or column type for LEAST(1.0,'10') --echo # --disable_ps_protocol +--disable_view_protocol --enable_metadata SELECT LEAST(1.0,'10'); --disable_metadata --enable_ps_protocol +--enable_view_protocol CREATE TABLE t1 AS SELECT LEAST(1.0,'10'); SHOW CREATE TABLE t1; DROP TABLE t1; @@ -148,6 +150,7 @@ DROP TABLE t1; --echo # SET timestamp=UNIX_TIMESTAMP('2010-01-01 01:02:03'); --disable_ps_protocol +--disable_view_protocol --enable_metadata # Expect DATETIME type (12) in metadata SELECT GREATEST(CURRENT_TIME, CURRENT_DATE), COALESCE(CURRENT_TIME, CURRENT_DATE); @@ -160,6 +163,7 @@ SELECT COALESCE(a,a) FROM t1; DROP TABLE t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol CREATE TABLE t1 (a TIMESTAMP, b DATETIME); CREATE TABLE t2 AS SELECT LEAST(a,a),LEAST(b,b),LEAST(a,b) FROM t1; SHOW CREATE TABLE t2; @@ -179,6 +183,7 @@ SELECT MAX(COALESCE(c4)) AS c4 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -189,6 +194,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -199,6 +205,7 @@ SELECT MAX(COALESCE(c2)) AS c2 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -207,6 +214,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -217,6 +225,7 @@ SELECT MAX(COALESCE(c2)) AS c2 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -225,6 +234,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -236,6 +246,7 @@ SELECT MAX(COALESCE(c3)) AS c3 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -245,6 +256,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -256,6 +268,7 @@ SELECT MAX(COALESCE(c3)) AS c3 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -265,6 +278,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -274,6 +288,7 @@ SELECT MAX(COALESCE(c1)) AS c1 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -281,6 +296,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -290,6 +306,7 @@ SELECT MAX(COALESCE(c1)) AS c1 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -297,6 +314,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -313,6 +331,7 @@ SELECT @c4:=c4 AS c4 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -323,6 +342,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -333,6 +353,7 @@ SELECT @c2:=c2 AS c2 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -341,6 +362,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -351,6 +373,7 @@ SELECT @c2:=c2 AS c2 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -359,6 +382,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -370,6 +394,7 @@ SELECT @c:=c3 AS c3 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -379,6 +404,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -390,6 +416,7 @@ SELECT @c:=c3 AS c3 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -399,6 +426,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -408,6 +436,7 @@ SELECT @c:=c1 AS c1 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -415,6 +444,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -424,6 +454,7 @@ SELECT @c:=c1 AS c1 FROM t1; SHOW CREATE TABLE t2; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -431,6 +462,7 @@ SELECT FROM t1; --disable_metadata --enable_ps_protocol +--enable_view_protocol DROP TABLE t2; DROP TABLE t1; @@ -438,15 +470,20 @@ DROP TABLE t1; --echo # --echo # MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool) --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CASE 0 WHEN 1 THEN (CASE 2 WHEN 3 THEN NULL END) WHEN 4 THEN 5 END; +--enable_view_protocol SELECT CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END; SELECT CASE WHEN TRUE THEN COALESCE(NULL) ELSE 4 END; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT COALESCE(COALESCE(NULL), 1.1) AS c0, IF(0, COALESCE(NULL), 1.1) AS c1; --disable_metadata --enable_ps_protocol +--enable_view_protocol --echo # @@ -653,6 +690,7 @@ SET sql_mode=DEFAULT; SET sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE'; +--disable_view_protocol --disable_ps_protocol --enable_metadata SELECT @@ -666,6 +704,7 @@ SELECT LEAST(20010001,TIMESTAMP'2001-01-01 00:00:00') AS i4; --disable_metadata --enable_ps_protocol +--enable_view_protocol SET sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE'; CREATE TABLE t1 AS SELECT diff --git a/mysql-test/main/func_if.test b/mysql-test/main/func_if.test index dc6749da26fc4..d18bdc3070e2a 100644 --- a/mysql-test/main/func_if.test +++ b/mysql-test/main/func_if.test @@ -119,6 +119,8 @@ select if(0, 18446744073709551610, 18446744073709551610); CREATE TABLE t1(a DECIMAL(10,3)); +#enable after fix MDEV-27871 +--disable_view_protocol # check : should be fast. more than few secs means failure. SELECT t1.a, IF((ROUND(t1.a,2)=1), 2, @@ -152,7 +154,7 @@ SELECT t1.a, IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,0)))))))))))))))))))))))))))))) + 1 FROM t1; - +--enable_view_protocol DROP TABLE t1; # diff --git a/mysql-test/main/func_in.test b/mysql-test/main/func_in.test index b99fad159c220..7ac34e73995a8 100644 --- a/mysql-test/main/func_in.test +++ b/mysql-test/main/func_in.test @@ -354,6 +354,8 @@ SELECT HEX(a) FROM t2 WHERE a IN SELECT HEX(a) FROM t2 WHERE a IN (CAST(0x7ffffffffffffffe AS UNSIGNED), CAST(0x7fffffffffffffff AS UNSIGNED)); +#view protocol generates additional warning +--disable_view_protocol SELECT HEX(a) FROM t2 WHERE a IN (0x7ffffffffffffffe, 0x7fffffffffffffff, @@ -368,6 +370,8 @@ CREATE TABLE t4 (a DATE); INSERT INTO t4 VALUES ('1972-02-06'), ('1972-07-29'); SELECT * FROM t4 WHERE a IN ('1972-02-06','19772-07-29'); +--enable_view_protocol + DROP TABLE t1,t2,t3,t4; # @@ -402,8 +406,11 @@ create table t2(f2 int, index t2f2(f2)); insert into t2 values(0),(1),(2); select f2 from t2 where f2 in ('a',2); explain select f2 from t2 where f2 in ('a',2); +#view protocol generates additional warning +--disable_view_protocol select f2 from t2 where f2 in ('a','b'); explain select f2 from t2 where f2 in ('a','b'); +--enable_view_protocol select f2 from t2 where f2 in (1,'b'); explain select f2 from t2 where f2 in (1,'b'); drop table t1, t2; @@ -658,12 +665,14 @@ DROP TABLE t1; --echo # --echo # MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result --echo # - +#enable after fix MDEV-27871 +--disable_view_protocol SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32'); PREPARE stmt FROM "SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32')"; EXECUTE stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; +--enable_view_protocol --echo # --echo # MDEV-11497 Wrong result for (int_expr IN (mixture of signed and unsigned expressions)) @@ -686,7 +695,12 @@ DROP TABLE t1; # when using Arg_comparator (e.g. in binary comparison operators), and # when not using it (e.g. in IN predicate). +#view protocol generates additional warning +--disable_view_protocol SELECT TIME'00:00:00'='' AS c1_true, TIME'00:00:00' IN ('', TIME'10:20:30') AS c2_true, TIME'00:00:00' NOT IN ('', TIME'10:20:30') AS c3_false; + +--enable_view_protocol + diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test index 33e67d35f86da..3001f0770e487 100644 --- a/mysql-test/main/func_json.test +++ b/mysql-test/main/func_json.test @@ -9,19 +9,29 @@ select json_value('{"key1":123}', '$.key2'); select json_value('{"key1":123}', '$.key1'); select json_value('{"key1":[1,2,3]}', '$.key1'); select json_value('{"key1": [1,2,3], "key1":123}', '$.key1'); + +#enable after fix MDEV-27871 +--disable_view_protocol select JSON_VALUE('{ "x": [0,1], "y": "[0,1]", "z": "Mon\\\"t\\\"y" }','$.z'); +--enable_view_protocol select json_query('{"key1":{"a":1, "b":[1,2]}}', '$.key2'); select json_query('{"key1":{"a":1, "b":[1,2]}}', '$.key1'); select json_query('{"key1": 1}', '$.key1'); select json_query('{"key1":123, "key1": [1,2,3]}', '$.key1'); +#enable after fix MDEV-27871 +--disable_view_protocol select json_query('{"key1":123, "key1": [1,2,3]}', concat('$', repeat('.k', 1000))); +--enable_view_protocol select json_array(); select json_array(1); +#enable after fix MDEV-28649 +--disable_view_protocol select json_array(1, "text", false, null); select json_array_append('["a", "b"]', '$', FALSE); +--enable_view_protocol select json_array_append('{"k1":1, "k2":["a", "b"]}', '$.k2', 2); select json_array_append('["a", ["b", "c"], "d"]', '$[0]', 2); @@ -29,9 +39,15 @@ select json_array_insert('["a", {"b": [1, 2]}, [3, 4]]', '$[1]', 'x'); select json_array_insert('["a", {"b": [1, 2]}, [3, 4]]', '$[2]', 'x'); select json_array_insert('["a", {"b": [1, 2]}, [3, 4]]', '$[3]', 'x'); select json_array_insert('["a", {"b": [1, 2]}, [3, 4]]', '$[4]', 'x'); +#enable after fix MDEV-27871 +--disable_view_protocol select json_array_insert('["a", {"b": [1, 2]}, [3, 4]]', '$[1].b[0]', 'x'); +--enable_view_protocol select json_array_insert('true', '$', 1); +#enable after fix MDEV-27871 +--disable_view_protocol select json_array_insert('["a", {"b": [1, 2]}, [3, 4]]', '$[2][1]', 'y'); +--enable_view_protocol select json_contains('{"k1":123, "k2":345}', '123', '$.k1'); select json_contains('"you"', '"you"'); @@ -56,7 +72,10 @@ select json_contains('{"a":1}', '{}'); select json_contains('[1, {"a":1}]', '{}'); select json_contains('[1, {"a":1}]', '{"a":1}'); select json_contains('[{"abc":"def", "def":"abc"}]', '["foo","bar"]'); +#enable after fix MDEV-27871 +--disable_view_protocol select json_contains('[{"abc":"def", "def":"abc"}, "bar"]', '["bar", {}]'); +--disable_view_protocol select json_contains('[{"a":"b"},{"c":"d"}]','{"c":"d"}'); select json_contains_path('{"key1":1, "key2":[2,3]}', "oNE", "$.key2[1]"); diff --git a/mysql-test/main/func_like.test b/mysql-test/main/func_like.test index ef13d46c2686e..7339743afe4a2 100644 --- a/mysql-test/main/func_like.test +++ b/mysql-test/main/func_like.test @@ -57,6 +57,7 @@ drop table t1; # Test like with non-default character set # +--disable_service_connection SET NAMES koi8r; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET koi8r); @@ -71,6 +72,7 @@ SELECT * FROM t1 WHERE a LIKE '% SELECT * FROM t1 WHERE a LIKE 'ΖωΧΑ%'; DROP TABLE t1; +--enable_service_connection # Bug #2547 Strange "like" behaviour in tables with default charset=cp1250 # Test like with non-default character set using TurboBM @@ -99,6 +101,7 @@ select _cp866'aaaaaaaaa' like _cp866'%aaaa%' collate cp866_bin; # # Check 8bit escape character # +--disable_service_connection set names koi8r; select 'andre%' like 'andreΚ%' escape 'Κ'; @@ -112,6 +115,7 @@ select 'andre%' like 'andre # select _cp1251'andre%' like convert('andreΚ%' using cp1251) escape 'Κ'; +--enable_service_connection --echo End of 4.1 tests diff --git a/mysql-test/main/func_math.test b/mysql-test/main/func_math.test index 70adff02a22f5..1b8ccd7f9bbc1 100644 --- a/mysql-test/main/func_math.test +++ b/mysql-test/main/func_math.test @@ -206,9 +206,15 @@ select floor(cast(-2 as unsigned)), floor(18446744073709551614), floor(-2); select format(cast(-2 as unsigned), 2), format(18446744073709551614, 2), format(-2, 2); select sqrt(cast(-2 as unsigned)), sqrt(18446744073709551614), sqrt(-2); select round(cast(-2 as unsigned), 1), round(18446744073709551614, 1), round(-2, 1); +#view protocol generates additional warning +--disable_view_protocol select round(4, cast(-2 as unsigned)), round(4, 18446744073709551614), round(4, -2); +--enable_view_protocol select truncate(cast(-2 as unsigned), 1), truncate(18446744073709551614, 1), truncate(-2, 1); +#view protocol generates additional warning +--disable_view_protocol select truncate(4, cast(-2 as unsigned)), truncate(4, 18446744073709551614), truncate(4, -2); +--enable_view_protocol select round(10000000000000000000, -19), truncate(10000000000000000000, -19); select round(1e0, -309), truncate(1e0, -309); select round(1e1,308), truncate(1e1, 308); @@ -516,7 +522,10 @@ SELECT @a / 0.5; SELECT COT(1/0); SELECT -1 + 9223372036854775808; SELECT 2 DIV -2; +#view protocol generates additional warning +--disable_view_protocol SELECT -(1 DIV 0); +--enable_view_protocol # Crashed the server with SIGFPE before the bugfix SELECT -9223372036854775808 MOD -1; @@ -671,7 +680,10 @@ SELECT STDDEV_POP(ROUND(0,@A:=2009)) FROM (SELECT 1 UNION SELECT 2) fake_table; CREATE TABLE t1 ( pk int NOT NULL, i1 int NOT NULL, d1 date NOT NULL, t1 time); INSERT INTO t1 VALUES (7,9,'2007-08-15','03:55:02'),(8,7,'1993-06-05','04:17:51'),(9,7,'2034-07-01','17:31:12'),(10,0,'1998-08-24','08:09:27'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT DISTINCT STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) FROM t1; +--enable_view_protocol DROP TABLE t1; CREATE TABLE t1 (a VARCHAR(128)); @@ -791,7 +803,10 @@ select 0=0, 0=-0, 0.0= -0.0, 0.0 = -(0.0), 0.0E1=-0.0E1, 0.0E1=-(0.0E1); --echo # CRC32 tests --echo # +#enable after fix MDEV-28535 +--disable_view_protocol select CRC32(NULL), CRC32(''), CRC32('MySQL'), CRC32('mysql'), CRC32('01234567'), CRC32('012345678'), CRC32(REPEAT('ABCDEfghij', 20)), CRC32(REPEAT('0123456789', 200)); +--enable_view_protocol --echo # --echo # Start of 10.3 tests @@ -844,7 +859,10 @@ SET sql_mode=DEFAULT; --echo # Bug#26495791 - EXPAND TEST SUITE TO INCLUDE CRC32 TESTS --echo # +#enable after fix MDEV-28535 +--disable_view_protocol SELECT CRC32(NULL), CRC32(''), CRC32('MySQL'), CRC32('mysql'); +--enable_view_protocol SELECT CRC32('01234567'), CRC32('012345678'); SELECT CRC32('~!@$%^*'), CRC32('-0.0001'); SELECT CRC32(99999999999999999999999999999999); diff --git a/mysql-test/main/func_misc.test b/mysql-test/main/func_misc.test index c984b73c648d8..576166a77836f 100644 --- a/mysql-test/main/func_misc.test +++ b/mysql-test/main/func_misc.test @@ -153,7 +153,10 @@ select benchmark(100, (select avg(func_26093_a(a)) from table_26093)); select @invoked; set @invoked := 0; +#enable after fix MDEV-27871 +--disable_view_protocol select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093)); +--enable_view_protocol # Returns 1000, due to rand() preventing caching. select @invoked; @@ -262,10 +265,12 @@ set @@session.time_zone=@save_tz; # # Bug#42014: Crash, name_const with collate # +--disable_view_protocol CREATE TABLE t1 (a DATE); SELECT * FROM t1 WHERE a = NAME_CONST('reportDate', _binary'2009-01-09' COLLATE 'binary'); DROP TABLE t1; +--enable_view_protocol # # Bug#35515: Aliases of variables in binary log are ignored with NAME_CONST @@ -626,6 +631,8 @@ DROP TABLE t1; --echo # GET_LOCK, RELEASE_LOCK, IS_USED_LOCK functions test --echo # +--disable_service_connection + --echo # IS_USED_LOCK, IS_FREE_LOCK: the lock is not acquired --echo # Note: IS_USED_LOCK returns NULL if the lock is unused select is_used_lock('test'); @@ -786,6 +793,7 @@ select is_free_lock(repeat('a', 193)); --error ER_TOO_LONG_IDENT select release_lock(repeat('a', 193)); +--enable_service_connection --echo --echo # -- @@ -936,8 +944,11 @@ SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8')); SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8')); SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::')); SELECT INET6_NTOA(INET6_ATON('0000:0000::0000:0001')); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')); SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')); +--enable_view_protocol SELECT INET6_NTOA(INET6_ATON('::C0A8:0102')); SELECT INET6_NTOA(INET6_ATON('::c0a8:0102')); SELECT INET6_NTOA(INET6_ATON('::192.168.1.2')); @@ -1108,12 +1119,14 @@ select release_lock('test'); --echo # --echo # MDEV-13685 Can not replay binary log due to Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'concat' --echo # +--disable_service_connection SET NAMES utf8; SELECT COERCIBILITY(NAME_CONST('name','test')); SELECT COERCIBILITY(NAME_CONST('name',TIME'00:00:00')); SELECT COERCIBILITY(NAME_CONST('name',15)); SELECT CONCAT(NAME_CONST('name',15),'였'); SET NAMES latin1; +--enable_service_connection --echo # --echo # MDEV-14116 INET6_NTOA output is set as null to varchar(39) variable @@ -1228,9 +1241,11 @@ SELECT RELEASE_LOCK('foo'); --enable_metadata --disable_ps_protocol +--disable_view_protocol SELECT INET_ATON("255.255.255.255.255.255.255.255"); +--enable_view_protocol --enable_ps_protocol --disable_metadata @@ -1240,7 +1255,9 @@ SELECT INET_ATON("255.255.255.255.255.255.255.255"); --enable_metadata --disable_ps_protocol +--disable_view_protocol SELECT 18446744073709551615 AS c1, name_const('a',18446744073709551615) AS c2; +--enable_view_protocol --enable_ps_protocol --disable_metadata diff --git a/mysql-test/main/func_regexp_pcre.test b/mysql-test/main/func_regexp_pcre.test index de0fe94b7c1a5..fdf5a7c27359c 100644 --- a/mysql-test/main/func_regexp_pcre.test +++ b/mysql-test/main/func_regexp_pcre.test @@ -1,4 +1,4 @@ - +--disable_service_connection SET NAMES utf8; --echo # @@ -325,11 +325,13 @@ SELECT REGEXP_INSTR('вася','Π²'); SELECT REGEXP_INSTR('вася','Π°'); SELECT REGEXP_INSTR('вася','с'); SELECT REGEXP_INSTR('вася','я'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('Π²' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('Π°' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('с' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('я' USING koi8r)); - +--enable_view_protocol --echo # --echo # Checking REGEXP_SUBSTR @@ -349,9 +351,10 @@ CREATE TABLE t1 AS SELECT REGEXP_SUBSTR('abc','b')+0; SHOW CREATE TABLE t1; DROP TABLE t1; - +#enable after fix MDEV-27871 +--disable_view_protocol SELECT REGEXP_SUBSTR('See https://mariadb.org/en/foundation/ for details', 'https?://[^/]*'); - +--enable_view_protocol --echo # --echo # MDEV-6027 RLIKE: "." no longer matching new line @@ -368,11 +371,14 @@ SELECT 'a\nb' RLIKE 'a.b'; SELECT 'a\nb' RLIKE '(?-s)a.b'; SET default_regex_flags=DEFAULT; +#enable after fix MDEV-27871 +--disable_view_protocol --error ER_REGEXP_ERROR SELECT REGEXP_SUBSTR('Monday Mon','^((?Mon|Fri|Sun)day|(?Tue)sday).*(?P=DN)$'); SET default_regex_flags='DUPNAMES'; SELECT REGEXP_SUBSTR('Monday Mon','^((?Mon|Fri|Sun)day|(?Tue)sday).*(?P=DN)$'); SELECT REGEXP_SUBSTR('Tuesday Tue','^((?Mon|Fri|Sun)day|(?Tue)sday).*(?P=DN)$'); +--enable_view_protocol SET default_regex_flags=DEFAULT; SELECT 'AB' RLIKE 'A B'; @@ -403,7 +409,10 @@ SET default_regex_flags=DEFAULT; --echo # --echo # MDEV-6965 non-captured group \2 in regexp_replace --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that'); +--enable_view_protocol --echo # --echo # MDEV-8102 REGEXP function fails to match hex values when expression is stored as a variable @@ -436,6 +445,8 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral, # # MDEV-13173 An RLIKE that previously worked on 10.0 now returns "Got error 'pcre_exec: recursion limit of 100 exceeded' from regexp" # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CONCAT(REPEAT('100,',60),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT CONCAT(REPEAT('100,',400),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'; @@ -451,6 +462,7 @@ SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',400),'101'), '^(([1-9][0-9]*),) SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',60),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); --replace_regex /[0-9]+ exceeded/NUM exceeded/ SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',400),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', '')); +--enable_view_protocol # # MDEV-12942 REGEXP_INSTR returns 1 when using brackets @@ -463,3 +475,4 @@ SELECT REGEXP_INSTR('a_kollision', 'o([lm])\\1'); # MDEV-12939 A query crashes MariaDB in Item_func_regex::cleanup # SELECT a FROM (SELECT "aa" a) t WHERE a REGEXP '[0-9]'; +--enable_service_connection diff --git a/mysql-test/main/func_rollback.test b/mysql-test/main/func_rollback.test index 87930909f91b8..e8af4ef2eff56 100644 --- a/mysql-test/main/func_rollback.test +++ b/mysql-test/main/func_rollback.test @@ -38,6 +38,7 @@ # Created: # 2008-04-09 mleich # +-- source include/no_view_protocol.inc let $fixed_bug_35877 = 0; diff --git a/mysql-test/main/func_sapdb.test b/mysql-test/main/func_sapdb.test index 51bdebbec6d2e..7ded1cece7377 100644 --- a/mysql-test/main/func_sapdb.test +++ b/mysql-test/main/func_sapdb.test @@ -13,6 +13,8 @@ select extract(SECOND_MICROSECOND FROM "1999-01-02 10:11:12.000123"); select extract(MICROSECOND FROM "1999-01-02 10:11:12.000123"); select date_format("1997-12-31 23:59:59.000002", "%f"); +#enable after fix MDEV-27871 +--disable_view_protocol select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND); @@ -24,6 +26,7 @@ select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROS select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND); +--enable_view_protocol #Date functions select adddate("1997-12-31 23:59:59.000001", 10); @@ -53,16 +56,22 @@ select makedate(100,1); select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002"); select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002"); +#enable after fix MDEV-27871 +--disable_view_protocol select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999"); select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999"); +--enable_view_protocol select subtime("01:00:00.999999", "02:00:00.999998"); select subtime("02:01:01.999999", "01:01:01.999999"); # PS doesn't support fractional seconds --disable_ps_protocol +#enable after fix MDEV-27871 +--disable_view_protocol select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002"); select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002"); select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002"); +--enable_view_protocol select timediff("1997-12-31 23:59:59.000001","23:59:59.000001"); select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001"); select timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50"); @@ -143,9 +152,12 @@ select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f"); # # calculations involving negative time values ignored sign +#enable after fix MDEV-27871 +--disable_view_protocol select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00'); select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00'); select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10') 0 GROUP BY t2.b; @@ -1403,6 +1477,7 @@ SELECT DECODE((SELECT ENCODE('secret', 'ABC') FROM t1,t2 WHERE t1.a = t2.a GROUP SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), 'ABC') FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; +--enable_view_protocol TRUNCATE TABLE t1; TRUNCATE TABLE t2; @@ -1410,8 +1485,11 @@ TRUNCATE TABLE t2; INSERT INTO t1 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1); INSERT INTO t2 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b LIMIT 1), t2.a) FROM t2 WHERE t2.b = 1 GROUP BY t2.b; +--enable_view_protocol DROP TABLE t1, t2; @@ -1429,7 +1507,10 @@ DROP TABLE t1; --echo # Bug#57810 case/when/then : Assertion failed: length || !scale --echo # SELECT '1' IN ('1', SUBSTRING(-9223372036854775809, 1)); +#view protocol generates additional warning +--disable_view_protocol SELECT CONVERT(('' IN (REVERSE(CAST(('') AS DECIMAL)), '')), CHAR(3)); +--enable_view_protocol --echo # --echo # Bug#58165: "my_empty_string" gets modified and causes LOAD DATA to fail @@ -1511,7 +1592,10 @@ DROP TABLE t; # WL#4584 Internationalized number format # SELECT format(12345678901234567890.123, 3); +#view protocol generates additional warning +--disable_view_protocol SELECT format(12345678901234567890.123, 3, NULL); +--disable_view_protocol SELECT format(12345678901234567890.123, 3, 'ar_AE'); SELECT format(12345678901234567890.123, 3, 'ar_SA'); SELECT format(12345678901234567890.123, 3, 'be_BY'); @@ -1568,17 +1652,23 @@ SELECT CONV(1,-2147483648,-2147483648); --echo # Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT (rpad(1.0,2048,1)) IS NOT FALSE; SELECT ((+0) IN ((0b111111111111111111111111111111111111111111111111111),(rpad(1.0,2048,1)), (32767.1))); SELECT ((rpad(1.0,2048,1)) = ('4(') ^ (0.1)); +--enable_view_protocol --error 1690 SELECT pow((rpad(10.0,2048,1)),(b'1111111111111111111111111111111111111111111')); SELECT ((rpad(1.0,2048,1)) + (0) ^ ('../')); +#enable after fix MDEV-28585 +--disable_view_protocol SELECT stddev_samp(rpad(1.0,2048,1)); +--enable_view_protocol SELECT ((127.1) not in ((rpad(1.0,2048,1)),(''),(-1.1))); SELECT ((0xf3) * (rpad(1.0,2048,1)) << (0xcc)); @@ -1976,11 +2066,13 @@ DROP TABLE t1; --echo # MDEV-19359 ASAN heap-use-after-free in copy_if_not_alloced / make_sortkey --echo # +#check and enable after fix MDEV-28536 +--disable_view_protocol CREATE TABLE t1 (a INT, b TIME, c TIME); INSERT INTO t1 VALUES (NULL,'22:56:45','22:56:45'),(4,'12:51:42','12:51:42'); SELECT REPLACE( BINARY c, a, b ) f FROM t1 GROUP BY f WITH ROLLUP; DROP TABLE t1; - +--enable_view_protocol --echo # --echo # End of 10.1 tests @@ -1995,7 +2087,10 @@ DROP TABLE t1; --echo # MDEV-24742 Server crashes in Charset::numchars / String::numchars --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux'); +--enable_view_protocol --echo # --echo # Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY @@ -2046,6 +2141,7 @@ DROP TABLE locale_format; --echo # --echo # MDEV-12685 Oracle-compatible function CHR() --echo # +--disable_service_connection select chr(65); create database mysqltest1 CHARACTER SET = 'utf8' COLLATE = 'utf8_bin'; use mysqltest1; @@ -2053,6 +2149,7 @@ select charset(chr(65)), length(chr(65)),char_length(chr(65)); select charset(chr(14844588)), length(chr(14844588)),char_length(chr(14844588)); drop database mysqltest1; use test; +--enable_service_connection --echo # --echo # MDEV-12592 Illegal mix of collations with the HEX function diff --git a/mysql-test/main/func_system.test b/mysql-test/main/func_system.test index d9f2bda750a5c..7b88b6f36eed9 100644 --- a/mysql-test/main/func_system.test +++ b/mysql-test/main/func_system.test @@ -65,12 +65,13 @@ drop table t1; --echo --echo +--disable_service_connection SET NAMES utf8; create database betΓ€ubungsmittelverschreibungsverordnung; use betΓ€ubungsmittelverschreibungsverordnung; select database() as "database" union all select database(); drop database betΓ€ubungsmittelverschreibungsverordnung; - +--enable_service_connection --echo # --echo # End of 10.2 tests diff --git a/mysql-test/main/func_test.test b/mysql-test/main/func_test.test index 570fd0ae87aa2..02b08d13dbed6 100644 --- a/mysql-test/main/func_test.test +++ b/mysql-test/main/func_test.test @@ -6,7 +6,10 @@ drop table if exists t1,t2; # select 0=0,1>0,1>=1,1<0,1<=0,1!=0,strcmp("abc","abcd"),strcmp("b","a"),strcmp("a","a") ; select "a"<"b","a"<="b","b">="a","b">"a","a"="A","a"<>"b"; -select "a "="A", "A "="a", "a " <= "A b"; +#enable after fix MDEV-28535 +--disable_view_protocol +select "a "="A", "A "="a", "a " <= "A b"; +--enable_view_protocol select "abc" like "a%", "abc" not like "%d%", "a%" like "a\%","abc%" like "a%\%","abcd" like "a%b_%d", "a" like "%%a","abcde" like "a%_e","abc" like "abc%"; select "a" like "%%b","a" like "%%ab","ab" like "a\%", "ab" like "_", "ab" like "ab_", "abc" like "%_d", "abc" like "abc%d"; select '?' like '|%', '?' like '|%' ESCAPE '|', '%' like '|%', '%' like '|%' ESCAPE '|', '%' like '%'; @@ -15,7 +18,10 @@ select "Det h select "aba" regexp concat("^","a"); select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0; select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3; +#enable after fix MDEV-28535 +--disable_view_protocol select 'b' between 'a' and 'c', 'B' between 'a' and 'c'; +--enable_view_protocol select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0); select -1.49 or -1.49,0.6 or 0.6; select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; diff --git a/mysql-test/main/func_time.test b/mysql-test/main/func_time.test index 3a1bb2bcb585a..b721d1c3649cd 100644 --- a/mysql-test/main/func_time.test +++ b/mysql-test/main/func_time.test @@ -12,7 +12,10 @@ select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days( select period_add("9602",-12),period_diff(199505,"9404") ; select now()-now(),weekday(curdate())-weekday(now()),unix_timestamp()-unix_timestamp(now()); +#enable after fix MDEV-27871 +--disable_view_protocol select from_unixtime(unix_timestamp("1994-03-02 10:11:12")),from_unixtime(unix_timestamp("1994-03-02 10:11:12"),"%Y-%m-%d %h:%i:%s"),from_unixtime(unix_timestamp("1994-03-02 10:11:12"))+0; +--enable_view_protocol select sec_to_time(9001),sec_to_time(9001)+0,time_to_sec("15:12:22"), sec_to_time(time_to_sec("0:30:47")/6.21); select sec_to_time(9001.1), time_to_sec('15:12:22.123456'), time_to_sec(15.5566778899); @@ -24,11 +27,14 @@ select sec_to_time(-9001.1), sec_to_time(-9001.1) / 1, select sec_to_time(90011e-1), sec_to_time(1234567890123e30); select sec_to_time(1234567890123), sec_to_time('99999999999999999999999999999'); select now()-curdate()*1000000-curtime(); +#enable after fix MDEV-27871 +--disable_view_protocol select strcmp(current_timestamp(),concat(current_date()," ",current_time())); select strcmp(localtime(),concat(current_date()," ",current_time())); select strcmp(localtimestamp(),concat(current_date()," ",current_time())); select date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w"); select date_format("1997-01-02", concat("%M %W %D ","%Y %y %m %d %h %i %s %w")); +--enable_view_protocol select dayofmonth("1997-01-02"),dayofmonth(19970323); select month("1997-01-02"),year("98-02-03"),dayofyear("1997-12-31"); select month("2001-02-00"),year("2001-00-00"); @@ -78,8 +84,11 @@ select time_format(000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(199801310000 select time_format(010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T'); select time_format(131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T'); select time_format(010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T'),date_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T'); +#enable after fix MDEV-27871 +--disable_view_protocol select date_format(concat('19980131',131415),'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w'); select date_format(19980021000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w'); +--enable_view_protocol select date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND); select date_add("1997-12-31 23:59:59",INTERVAL 1 MINUTE); select date_add("1997-12-31 23:59:59",INTERVAL 1 HOUR); @@ -118,9 +127,12 @@ select date_add("1997-12-31 23:59:59",INTERVAL "10000:1" MINUTE_SECOND); select date_add("1997-12-31 23:59:59",INTERVAL "-10000:1" HOUR_MINUTE); select date_add("1997-12-31 23:59:59",INTERVAL "10000:1" DAY_HOUR); select date_add("1997-12-31 23:59:59",INTERVAL "-100 1" YEAR_MONTH); +#enable after fix MDEV-27871 +--disable_view_protocol select date_add("1997-12-31 23:59:59",INTERVAL "10000:99:99" HOUR_SECOND); select date_add("1997-12-31 23:59:59",INTERVAL " -10000 99:99" DAY_MINUTE); select date_add("1997-12-31 23:59:59",INTERVAL "10000 99:99:99" DAY_SECOND); +--enable_view_protocol select "1997-12-31 23:59:59" + INTERVAL 1 SECOND; select INTERVAL 1 DAY + "1997-12-31"; select "1998-01-01 00:00:00" - INTERVAL 1 SECOND; @@ -169,15 +181,22 @@ SELECT EXTRACT(QUARTER FROM '2004-12-15') AS quarter; # # MySQL Bugs: #12356: DATE_SUB or DATE_ADD incorrectly returns null # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE); SELECT DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE); +--enable_view_protocol # # Test big intervals (Bug #3498) # SELECT "1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND; SELECT "1900-01-01 00:00:00" + INTERVAL "1:2147483647" MINUTE_SECOND; -SELECT "1900-01-01 00:00:00" + INTERVAL "100000000:214748364700" MINUTE_SECOND;SELECT "1900-01-01 00:00:00" + INTERVAL 1<<37 SECOND; +#enable after fix MDEV-27871 +--disable_view_protocol +SELECT "1900-01-01 00:00:00" + INTERVAL "100000000:214748364700" MINUTE_SECOND; +--disable_view_protocol +SELECT "1900-01-01 00:00:00" + INTERVAL 1<<37 SECOND; SELECT "1900-01-01 00:00:00" + INTERVAL 1<<31 MINUTE; SELECT "1900-01-01 00:00:00" + INTERVAL 1<<20 HOUR; @@ -426,9 +445,12 @@ select last_day("1997-12-1")+0.0; # Test SAPDB UTC_% functions. This part is TZ dependant (It is supposed that # TZ variable set to GMT-3 +#enable after fix MDEV-27871 +--disable_view_protocol select strcmp(date_sub(localtimestamp(), interval 3 hour), utc_timestamp())=0; select strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%T"), utc_time())=0; select strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%Y-%m-%d"), utc_date())=0; +--enable_view_protocol select strcmp(date_format(utc_timestamp(),"%T"), utc_time())=0; select strcmp(date_format(utc_timestamp(),"%Y-%m-%d"), utc_date())=0; select strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0; @@ -455,8 +477,11 @@ select last_day('2005-01-00'); # Bug #18501: monthname and NULLs # +#enable after fix MDEV-28535 +--disable_view_protocol select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')), monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m')); +--enable_view_protocol # # Bug #16327: problem with timestamp < 1970 @@ -725,7 +750,10 @@ set time_zone= @@global.time_zone; # select str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE; +#enable after fix MDEV-27871 +--disable_view_protocol select str_to_date("1997-00-04 22:23:00","%Y-%m-%D") + interval 10 minute; +--enable_view_protocol # # Bug #21103: DATE column not compared as DATE @@ -762,6 +790,7 @@ SELECT TIME_FORMAT(SEC_TO_TIME(a),"%H:%i:%s") FROM (SELECT 3020399 AS a UNION SE # # Bug#28875 Conversion between ASCII and LATIN1 charsets does not function # +--disable_service_connection set names latin1; create table t1 (a varchar(15) character set ascii not null); insert into t1 values ('070514-000000'); @@ -782,6 +811,7 @@ set lc_time_names=fr_FR; select concat(a,ifnull(min(date_format(now(), '%Y-%m-%d')),' ull')) from t1; set lc_time_names=en_US; drop table t1; +--enable_service_connection # # Bug#32180: DATE_ADD treats datetime numeric argument as DATE @@ -813,7 +843,10 @@ select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND; # show that we treat fractions of seconds correctly (zerofill from right to # six places) even if we left out fields on the left. +#enable after fix MDEV-27871 +--disable_view_protocol select date_add('1000-01-01 00:00:00', interval '1.03:02:01.05' day_microsecond); +--enable_view_protocol select date_add('1000-01-01 00:00:00', interval '1.02' day_microsecond); @@ -1054,14 +1087,19 @@ SET timestamp=DEFAULT; SELECT UNIX_TIMESTAMP(STR_TO_DATE('201506', "%Y%m")); SELECT UNIX_TIMESTAMP('2015-06-00'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT UNIX_TIMESTAMP(STR_TO_DATE('0000-00-00 10:30:30', '%Y-%m-%d %h:%i:%s')); - +--enable_view_protocol set sql_mode= 'TRADITIONAL'; SELECT @@sql_mode; SELECT UNIX_TIMESTAMP(STR_TO_DATE('201506', "%Y%m")); SELECT UNIX_TIMESTAMP('2015-06-00'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT UNIX_TIMESTAMP(STR_TO_DATE('0000-00-00 10:30:30', '%Y-%m-%d %h:%i:%s')); +--enable_view_protocol set sql_mode= default; @@ -1090,7 +1128,10 @@ select time('10 02:03:04') + interval 1 year; # specially constructed queries to reach obscure places in the code # not touched by the more "normal" queries (and to increase the coverage) select cast('131415.123e0' as time); +#enable after fix MDEV-27871 +--disable_view_protocol select cast('2010-01-02 03:04:05' as datetime) between null and '2010-01-02 03:04:04'; +--enable_view_protocol select least(time('1:2:3'), '01:02:04', null) div 1; select truncate(least(time('1:2:3'), '01:02:04', null), 6); select cast(least(time('1:2:3'), '01:02:04', null) as decimal(3,1)); @@ -1127,9 +1168,12 @@ drop table t1; # # lp:731815 Crash/valgrind warning Item::send with 5.1-micro # +#enable after fix MDEV-27871 +--disable_view_protocol SET timestamp=unix_timestamp('2001-02-03 10:20:30'); select convert_tz(timediff('0000-00-00 00:00:00', cast('2008-03-26 07:09:06' as datetime)), 'UTC', 'Europe/Moscow'); SET timestamp=DEFAULT; +--enable_view_protocol # # lp:736370 Datetime functions in subquery context cause wrong result and bogus warnings in mysql-5.1-micr @@ -1200,10 +1244,13 @@ drop table t1; SET timestamp=UNIX_TIMESTAMP('2014-06-01 10:20:30'); select greatest(cast("0-0-0" as date), cast("10:20:05" as time)); +#enable after fix MDEV-27871 +--disable_view_protocol select greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '0000-00-00'; select greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '2014-06-01'; select greatest(cast("0-0-0" as date), cast("10:20:05" as time)) = '2014-06-01 10:20:05'; select cast(greatest(cast("0-0-0" as date), cast("10:20:05" as time)) as datetime(6)); +--enable_view_protocol SET timestamp=DEFAULT; select microsecond('12:00:00.123456'), microsecond('2009-12-31 23:59:59.000010'); @@ -1598,7 +1645,9 @@ SELECT DATE_ADD('2001-01-01 10:20:30',INTERVAL 250000000000.0 SECOND) AS c1, DAT --echo # MDEV-4838 Wrong metadata for DATE_ADD('string', INVERVAL) --echo # --enable_metadata +--disable_view_protocol SELECT DATE_ADD('2011-01-02 12:13:14', INTERVAL 1 MINUTE); +--enable_view_protocol --disable_metadata --echo # @@ -1800,6 +1849,8 @@ SELECT --echo # --echo # MDEV-10787 Assertion `ltime->neg == 0' failed in void date_to_datetime(MYSQL_TIME*) --echo # +#enable after fix MDEV-27871 +--disable_view_protocol CREATE TABLE t1 (d DATE); INSERT INTO t1 VALUES ('2005-07-20'),('2012-12-21'); SELECT REPLACE( ADDDATE( d, INTERVAL 0.6732771076944444 HOUR_SECOND ), '2', 'x' ) FROM t1; @@ -1819,6 +1870,7 @@ SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:0:0:315569433599' DAY_SECOND); SELECT ADDDATE(DATE'0000-01-01', INTERVAL '3652423:0:0:315569433559' DAY_SECOND); SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:87658175:0:315569433559' DAY_SECOND); SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:0:5259490559:315569433599' DAY_SECOND); +--disable_view_protocol --echo # --echo # MDEV-13202 Assertion `ltime->neg == 0' failed in date_to_datetime @@ -1881,7 +1933,9 @@ INSERT INTO t1 VALUES ('1999-12-31 23:59:59.999999'); --vertical_results --enable_metadata --disable_ps_protocol +--disable_view_protocol --eval $query +--enable_view_protocol --enable_ps_protocol --disable_metadata --horizontal_results @@ -1899,7 +1953,9 @@ INSERT INTO t1 VALUES ('-838:59:59.999999'),('838:59:59.999999'); --vertical_results --enable_metadata --disable_ps_protocol +--disable_view_protocol --eval $query +--enable_view_protocol --enable_ps_protocol --disable_metadata --horizontal_results diff --git a/mysql-test/main/func_time_hires.test b/mysql-test/main/func_time_hires.test index 35fd36b84561f..dca8d458f8a2c 100644 --- a/mysql-test/main/func_time_hires.test +++ b/mysql-test/main/func_time_hires.test @@ -30,8 +30,11 @@ show create table t1; --query_vertical select * from t1 drop table t1; +#enable after fix MDEV-28535 +--disable_view_protocol --query_vertical select unix_timestamp('2011-01-01 01:01:01'), unix_timestamp('2011-01-01 01:01:01.123456'), unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(0))), unix_timestamp(cast('2011-01-01 01:01:01.123456' as datetime(4))); --query_vertical select from_unixtime(unix_timestamp('2011/1/1 1:1:1')), from_unixtime(unix_timestamp('2011/1/1 1:1:1.123456')), from_unixtime(unix_timestamp(cast('2011/1/1 1:1:1.123456' as datetime(0)))), from_unixtime(unix_timestamp(cast('2011/1/1 1:1:1.123456' as datetime(4)))); +--enable_view_protocol select sec_to_time(3020399.99999), sec_to_time(3020399.999999), sec_to_time(3020399.9999999); select sec_to_time(-3020399.99999), sec_to_time(-3020399.999999), sec_to_time(-3020399.9999999); @@ -80,7 +83,10 @@ select CAST(@a AS DATETIME(7)); SELECT CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00.123', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00.123456', '+00:00', '+03:00'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CONVERT_TZ(CAST('2010-10-10 10:10:10.123456' AS DATETIME(4)), '+00:00', '+03:00'); +--enable_view_protocol # # Field::store_time() diff --git a/mysql-test/main/get_diagnostics.test b/mysql-test/main/get_diagnostics.test index a30bad72136e1..d8f35ef980d03 100644 --- a/mysql-test/main/get_diagnostics.test +++ b/mysql-test/main/get_diagnostics.test @@ -356,10 +356,13 @@ SHOW WARNINGS; --echo # Statement information runtime --echo +#enable after fix MDEV-28535 +--disable_view_protocol SELECT CAST(-19999999999999999999 AS SIGNED), CAST(-19999999999999999999 AS SIGNED); GET DIAGNOSTICS @var = NUMBER; SELECT @var; +--enable_view_protocol SELECT COUNT(max_questions) INTO @var FROM mysql.user; GET DIAGNOSTICS @var = NUMBER; diff --git a/mysql-test/main/gis-json.test b/mysql-test/main/gis-json.test index ff6298c50a671..0e1b24a91b6c6 100644 --- a/mysql-test/main/gis-json.test +++ b/mysql-test/main/gis-json.test @@ -1,5 +1,7 @@ -- source include/have_geometry.inc +#enable after fix MDEV-27871 +--disable_view_protocol select st_asgeojson(geomfromtext('POINT(1 1)')); select st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')); select st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')); @@ -15,14 +17,18 @@ SELECT st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[ SELECT st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}')); +--enable_view_protocol SELECT st_astext(st_geomfromgeojson('{"type":"point"}')); SELECT st_astext(st_geomfromgeojson('{"type":"point"')); SELECT st_astext(st_geomfromgeojson('{"type""point"}')); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')); SELECT st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}')); + --error ER_WRONG_VALUE_FOR_TYPE SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',5)); @@ -33,6 +39,8 @@ SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15. SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4)); +--enable_view_protocol + SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2); SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),1); SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),10); @@ -44,6 +52,8 @@ SELECT st_astext(st_geomfromgeojson('{"type": "MultiLineString","coordinates": [ SELECT st_astext(st_geomfromgeojson('{"type": "Polygon","coordinates": []}')) as a; SELECT st_astext(st_geomfromgeojson('{"type": "MultiPolygon","coordinates": []}')) as a; +#enable after fix MDEV-27871 +--disable_view_protocol SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }"); # @@ -53,6 +63,9 @@ SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }"); SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')); SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }')); + +--enable_view_protocol + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/main/gis-precise.test b/mysql-test/main/gis-precise.test index da72a0c4d8a57..3580ddfc076ba 100644 --- a/mysql-test/main/gis-precise.test +++ b/mysql-test/main/gis-precise.test @@ -9,13 +9,15 @@ DROP TABLE IF EXISTS t1; --enable_warnings +#enable after fix MDEV-27871 +--disable_view_protocol select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 0,20 20,0 20,0 0))'), GeomFromText('POLYGON((10 10,30 10,30 30,10 30,10 10))')); select 0, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 40, 40 50, 20 70, 10 40))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POINT(10 10)')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 0, ST_Within(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 1, ST_Within(GeomFromText('POLYGON((1 1,20 10,10 30, 1 1))'), GeomFromText('POLYGON((0 0,30 5,10 40, 0 0))')); - +--enable_view_protocol create table t1 (g point); insert into t1 values @@ -36,6 +38,8 @@ select astext(g) from t1 where ST_Contains(GeomFromText('POLYGON((5 1, 7 1, 7 7, DROP TABLE t1; +#enable after fix MDEV-27871 +--disable_view_protocol select 0, ST_Within(GeomFromText('LINESTRING(15 15, 50 50, 60 60)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 1, ST_Within(GeomFromText('LINESTRING(15 15, 16 16)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); @@ -80,6 +84,8 @@ select astext(ST_symdifference(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), ge --replace_result 7.999999999999999 8 select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); +--enable_view_protocol + # Buffer() tests --replace_result 0012045437948276 00120454379482759 select astext(ST_buffer(geometryfromtext('point(1 1)'), 1)); @@ -97,6 +103,9 @@ select ST_NUMPOINTS(ST_EXTERIORRING(@buff)); # cleanup DROP TABLE t1; +#enable after fix MDEV-27871 +--disable_view_protocol + #Touches tests select st_touches(geomfromtext('point(0 0)'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('point(1 1)'), geomfromtext('point(1 1)')); @@ -111,6 +120,7 @@ SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13 SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 18, 59 13, 59 13, 67 13) )')) as result; SELECT ST_Equals(PointFromText('POINT (12 13)'),PointFromText('POINT (12 13)')) as result; +--enable_view_protocol --echo # --echo # BUG#11755628/47429: INTERSECTION FUNCTION CRASHED MYSQLD @@ -140,19 +150,30 @@ SELECT ASTEXT(TOUCHES(@a, GEOMFROMTEXT('point(0 0)'))) t; # bug #801243 Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION +#enable after fix MDEV-27871 +--disable_view_protocol + SELECT astext(ST_UNION ( PolyFromText('POLYGON(( 2 2 ,3 2,2 7,2 2),( 0 0,8 2,1 9,0 0))'), ExteriorRing( Envelope( MultiLineStringFromText('MULTILINESTRING((3 4,5 3),(3 0,0 5))'))))); +--enable_view_protocol + #bug 801189 ST_BUFFER asserts if radius = 0 SELECT astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0)); +#enable after fix MDEV-27871 +--disable_view_protocol #bug 801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT SELECT Round(ST_Area(ST_BUFFER(MultipointFromText('MULTIPOINT(7 7,3 7,7 2,7 4 ,7 7)'), 3)), 5); +--enable_view_protocol #bug 801212 Assertion with ST_INTERSECTION on NULL values SELECT ST_INTERSECTION(NULL, NULL); +#enable after fix MDEV-27871 +--disable_view_protocol + #bug 804305 Crash in wkb_get_double with ST_INTERSECTION SELECT ASTEXT(ST_INTERSECTION( MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)), @@ -382,6 +403,8 @@ SELECT ST_RELATE( 'F*FFFF**F' ) as relate_res; +--enable_view_protocol + # MDEV-18920 Prepared statements with st_convexhull hang and eat 100% cpu. prepare s from 'do st_convexhull(st_aswkb(multipoint(point(-11702,15179),point(-5031,27960),point(-30557,11158),point(-27804,30314))))'; execute s; @@ -421,6 +444,8 @@ SELECT ST_DISTANCE_SPHERE(1, 1, NULL); --error ER_INTERNAL_ERROR SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')); +#enable after fix MDEV-27871 +--disable_view_protocol --echo # Test Points and radius SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')); # make bb x86 happy @@ -455,6 +480,8 @@ SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_G --error ER_INTERNAL_ERROR SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0); +--enable_view_protocol + # Longitude out of range [-180,180] set @pt1 = ST_GeomFromText('POINT(190 -30)'); set @pt2 = ST_GeomFromText('POINT(-30 50)'); diff --git a/mysql-test/main/gis.test b/mysql-test/main/gis.test index 208b8731e0ee9..c7bdb3661241c 100644 --- a/mysql-test/main/gis.test +++ b/mysql-test/main/gis.test @@ -122,6 +122,8 @@ SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection; SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection; explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point; +#query plan for view protocol doesn't contain database name +--disable_view_protocol SELECT g1.fid as first, g2.fid as second, Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o, Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t, @@ -132,6 +134,7 @@ Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o, Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t, Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second; +--enable_view_protocol DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry; @@ -377,13 +380,18 @@ insert into t1 values (pointfromtext('point(1,1)')); drop table t1; +#enable after fix MDEV-27871 +--disable_view_protocol select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000)))); select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440)))); +--enable_view_protocol --enable_metadata +--disable_view_protocol create table t1 (g GEOMETRY); select * from t1; select asbinary(g) from t1; +--enable_view_protocol --disable_metadata drop table t1; @@ -750,12 +758,15 @@ SET @a=POLYFROMWKB(@a); # Bug #57321 crashes and valgrind errors from spatial types # +#The SELECT statement cannot contain a subquery in the FROM clause +#fore --view-protocol +--disable_view_protocol create table t1(a geometry NOT NULL)engine=myisam; insert into t1 values (geomfromtext("point(0 1)")); insert into t1 values (geomfromtext("point(1 0)")); select * from (select polygon(t1.a) as p from t1 order by t1.a) d; drop table t1; - +--enable_view_protocol --echo # --echo # Test for bug #59888 "debug assertion when attempt to create spatial index @@ -835,6 +846,8 @@ select astext(0x0100000000030000000100000000000010); select astext(st_centroid(0x0100000000030000000100000000000010)); select astext(st_exteriorring(0x0100000000030000000100000000000010)); select envelope(0x0100000000030000000100000000000010); +#enable after fix MDEV-27871 +--disable_view_protocol select geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1); select geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1); @@ -856,6 +869,7 @@ select ST_AREA(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 31 1 #bug 855336 ST_LENGTH does not work on GEOMETRYCOLLECTIONs select ST_LENGTH(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 100 30, 20 30), POINT(3 3), LINESTRING(20 20, 30 20))')); +--enable_view_protocol # Conformance tests # @@ -1164,6 +1178,9 @@ SELECT AsText(EndPoint(centerline)) FROM road_segments WHERE fid = 102; +#enable after fix MDEV-27871 +--disable_view_protocol + SELECT IsClosed(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) FROM named_places WHERE name = 'Goose Island'; @@ -1173,6 +1190,8 @@ SELECT IsRing(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) FROM named_places WHERE name = 'Goose Island'; +--enable_view_protocol + --echo # Conformance Item T21 SELECT GLength(centerline) FROM road_segments @@ -1253,11 +1272,15 @@ SELECT Area(shores) FROM ponds WHERE fid = 120; +#enable after fix MDEV-27871 +--disable_view_protocol + --echo # Conformance Item T37 SELECT ST_Equals(boundary, PolyFromText('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )',1)) FROM named_places WHERE name = 'Goose Island'; +--enable_view_protocol --echo # Conformance Item T38 SELECT ST_Disjoint(centerlines, boundary) @@ -1289,12 +1312,17 @@ FROM road_segments, divided_routes WHERE road_segments.fid = 102 AND divided_routes.name = 'Route 75'; +#enable after fix MDEV-27871 +--disable_view_protocol + --echo # Conformance Item T43 SELECT ST_Intersects(road_segments.centerline, divided_routes.centerlines) FROM road_segments, divided_routes WHERE road_segments.fid = 102 AND divided_routes.name = 'Route 75'; +--enable_view_protocol + --echo # Conformance Item T44 SELECT ST_Contains(forests.boundary, named_places.boundary) FROM forests, named_places @@ -1354,6 +1382,8 @@ USE test; --echo # BUG #1043845 st_distance() results are incorrect depending on variable order --echo # +#enable after fix MDEV-27871 +--disable_view_protocol select st_distance(geomfromtext('LINESTRING(-95.9673005697771 36.13509598461, -95.9673057475387 36.1344478941074, -95.9673063519371 36.134484524621, @@ -1365,6 +1395,8 @@ select st_distance(geomfromtext('point(-95.96269500000000000000 36.1418183333333 -95.9673063519371 36.134484524621, -95.9673049102515 36.1343976584193) ')) ; +--enable_view_protocol + --echo # --echo # MDEV-4310 geometry function equals hangs forever. --echo # @@ -1425,6 +1457,8 @@ SELECT ASTEXT(0x0100000000030000000100000000000010); --echo #should not crash SELECT ENVELOPE(0x0100000000030000000100000000000010); +#enable after fix MDEV-27871 +--disable_view_protocol --echo #should not crash SELECT GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffff0000, 1); @@ -1432,6 +1466,7 @@ SELECT --echo #should not crash SELECT GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1); +--enable_view_protocol --echo # --echo # MDEV-3819 missing constraints for spatial column types @@ -1445,7 +1480,10 @@ drop table t1; # # MDEV-7516 Assertion `!cur_p->event' failed in Gcalc_scan_iterator::arrange_event(int, int) # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100)); +--enable_view_protocol # # MDEV-7779 View definition changes upon creation @@ -1541,12 +1579,15 @@ drop table t1; --echo # MDEV-7510 GIS: IsRing returns false for a primitive triangle. --echo # select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')); +#enable after fix MDEV-27871 +--disable_view_protocol select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,-10 -10, 0 -10, 0 0)')); --echo # --echo # MDEV-7514 GIS: PointOnSurface returns NULL instead of the point. --echo # SELECT ST_GEOMETRYTYPE(ST_PointOnSurface(ST_PolyFromText('POLYGON((-70.916 42.1002,-70.9468 42.0946,-70.9754 42.0875,-70.9749 42.0879,-70.9759 42.0897,-70.916 42.1002))'))); +--enable_view_protocol --echo # --echo # MDEV-7529 GIS: ST_Relate returns unexpected results for POINT relations @@ -2402,6 +2443,7 @@ DROP TABLE t1; --enable_metadata --disable_ps_protocol +--disable_view_protocol SELECT ST_ISSIMPLE(POINT(1,1)), ST_ISRING(POINT(1,1)), @@ -2411,6 +2453,7 @@ SELECT ST_NUMINTERIORRINGS(POINT(1,1)), ST_NUMPOINTS(POINT(1,1)), ST_SRID(POINT(1,1)); + --enable_view_protocol --enable_ps_protocol --disable_metadata diff --git a/mysql-test/main/grant4.test b/mysql-test/main/grant4.test index 30f08f9eea271..1592b71808481 100644 --- a/mysql-test/main/grant4.test +++ b/mysql-test/main/grant4.test @@ -1,5 +1,7 @@ --source include/not_embedded.inc +--disable_service_connection + # Setup database, tables and user accounts --disable_warnings drop database if exists mysqltest_db1; @@ -264,3 +266,5 @@ create user foo4 identified via mysql_old_password using '1111111111111111111111 set GLOBAL sql_mode=default; --echo End of 10.1 tests + +--enable_service_connection diff --git a/mysql-test/main/grant_4332.test b/mysql-test/main/grant_4332.test index 41e0b822f985d..1ab79ea59079f 100644 --- a/mysql-test/main/grant_4332.test +++ b/mysql-test/main/grant_4332.test @@ -19,7 +19,9 @@ alter table mysql.event modify definer char(77) collate utf8_bin not null defaul flush privileges; --enable_metadata +--disable_view_protocol select user(); +--enable_view_protocol --disable_metadata --error ER_WRONG_STRING_LENGTH @@ -39,7 +41,9 @@ alter table mysql.event modify definer char(141) collate utf8_bin not null defau flush privileges; --enable_metadata +--disable_view_protocol select user(); +--enable_view_protocol --disable_metadata set GLOBAL sql_mode=default; diff --git a/mysql-test/main/group_by.test b/mysql-test/main/group_by.test index 8d690222bcc46..3fa50a84d2dee 100644 --- a/mysql-test/main/group_by.test +++ b/mysql-test/main/group_by.test @@ -90,6 +90,7 @@ drop table t1; # Problem with GROUP BY + ORDER BY when no match # Tested with locking # +--disable_service_connection CREATE TABLE t1 ( cid mediumint(9) NOT NULL auto_increment, @@ -123,6 +124,7 @@ drop table t2; unlock tables; drop table t1; +--enable_service_connection # # Test of group by bug in bugzilla # @@ -630,12 +632,16 @@ SELECT a FROM t1 GROUP BY 'a'; SELECT a FROM t1 GROUP BY "a"; SELECT a FROM t1 GROUP BY `a`; +--disable_service_connection + set sql_mode=ANSI_QUOTES; SELECT a FROM t1 GROUP BY "a"; SELECT a FROM t1 GROUP BY 'a'; SELECT a FROM t1 GROUP BY `a`; set sql_mode=''; +--enable_service_connection + SELECT a FROM t1 HAVING 'a' > 1; SELECT a FROM t1 HAVING "a" > 1; SELECT a FROM t1 HAVING `a` > 1; @@ -673,6 +679,9 @@ DROP TABLE t1, t2; # Bug#11211: Ambiguous column reference in GROUP BY. # +#disable --view-prototcol because warnings are dropped +--disable_view_protocol + create table t1 (c1 char(3), c2 char(3)); create table t2 (c3 char(3), c4 char(3)); insert into t1 values ('aaa', 'bb1'), ('aaa', 'bb2'); @@ -690,6 +699,8 @@ group by t1.c1; show warnings; drop table t1, t2; +--enable_view_protocol + # # Bug #20466: a view is mixing data when there's a trigger on the table # @@ -762,8 +773,13 @@ SELECT 1 FROM t1 as t1_outer GROUP BY a HAVING (SELECT t1_outer.b FROM t1 AS t1_inner LIMIT 1); SELECT (SELECT SUM(t1_inner.a) FROM t1 AS t1_inner LIMIT 1) FROM t1 AS t1_outer GROUP BY t1_outer.b; + +#enable after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT SUM(t1_inner.a) FROM t1 AS t1_inner GROUP BY t1_inner.b LIMIT 1) FROM t1 AS t1_outer; +--enable_view_protocol + --error ER_WRONG_FIELD_WITH_GROUP SELECT (SELECT SUM(t1_outer.a) FROM t1 AS t1_inner LIMIT 1) FROM t1 AS t1_outer GROUP BY t1_outer.b; @@ -871,6 +887,9 @@ SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a) FROM t2 ORDER BY t2.a); --error 1140 SELECT t1.a FROM t1 ORDER BY (SELECT t2.a FROM t2 ORDER BY SUM(t2.b) LIMIT 1); +#enable after fix MDEV-28570 +--disable_view_protocol + --error 1140 SELECT t1.a FROM t1 WHERE t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t2.b) LIMIT 1); @@ -908,6 +927,8 @@ SELECT 1 FROM t1 GROUP BY t1.a SELECT 1 FROM t1 GROUP BY t1.a HAVING (SELECT AVG(t1.b + t2.b) FROM t2 ORDER BY t2.a LIMIT 1); +--enable_view_protocol + # Both SUMs are aggregated in the subquery, no mixture: SELECT t1.a FROM t1 WHERE t1.a = (SELECT t2.a FROM t2 GROUP BY t2.a @@ -931,6 +952,9 @@ SELECT t1.a, SUM(t1.b) FROM t1 ORDER BY SUM(t2.b + t1.a) LIMIT 1) GROUP BY t1.a; +#enable after fix MDEV-28570, MDEV-28571 +--disable_view_protocol + SELECT t1.a FROM t1 GROUP BY t1.a HAVING (1, 1) = (SELECT SUM(t1.a), t1.a FROM t2 LIMIT 1); @@ -947,6 +971,8 @@ select avg ( from t1 as outr order by count(outr.a) limit 1)) as tt from t1 as most_outer; +--enable_view_protocol + select (select sum(outr.a + t1.a) from t1 limit 1) as tt from t1 as outr order by outr.a; SET sql_mode=@save_sql_mode; @@ -1343,6 +1369,8 @@ DROP TABLE t1; --echo # Bug#11765254 (58200): Assertion failed: param.sort_length when grouping --echo # by functions --echo # +#createing view adds one new warning +--disable_view_protocol SET BIG_TABLES=1; CREATE TABLE t1(a INT); @@ -1354,6 +1382,8 @@ SELECT 1 FROM t1 GROUP BY SUBSTRING(SYSDATE() FROM 'K' FOR 'jxW<'); DROP TABLE t1; SET BIG_TABLES=0; +--enable_view_protocol + --echo # --echo # MDEV-641 LP:1002108 - Wrong result (or crash) from a query with duplicated field in the group list and a limit clause --echo # Bug#11761078: 53534: INCORRECT 'SELECT SQL_BIG_RESULT...' @@ -1612,6 +1642,10 @@ DROP TABLE t1, t2; # MDEV-736 LP:1004615 - Unexpected warnings "Encountered illegal value '' when converting to DECIMAL" on a query with aggregate functions and GROUP BY # +#the view protocol creates +# an additional util connection and other statistics data +--disable_view_protocol + FLUSH STATUS; # this test case *must* use Aria temp tables CREATE TABLE t1 (f1 INT, f2 decimal(20,1), f3 blob); @@ -1621,6 +1655,7 @@ DROP TABLE t1; --echo the value below *must* be 1 show status like 'Created_tmp_disk_tables'; +--enable_view_protocol --echo # --echo # Bug #1002146: Unneeded filesort if usage of join buffer is not allowed diff --git a/mysql-test/main/handler_read_last.test b/mysql-test/main/handler_read_last.test index 9104be7895230..2f18e302fa091 100644 --- a/mysql-test/main/handler_read_last.test +++ b/mysql-test/main/handler_read_last.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings diff --git a/mysql-test/main/having.test b/mysql-test/main/having.test index 8b0cc244f51d4..e6c5ef51f441d 100644 --- a/mysql-test/main/having.test +++ b/mysql-test/main/having.test @@ -336,7 +336,9 @@ select count(*) from t1 group by s1 having s1 is null; # prepared statements prints warnings too early --disable_ps_protocol +--disable_view_protocol select s1*0 as s1 from t1 group by s1 having s1 <> 0; +--enable_view_protocol --enable_ps_protocol # ANSI requires: 3 rows @@ -379,6 +381,7 @@ drop table t1; # Bug #15917: unexpected complain for a name in having clause # when the server is run on Windows or with --lower-case-table-names=1 # +--disable_service_connection --disable_warnings DROP SCHEMA IF EXISTS HU; @@ -420,6 +423,9 @@ SELECT EMPNUM, GRADE*1000 DROP SCHEMA HU; USE test; + +--enable_service_connection + # # Bug#18739: non-standard HAVING extension was allowed in strict ANSI sql mode. # @@ -470,6 +476,9 @@ DROP TABLE t1; --echo # --echo # Bug#48916 Server incorrectly processing HAVING clauses with an ORDER BY clause --echo # + +--disable_view_protocol + CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 INT, f3 INT); INSERT INTO t1 VALUES (2,7,9), (4,7,9), (6,2,9), (17,0,9); @@ -498,6 +507,8 @@ HAVING (table2.f2 = 8); DROP TABLE t1; +--enable_view_protocol + --echo # --echo # Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355 --echo # diff --git a/mysql-test/main/implicit_commit.test b/mysql-test/main/implicit_commit.test index bcc43865395ad..c3b9bc554a37a 100644 --- a/mysql-test/main/implicit_commit.test +++ b/mysql-test/main/implicit_commit.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + source include/have_innodb.inc; source include/not_embedded.inc; source include/have_profiling.inc; diff --git a/mysql-test/main/information_schema_all_engines.test b/mysql-test/main/information_schema_all_engines.test index f8d685d25605c..9c1d4555b9eb7 100644 --- a/mysql-test/main/information_schema_all_engines.test +++ b/mysql-test/main/information_schema_all_engines.test @@ -2,6 +2,10 @@ # information_schema_db.test whose results depends on which engines are # available (since these engines inject tables into INFORMATION_SCHEMA). +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/not_embedded.inc --source include/have_innodb.inc --source include/have_perfschema.inc diff --git a/mysql-test/main/information_schema_db.test b/mysql-test/main/information_schema_db.test index b244662a28c6d..e754d98a636ed 100644 --- a/mysql-test/main/information_schema_db.test +++ b/mysql-test/main/information_schema_db.test @@ -34,6 +34,7 @@ show tables; # database-level privileges (e.g. had only table-level or had no # privileges at all). # +--disable_view_protocol grant all privileges on `inf%`.* to 'mysqltest_1'@'localhost'; grant all privileges on `mbase`.* to 'mysqltest_1'@'localhost'; create table t1 (f1 int); @@ -107,12 +108,14 @@ where table_schema='test' order by table_name; drop function f1; drop function f2; drop view v1, v2; +--enable_view_protocol # # Bug#20543 select on information_schema strange warnings, view, different # schemas/users # # +--disable_service_connection create database testdb_1; create user testdb_1@localhost; grant all on testdb_1.* to testdb_1@localhost with grant option; @@ -299,3 +302,4 @@ disconnect foo; drop view v1d, v1i, v2d, v2i, v3d, v3i, v4d, v4i, v5d, v5i; drop user foo@localhost; drop procedure rootonly; +--enable_service_connection diff --git a/mysql-test/main/information_schema_part.test b/mysql-test/main/information_schema_part.test index 62fba4f53d806..3741de611505a 100644 --- a/mysql-test/main/information_schema_part.test +++ b/mysql-test/main/information_schema_part.test @@ -129,7 +129,9 @@ drop table t1; drop table if exists t1; --enable_warnings create table t1 (f1 int key) partition by key(f1) partitions 2; +--disable_view_protocol select create_options from information_schema.tables where table_schema="test"; +--enable_view_protocol drop table t1; --echo # diff --git a/mysql-test/main/innodb_ext_key.test b/mysql-test/main/innodb_ext_key.test index 04ebcc1e41ba5..6b5a81277927c 100644 --- a/mysql-test/main/innodb_ext_key.test +++ b/mysql-test/main/innodb_ext_key.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/innodb_prefix_index_cluster_optimization.inc SET SESSION STORAGE_ENGINE='InnoDB'; diff --git a/mysql-test/main/intersect.test b/mysql-test/main/intersect.test index 901f471121fac..08aafb44e41f2 100644 --- a/mysql-test/main/intersect.test +++ b/mysql-test/main/intersect.test @@ -216,10 +216,13 @@ CREATE TABLE t (i INT); INSERT INTO t VALUES (1),(2); SELECT * FROM t WHERE i != ANY ( SELECT 6 INTERSECT SELECT 3 ); +#enable view protocol in 10.4 +--disable_view_protocol select i from t where exists ((select 6 as r from dual having t.i <> 6) intersect (select 3 from dual having t.i <> 3)); +--enable_view_protocol drop table t; @@ -317,12 +320,15 @@ insert into t234 values(2); insert into t234 values(3); insert into t234 values(4); +#enable view protocol in 10.5 +--disable_view_protocol set SQL_MODE=oracle; --sorted_result select * from t13 union select * from t234 intersect select * from t12; set SQL_MODE=default; --sorted_result select * from t13 union select * from t234 intersect select * from t12; +--enable_view_protocol drop table t12,t13,t234; diff --git a/mysql-test/main/invisible_binlog.test b/mysql-test/main/invisible_binlog.test index 654afcc39c36c..11b4be3ab8743 100644 --- a/mysql-test/main/invisible_binlog.test +++ b/mysql-test/main/invisible_binlog.test @@ -1,5 +1,6 @@ --source include/master-slave.inc +--disable_service_connection --connection master create table t1(a int , b int invisible); insert into t1 values(1); @@ -30,3 +31,4 @@ show create table t2; drop table t1,t2; --source include/rpl_end.inc +--enable_service_connection diff --git a/mysql-test/main/join_cache.test b/mysql-test/main/join_cache.test index 02e5fcba4fb99..2e8589ee18468 100644 --- a/mysql-test/main/join_cache.test +++ b/mysql-test/main/join_cache.test @@ -384,6 +384,9 @@ SELECT Name FROM City WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; +#enable after fix MDEV-27871 +--disable_view_protocol + EXPLAIN SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) FROM Country LEFT JOIN CountryLanguage ON @@ -397,6 +400,8 @@ SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.P WHERE Country.Population > 10000000; +--enable_view_protocol + show variables like 'join_buffer_size'; set join_cache_level=4; show variables like 'join_cache_level'; @@ -436,6 +441,9 @@ SELECT Name FROM City WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; +#enable after fix MDEV-27871 +--disable_view_protocol + EXPLAIN SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) FROM Country LEFT JOIN CountryLanguage ON @@ -449,6 +457,7 @@ SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.P WHERE Country.Population > 10000000; +--enable_view_protocol --replace_column 9 # EXPLAIN @@ -518,6 +527,9 @@ SELECT Name FROM City WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; +#enable after fix MDEV-27871 +--disable_view_protocol + EXPLAIN SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) FROM Country LEFT JOIN CountryLanguage ON @@ -531,6 +543,8 @@ SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.P WHERE Country.Population > 10000000; +--enable_view_protocol + set join_cache_level=6; show variables like 'join_cache_level'; @@ -569,6 +583,9 @@ SELECT Name FROM City WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; +#enable after fix MDEV-27871 +--disable_view_protocol + EXPLAIN SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) FROM Country LEFT JOIN CountryLanguage ON @@ -582,6 +599,8 @@ SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.P WHERE Country.Population > 10000000; +--enable_view_protocol + set join_cache_level=7; show variables like 'join_cache_level'; @@ -620,6 +639,9 @@ SELECT Name FROM City WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; +#enable after fix MDEV-27871 +--disable_view_protocol + EXPLAIN SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) FROM Country LEFT JOIN CountryLanguage ON @@ -633,6 +655,8 @@ SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.P WHERE Country.Population > 10000000; +--enable_view_protocol + set join_cache_level=8; show variables like 'join_cache_level'; @@ -671,6 +695,9 @@ SELECT Name FROM City WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; +#enable after fix MDEV-27871 +--disable_view_protocol + EXPLAIN SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) FROM Country LEFT JOIN CountryLanguage ON @@ -684,6 +711,8 @@ SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.P WHERE Country.Population > 10000000; +--enable_view_protocol + set join_buffer_size=256; show variables like 'join_buffer_size'; diff --git a/mysql-test/main/join_nested.test b/mysql-test/main/join_nested.test index cfb24a6330415..eaf754fb0ca28 100644 --- a/mysql-test/main/join_nested.test +++ b/mysql-test/main/join_nested.test @@ -1314,6 +1314,9 @@ DROP TABLE t1,t2,t3,t4,t5; --echo # MDEV-7992: Nested left joins + 'not exists' optimization --echo # +#view protocol gives different query plan (it doesnt' contain database name) +--disable_view_protocol + CREATE TABLE t1( K1 INT PRIMARY KEY, Name VARCHAR(15) @@ -1379,6 +1382,8 @@ eval EXPLAIN EXTENDED $q2; DROP VIEW v1; DROP TABLE t1,t2; +--enable_view_protocol + set optimizer_search_depth= @tmp_mdev621; --echo # diff --git a/mysql-test/main/join_outer.test b/mysql-test/main/join_outer.test index 82c7b265b562e..ff74e5280e730 100644 --- a/mysql-test/main/join_outer.test +++ b/mysql-test/main/join_outer.test @@ -1368,7 +1368,7 @@ drop table t1,t2,t3,t4; --echo # Bug#57024: Poor performance when conjunctive condition over the outer --echo # table is used in the on condition of an outer join --echo # - +--disable_view_protocol create table t1 (a int); insert into t1 values (NULL), (NULL), (NULL), (NULL); insert into t1 select * from t1; @@ -1409,6 +1409,7 @@ select sum(t3.b) from t2 left join t3 on t3.a=t2.a and t2.a <> 10; show status like "handler_read%"; drop table t1,t2,t3; +--enable_view_protocol --echo # --echo # Bug#57688 Assertion `!table || (!table->write_set || bitmap_is_set(table->write_set, field @@ -1887,6 +1888,9 @@ drop table t1,t2,t3; --echo # MDEV-11958: LEFT JOIN with stored routine produces incorrect result --echo # +#view cannot contains duplicate column name +--disable_view_protocol + CREATE TABLE t (x INT); INSERT INTO t VALUES(1),(NULL); CREATE FUNCTION f (val INT, ret INT) RETURNS INT DETERMINISTIC RETURN IFNULL(val, ret); @@ -1909,6 +1913,7 @@ SELECT t1.x, t2.x, IFNULL(t2.x,0), f(t2.x,0) FROM t t1 LEFT JOIN t t2 ON t1.x = t2.x WHERE f(t2.x,0)=0; +--enable_view_protocol drop function f; drop table t; diff --git a/mysql-test/main/key.test b/mysql-test/main/key.test index b386f1298fd34..e52d0c5d7ce18 100644 --- a/mysql-test/main/key.test +++ b/mysql-test/main/key.test @@ -238,7 +238,8 @@ drop table t1; # # UNIQUE prefix keys and multi-byte charsets # - +#enable view protocol after fix MDEV-27945 +--disable_view_protocol create table t1 (c varchar(30) character set utf8, t text character set utf8, unique (c(2)), unique (t(3))) engine=myisam; show create table t1; insert t1 values ('cccc', 'tttt'), @@ -257,6 +258,7 @@ select t from t1 where t='tttt'; select c from t1 where c=0xD0B1212223D0B1D0B1D0B1D0B1D0B1; select t from t1 where t=0xD0B1D0B1212223D0B1D0B1D0B1D0B1; drop table t1; +--enable_view_protocol # # BUG#6151 - myisam index corruption diff --git a/mysql-test/main/kill-2.test b/mysql-test/main/kill-2.test index 0c1177722b493..a30324fac4448 100644 --- a/mysql-test/main/kill-2.test +++ b/mysql-test/main/kill-2.test @@ -6,13 +6,13 @@ # connection does not read() from a socket, but returns control to the # application. 'mysqltest' does not handle the kill request. # - -- source include/not_embedded.inc -- source include/not_threadpool.inc --echo # --echo # MDEV-6896 kill user command cause MariaDB crash! --echo # +--disable_service_connection create user foo@'127.0.0.1'; @@ -27,3 +27,4 @@ let $wait_condition= where user = "foo"; --source include/wait_condition.inc drop user foo@'127.0.0.1'; +--enable_service_connection diff --git a/mysql-test/main/kill.test b/mysql-test/main/kill.test index b2debd95a9834..6374e8ba1fed2 100644 --- a/mysql-test/main/kill.test +++ b/mysql-test/main/kill.test @@ -10,6 +10,9 @@ -- source include/not_embedded.inc -- source include/have_debug_sync.inc -- source include/not_threadpool.inc + +--disable_service_connection + set local sql_mode=""; set global sql_mode=""; @@ -602,3 +605,4 @@ DROP TABLE t1, t2; --echo # --error ER_PARSE_ERROR kill query id user 'foo'; +--enable_service_connection diff --git a/mysql-test/main/loaddata.test b/mysql-test/main/loaddata.test index 3a5bcad168598..d1ff2072bebb7 100644 --- a/mysql-test/main/loaddata.test +++ b/mysql-test/main/loaddata.test @@ -155,6 +155,8 @@ select * from t1; # # It should not be possible to load from a file outside of vardir +#enable after fix MDEV-27871 +--disable_view_protocol --error 1238 set @@secure_file_priv= 0; @@ -171,6 +173,7 @@ eval select load_file("$MYSQL_TEST_DIR/t/loaddata.test"); # cleanup drop table t1, t2; +--enable_view_protocol # # Bug#27586: Wrong autoinc value assigned by LOAD DATA in the @@ -424,11 +427,14 @@ SELECT 'before' AS t, id, val1, hex(val1) FROM t1 UNION TRUNCATE t2; +#enable after fix MDEV-27871 +--disable_view_protocol + --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR eval SELECT LOAD_FILE("$file"); --remove_file $file - +--enable_view_protocol --echo 1.2 NO_BACKSLASH_ESCAPES, override defaults for ESCAPED BY @@ -443,11 +449,14 @@ SELECT 'before' AS t, id, val1, hex(val1) FROM t1 UNION TRUNCATE t2; +#enable after fix MDEV-27871 +--disable_view_protocol + --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR eval SELECT LOAD_FILE("$file"); --remove_file $file - +--enable_view_protocol # 2. with NO_BACKSLASH_ESCAPES off @@ -468,10 +477,15 @@ TRUNCATE t2; SET sql_mode = 'NO_BACKSLASH_ESCAPES'; +#enable after fix MDEV-27871 +--disable_view_protocol + --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR eval SELECT LOAD_FILE("$file"); --remove_file $file +--enable_view_protocol + SET sql_mode = ''; @@ -491,10 +505,15 @@ TRUNCATE t2; SET sql_mode = 'NO_BACKSLASH_ESCAPES'; +#enable after fix MDEV-27871 +--disable_view_protocol + --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR eval SELECT LOAD_FILE("$file"); --remove_file $file +--enable_view_protocol + # clean up set session sql_mode=@OLD_SQL_MODE; DROP TABLE t1,t2; @@ -505,8 +524,12 @@ DROP TABLE t1,t2; --echo # function on windows --echo # +#enable after fix MDEV-27871 +--disable_view_protocol + select load_file(0x0A9FB76C661B409C4BEC88098C5DD71B1072F9691F2E827D7EC8F092B299868A3CE196C04F0FB18CAB4E1557EB72331D812379DE7A75CA21C32E7C722C59E5CC33EF262EF04187B0F0EE756FA984DF2EAD37B1E4ADB064C3C5038F2E3B2D661B1C1150AAEB5425512E14D7506166D92D4533872E662F4B2D1428AAB5CCA72E75AA2EF325E196A5A02E2E8278873C64375845994B0F39BE2FF7B478332A7B0AA5E48877C47B6F513E997848AF8CCB8A899F3393AB35333CF0871E36698193862D486B4B9078B70C0A0A507B8A250F3F876F5A067632D5E65193E4445A1EC3A2C9B4C6F07AC334F0F62BC33357CB502E9B1C19D2398B6972AEC2EF21630F8C9134C4F7DD662D8AD7BDC9E19C46720F334B66C22D4BF32ED275144E20E7669FFCF6FC143667C9F02A577F32960FA9F2371BE1FA90E49CBC69C01531F140556854D588DD0E55E1307D78CA38E975CD999F9AEA604266329EE62BFB5ADDA67F549E211ECFBA906C60063696352ABB82AA782D25B17E872EA587871F450446DB1BAE0123D20404A8F2D2698B371002E986C8FCB969A99FF0E150A2709E2ED7633D02ADA87D5B3C9487D27B2BD9D21E2EC3215DCC3CDCD884371281B95A2E9987AAF82EB499C058D9C3E7DC1B66635F60DB121C72F929622DD47B6B2E69F59FF2AE6B63CC2EC60FFBA20EA50569DBAB5DAEFAEB4F03966C9637AB55662EDD28439155A82D053A5299448EDB2E7BEB0F62889E2F84E6C7F34B3212C9AAC32D521D5AB8480993F1906D5450FAB342A0FA6ED223E178BAC036B81E15783604C32A961EA1EF20BE2EBB93D34ED37BC03142B7583303E4557E48551E4BD7CBDDEA146D5485A5D212C35189F0BD6497E66912D2780A59A53B532E12C0A5ED1EC0445D96E8F2DD825221CFE4A65A87AA21DC8750481B9849DD81694C3357A0ED9B78D608D8EDDE28FAFBEC17844DE5709F41E121838DB55639D77E32A259A416D7013B2EB1259FDE1B498CBB9CAEE1D601DF3C915EA91C69B44E6B72062F5F4B3C73F06F2D5AD185E1692E2E0A01E7DD5133693681C52EE13B2BE42D03BDCF48E4E133CF06662339B778E1C3034F9939A433E157449172F7969ACCE1F5D2F65A4E09E4A5D5611EBEDDDBDB0C0C0A); +--enable_view_protocol --echo End of 5.0 tests diff --git a/mysql-test/main/lock_view.test b/mysql-test/main/lock_view.test index abb8d317946cb..ba86f1c4e6805 100644 --- a/mysql-test/main/lock_view.test +++ b/mysql-test/main/lock_view.test @@ -1,5 +1,8 @@ source include/not_embedded.inc; source include/have_perfschema.inc; + +--disable_service_connection + # # LOCK TABLES and privileges on views # @@ -92,3 +95,4 @@ exec $MYSQL_DUMP test v1 -uu1 --compact; drop view v1; drop table t1; drop user u1@localhost; +--enable_service_connection diff --git a/mysql-test/main/lowercase_table.test b/mysql-test/main/lowercase_table.test index 4f92e43f5f7f0..8d493fff5cdc0 100644 --- a/mysql-test/main/lowercase_table.test +++ b/mysql-test/main/lowercase_table.test @@ -2,6 +2,9 @@ # Test of --lower-case-table-names # +#remove this include after fix MDEV-27944 +--source include/no_view_protocol.inc + create table T1 (id int primary key, Word varchar(40) not null, Index(Word)); create table t4 (id int primary key, Word varchar(40) not null); INSERT INTO T1 VALUES (1, 'a'), (2, 'b'), (3, 'c'); diff --git a/mysql-test/main/lowercase_table_qcache.test b/mysql-test/main/lowercase_table_qcache.test index bf24c8e9a1c0f..b6047a98c748a 100644 --- a/mysql-test/main/lowercase_table_qcache.test +++ b/mysql-test/main/lowercase_table_qcache.test @@ -2,6 +2,8 @@ # # Test of query cache with --lower-case-table-names # +-- source include/no_view_protocol.inc + set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_type=ON; diff --git a/mysql-test/main/mdev375.test b/mysql-test/main/mdev375.test index 6fdb35016ca37..f489d232be8a5 100644 --- a/mysql-test/main/mdev375.test +++ b/mysql-test/main/mdev375.test @@ -3,6 +3,7 @@ # --source include/not_embedded.inc +--disable_service_connection set @save_log_warnings=@@log_warnings, @save_max_connections=@@max_connections; SET GLOBAL log_warnings=4; SET GLOBAL max_connections=10; @@ -33,3 +34,4 @@ show status like "Threads_connected"; SET GLOBAL log_warnings=@save_log_warnings; SET GLOBAL max_connections=@save_max_connections; +--enable_service_connection diff --git a/mysql-test/main/mdl.test b/mysql-test/main/mdl.test index b90c74a8f7fc6..d7c09fb50eca7 100644 --- a/mysql-test/main/mdl.test +++ b/mysql-test/main/mdl.test @@ -8,7 +8,7 @@ --echo # mdl_ticket->m_type == MDL_SHARED_READ' --echo # failed in MDL_context::upgrade_shared_lock --echo # - +--disable_service_connection CREATE TABLE t1(a INT) ENGINE=InnoDB; LOCK TABLES t1 WRITE CONCURRENT, t1 AS t2 READ; SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info; @@ -17,3 +17,4 @@ LOCK TABLES t1 AS t2 READ, t1 WRITE CONCURRENT; SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info; UNLOCK TABLES; DROP TABLE t1; +--enable_service_connection diff --git a/mysql-test/main/merge_mmap.test b/mysql-test/main/merge_mmap.test index c97b029754d65..0d2f9e853bc37 100644 --- a/mysql-test/main/merge_mmap.test +++ b/mysql-test/main/merge_mmap.test @@ -79,6 +79,7 @@ DROP TABLE m2, m1, t2, t1; # # INSERT-SELECT with no TEMPORARY table. # +--disable_service_connection CREATE TABLE t1 (c1 INT); CREATE TABLE t2 (c1 INT); CREATE TABLE m1 (c1 INT) ENGINE=MRG_MyISAM UNION=(t1,t2) @@ -141,6 +142,7 @@ INSERT INTO m2 SELECT * FROM m1; SELECT * FROM m2; UNLOCK TABLES; DROP TABLE m2, m1, t2, t1; +--enable_service_connection --echo End of 6.0 tests diff --git a/mysql-test/main/metadata.test b/mysql-test/main/metadata.test index 96189a9750af7..eade0e0ff01e9 100644 --- a/mysql-test/main/metadata.test +++ b/mysql-test/main/metadata.test @@ -1,6 +1,8 @@ # # Test metadata # +#View protocol gives slightly different metadata +--source include/no_view_protocol.inc --disable_warnings drop table if exists t1,t2; diff --git a/mysql-test/main/multi_statement.test b/mysql-test/main/multi_statement.test index 785aa749f5eca..40be11930e912 100644 --- a/mysql-test/main/multi_statement.test +++ b/mysql-test/main/multi_statement.test @@ -1,3 +1,6 @@ +# view-protocol doesn't support multi-statements +-- source include/no_view_protocol.inc + # PS doesn't support multi-statements --disable_ps_protocol diff --git a/mysql-test/main/multi_update.test b/mysql-test/main/multi_update.test index 5f4b5fc8ec3d8..54c64918e03eb 100644 --- a/mysql-test/main/multi_update.test +++ b/mysql-test/main/multi_update.test @@ -144,7 +144,7 @@ drop table t1,t2 ; # # Test with locking # - +--disable_service_connection create table t1 (n int(10) not null primary key, d int(10)); create table t2 (n int(10) not null primary key, d int(10)); insert into t1 values(1,1); @@ -164,6 +164,7 @@ select * from t1; select * from t2; unlock tables; drop table t1,t2; +--enable_service_connection # # Test safe updates and timestamps diff --git a/mysql-test/main/myisam-optimize.test b/mysql-test/main/myisam-optimize.test index 7c1fe4ec1c899..44e38e1e7089b 100644 --- a/mysql-test/main/myisam-optimize.test +++ b/mysql-test/main/myisam-optimize.test @@ -1,6 +1,7 @@ --echo # --echo # MDEV-8475 stale .TMM file causes Aria engine to stop serving the table --echo # +--disable_service_connection create table t1 (pk int primary key, i int) engine=MyISAM; insert into t1 values (1,1),(2,2); --let $datadir=`SELECT @@datadir` @@ -56,3 +57,4 @@ OPTIMIZE TABLE t1; # Cleanup --connection default DROP TABLE t1; +--enable_service_connection diff --git a/mysql-test/main/myisam.test b/mysql-test/main/myisam.test index 6cdfeb6aefaac..ee43383ca6533 100644 --- a/mysql-test/main/myisam.test +++ b/mysql-test/main/myisam.test @@ -508,6 +508,7 @@ drop table t1; # Bug #14400 Join could miss concurrently inserted row # # Partial key. +--disable_service_connection create table t1 (a int not null, primary key(a)); create table t2 (a int not null, b int not null, primary key(a,b)); insert into t1 values (1),(2),(3),(4),(5),(6); @@ -539,7 +540,7 @@ SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2 WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1; UNLOCK TABLES; DROP TABLE t1,t2; - +--enable_service_connection # End of 4.0 tests # diff --git a/mysql-test/main/myisam_optimize.test b/mysql-test/main/myisam_optimize.test index 5e133aea85329..82096f0b4e34d 100644 --- a/mysql-test/main/myisam_optimize.test +++ b/mysql-test/main/myisam_optimize.test @@ -2,6 +2,7 @@ # test OPTIMIZE and a concurrent SELECT of a MyISAM table # source include/have_debug_sync.inc; +--disable_service_connection call mtr.add_suppression(" marked as crashed and should be repaired"); @@ -63,3 +64,4 @@ UNLOCK TABLES; DROP TABLE t1; --echo # End of 10.0 tests +--enable_service_connection diff --git a/mysql-test/main/mysql_upgrade.test b/mysql-test/main/mysql_upgrade.test index 0e42bb81fd96f..898fd804a9d23 100644 --- a/mysql-test/main/mysql_upgrade.test +++ b/mysql-test/main/mysql_upgrade.test @@ -148,7 +148,7 @@ let $MYSQLD_DATADIR= `select @@datadir`; --echo # MDEV-4332 Increase username length from 16 characters --echo # MDEV-6068, MDEV-6178 mysql_upgrade breaks databases with long user names --echo # - +--disable_service_connection connection default; GRANT SELECT ON mysql.* TO very_long_user_name_number_1; GRANT SELECT ON mysql.* TO very_long_user_name_number_2; @@ -171,7 +171,7 @@ SELECT definer FROM mysql.proc WHERE db = 'test' AND name = 'pr'; SELECT grantor FROM mysql.tables_priv WHERE db = 'mysql' AND table_name = 'user'; DROP USER very_long_user_name_number_1, very_long_user_name_number_2, even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@localhost; DROP PROCEDURE test.pr; - +--enable_service_connection # # MDEV-13274 mysql_upgrade fails if dbname+tablename+partioname > 64 chars # diff --git a/mysql-test/main/mysqlcheck.test b/mysql-test/main/mysqlcheck.test index 8f3c241ebb77a..8d25a54b4d2c9 100644 --- a/mysql-test/main/mysqlcheck.test +++ b/mysql-test/main/mysqlcheck.test @@ -5,6 +5,9 @@ call mtr.add_suppression("Invalid .old.. table or database name"); --source include/have_innodb.inc --source include/default_charset.inc +#remove this include after fix MDEV-27873 +--source include/no_view_protocol.inc + set @save_character_set_client=@@character_set_client; set @save_collation_connection=@@collation_connection; diff --git a/mysql-test/main/no-threads.test b/mysql-test/main/no-threads.test index a2936abf7840c..c1a608a57e682 100644 --- a/mysql-test/main/no-threads.test +++ b/mysql-test/main/no-threads.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/one_thread_per_connection.inc # # Test the --thread-handler=no-threads option diff --git a/mysql-test/main/null.test b/mysql-test/main/null.test index 403790356ce4b..bf1a9c3bd1fca 100644 --- a/mysql-test/main/null.test +++ b/mysql-test/main/null.test @@ -7,6 +7,9 @@ drop table if exists t1, t2; # Testing of NULL in a lot of different places # +#enable view protocol after fix MDEV-28535 +--disable_view_protocol + select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null; explain extended select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null; select 1 | NULL,1 & NULL,1+NULL,1-NULL; @@ -24,6 +27,8 @@ select inet_ntoa(null),inet_aton(null),inet_aton("122.256"),inet_aton("122.226." explain extended select inet_ntoa(null),inet_aton(null),inet_aton("122.256"),inet_aton("122.226."),inet_aton(""); select not null is true, not null or true, not null and false, not null <=> null; +--enable_view_protocol + create table t1 (x int); insert into t1 values (null); select * from t1 where x != 0; @@ -1059,7 +1064,14 @@ SELECT NULLIF(COUNT(c1),0) FROM t1; SELECT CASE WHEN COUNT(c1)=0 THEN NULL ELSE COUNT(c1) END FROM t1; SELECT NULLIF(COUNT(c1)+0,0) AS c1,NULLIF(CAST(COUNT(c1) AS SIGNED),0) AS c2,NULLIF(CONCAT(COUNT(c1)),0) AS c3 FROM t1; SELECT NULLIF(COUNT(DISTINCT c1),0) FROM t1; + +#enable view protocol after fix MDEV-27871 +--disable_view_protocol + SELECT CASE WHEN COUNT(DISTINCT c1)=0 THEN NULL ELSE COUNT(DISTINCT c1) END FROM t1; + +--enable_view_protocol + DROP TABLE t1; CREATE TABLE t1 ( @@ -1122,12 +1134,17 @@ drop table t1; # # MDEV-9641 Assertion `args[0] == args[2] || _current_thd()->lex->context_analysis_only' failed in Item_func_nullif::print(String*, enum_query_type) # + +#it is necessary that the view protocol uses the same connection, +# not util connection +--disable_service_connection set names utf8; create table t1 (f1 varchar(10)); insert into t1 values ('2015-12-31'); --error ER_DATA_OUT_OF_RANGE select power( timestamp( nullif( '2002-09-08', f1 ) ), 24 ) from t1; drop table t1; +--enable_service_connection # # MDEV-9682 Assertion `0' failed in Item_cache_row::illegal_method_call on 2nd execution of PS with NULLIF diff --git a/mysql-test/main/null_key.test b/mysql-test/main/null_key.test index c3ebc6f5b94f5..d5f419be2de4b 100644 --- a/mysql-test/main/null_key.test +++ b/mysql-test/main/null_key.test @@ -235,8 +235,11 @@ EXPLAIN SELECT SQL_CALC_FOUND_ROWS * FROM t1 LEFT JOIN t2 ON t1.a=t2.a FLUSH STATUS ; SELECT SQL_CALC_FOUND_ROWS * FROM t1 LEFT JOIN t2 ON t1.a=t2.a LEFT JOIN t3 ON t2.b=t3.b; + +--disable_view_protocol SELECT FOUND_ROWS(); SHOW STATUS LIKE "handler_read%"; +--enable_view_protocol DROP TABLE t1,t2,t3,t4; # End of 4.1 tests diff --git a/mysql-test/main/olap.test b/mysql-test/main/olap.test index 078eacb851b8b..0c990300b68ec 100644 --- a/mysql-test/main/olap.test +++ b/mysql-test/main/olap.test @@ -214,10 +214,15 @@ SELECT a, SUM(a), SUM(a)+1 FROM (SELECT 1 a UNION select 2) d SELECT a, SUM(a), SUM(a)+1 FROM (SELECT 1 a UNION select 2) d GROUP BY a WITH ROLLUP; +#enable view protocol after fix MDEV-28535 +--disable_view_protocol + SELECT a, SUM(a), SUM(a)+1, CONCAT(SUM(a),'x'), SUM(a)+SUM(a), SUM(a) FROM (SELECT 1 a, 2 b UNION SELECT 2,3 UNION SELECT 5,6 ) d GROUP BY a WITH ROLLUP; +--enable_view_protocol + DROP TABLE t1; # @@ -254,6 +259,9 @@ DROP TABLE t1,t2; # Test for bug #11543: ROLLUP query with a repeated column in GROUP BY # +#enable view protocol after fix MDEV-28536 +--disable_view_protocol + CREATE TABLE t1 (a INT(10) NOT NULL, b INT(10) NOT NULL); INSERT INTO t1 VALUES (1, 1); INSERT INTO t1 VALUES (1, 2); @@ -262,6 +270,8 @@ SELECT a, b, a AS c, COUNT(*) AS count FROM t1 GROUP BY a, b, c WITH ROLLUP; DROP TABLE t1; +--enable_view_protocol + # Bug #12885(1): derived table specified by a subquery with # ROLLUP over expressions on not nullable group by attributes # @@ -444,12 +454,17 @@ DROP TABLE t; --echo # MDEV-14041 Server crashes in String::length on queries with functions and ROLLUP --echo # +#enable view protocol after fix MDEV-28538 +--disable_view_protocol + CREATE TABLE t1 (i INT); INSERT INTO t1 VALUES (1),(2); SELECT GET_LOCK( 'foo', 0 ); SELECT HEX( RELEASE_LOCK( 'foo' ) ) AS f FROM t1 GROUP BY f WITH ROLLUP; DROP TABLE t1; +--enable_view_protocol + CREATE TABLE t1 (i INT); INSERT INTO t1 VALUES (1),(2); SELECT i FROM t1 GROUP BY i WITH ROLLUP diff --git a/mysql-test/main/order_by.test b/mysql-test/main/order_by.test index 17b307208e078..abaa112887e1d 100644 --- a/mysql-test/main/order_by.test +++ b/mysql-test/main/order_by.test @@ -2,6 +2,11 @@ # Testing ORDER BY # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +# Check after fix MDEV-27871, possible this include can be removed +--source include/no_view_protocol.inc + call mtr.add_suppression("Sort aborted.*"); --disable_warnings diff --git a/mysql-test/main/outfile_loaddata.test b/mysql-test/main/outfile_loaddata.test index 745c75cb4dedc..f9e2a357ed30a 100644 --- a/mysql-test/main/outfile_loaddata.test +++ b/mysql-test/main/outfile_loaddata.test @@ -2,6 +2,9 @@ DROP TABLE IF EXISTS t1, t2; --enable_warnings +#enable view protocol after fix MDEV-27871 +-- source include/no_view_protocol.inc + --echo # --echo # Bug#31663 FIELDS TERMINATED BY special character --echo # diff --git a/mysql-test/main/parser.test b/mysql-test/main/parser.test index ca97398d8b63d..9df18c50ee325 100644 --- a/mysql-test/main/parser.test +++ b/mysql-test/main/parser.test @@ -408,6 +408,9 @@ select "terminated";$$ select "non terminated, space" $$ select "terminated, space"; $$ select "non terminated, comment" /* comment */$$ + +#--view-protocol test mode can not parse query +--disable_view_protocol select "terminated, comment"; /* comment */$$ # Multi queries can not be used in --ps-protocol test mode @@ -430,6 +433,7 @@ DROP PROCEDURE IF EXISTS p26030; CREATE PROCEDURE p26030() SELECT 1; CALL p26030 $$ --enable_ps_protocol +--enable_view_protocol delimiter ;$$ DROP PROCEDURE p26030; @@ -689,7 +693,12 @@ DROP TABLE IF EXISTS t1; --enable_warnings SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE; + +#enable view protocol after fix MDEV-27871 +--disable_view_protocol SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE; +--enable_view_protocol + SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND; SELECT 1 + INTERVAL(1,0,1,2) + 1; SELECT INTERVAL(1^1,0,1,2) + 1; @@ -876,7 +885,10 @@ UNION --echo # "FOR UPDATE" tests SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1; +#incorrect sql statement for definition view (for --view-prototcol test mode) +--disable_view_protocol SELECT 1 FROM t1 FOR UPDATE UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1; +--enable_view_protocol SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 FOR UPDATE; @@ -1176,12 +1188,18 @@ SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); +#enable view protocol after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); +--enable_view_protocol SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) FROM t1; SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) FROM t1; SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; +#enable view protocol after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; +--enable_view_protocol --error ER_SUBQUERY_NO_1_ROW SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP); @@ -1217,10 +1235,16 @@ CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (10),(20),(30); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); +#enable view protocol after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); +--enable_view_protocol SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; +#enable view protocol after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; +--enable_view_protocol --error ER_SUBQUERY_NO_1_ROW SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP); @@ -1538,6 +1562,8 @@ DROP PROCEDURE p1; --echo # MDEV-16697: Fix difference between 32bit/windows and 64bit --echo # systems in allowed select nest level --echo # +#enable view protocol after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT @@ -1548,6 +1574,7 @@ DROP PROCEDURE p1; (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT 1 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); +--enable_view_protocol --echo # --echo # MDEV-17693 Shift/reduce conflicts for NAMES,ROLE,PASSWORD in the option_value_no_option_type grammar diff --git a/mysql-test/main/partition_explicit_prune.test b/mysql-test/main/partition_explicit_prune.test index 0be21396148c1..e630572dbce26 100644 --- a/mysql-test/main/partition_explicit_prune.test +++ b/mysql-test/main/partition_explicit_prune.test @@ -8,6 +8,7 @@ WHERE VARIABLE_NAME LIKE 'HANDLER_%' AND VARIABLE_VALUE > 0; --echo # --echo # Bug#13559657: PARTITION SELECTION DOES NOT WORK WITH VIEWS --echo # +--disable_view_protocol CREATE TABLE t1 (a int) ENGINE = InnoDB PARTITION BY HASH (a) PARTITIONS 2; @@ -83,7 +84,7 @@ SELECT * FROM v1; SELECT * FROM t1; DROP VIEW v1; DROP TABLE t1; - +--enable_service_connection --echo # Original tests for WL#5217 --echo # Must have InnoDB as engine to get the same statistics results. @@ -99,7 +100,7 @@ eval $get_handler_status_counts; eval $get_handler_status_counts; --echo # OK, seems to add number of variables processed before HANDLER_WRITE --echo # and number of variables + 1 evaluated in the previous call in RND_NEXT - +--disable_service_connection CREATE TABLE t1 (a INT NOT NULL, b varchar (64), @@ -620,7 +621,7 @@ eval $get_handler_status_counts; SELECT * FROM t3 PARTITION (pNeg); DROP TABLE t1, t2, t3; -# +--enable_view_protocol --echo # Test from superseeded WL# 2682 # Partition select tests. # @@ -844,11 +845,12 @@ DROP TABLE t1; --echo # --echo # Test explicit partition selection on a non partitioned temp table --echo # +--disable_view_protocol CREATE TEMPORARY TABLE t1 (a INT); --error ER_PARTITION_CLAUSE_ON_NONPARTITIONED SELECT * FROM t1 PARTITION(pNonexisting); DROP TEMPORARY TABLE t1; - +--enable_view_protocol --echo # --echo # Test CREATE LIKE does not take PARTITION clause --echo # @@ -863,6 +865,7 @@ SET @@default_storage_engine = @old_default_storage_engine; --echo # --echo # MDEV-14815 - Server crash or AddressSanitizer errors or valgrind warnings in thr_lock / has_old_lock upon FLUSH TABLES --echo # +--disable_service_connection CREATE TABLE t1 (i INT) ENGINE=MEMORY PARTITION BY RANGE (i) (PARTITION p0 VALUES LESS THAN (4), PARTITION pm VALUES LESS THAN MAXVALUE); CREATE TABLE t2 (i INT) ENGINE=MEMORY; LOCK TABLE t1 WRITE, t2 WRITE; @@ -875,7 +878,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; SELECT * FROM t1 PARTITION (p0); UNLOCK TABLES; DROP TABLE t1; - +--enable_service_connection --echo # --echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause. --echo # diff --git a/mysql-test/main/partition_innodb.test b/mysql-test/main/partition_innodb.test index 6a89a0a6467cb..5bdc24b7cdd47 100644 --- a/mysql-test/main/partition_innodb.test +++ b/mysql-test/main/partition_innodb.test @@ -3,6 +3,7 @@ --source include/have_innodb.inc --source include/default_optimizer_switch.inc +--disable_service_connection call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); set global default_storage_engine='innodb'; @@ -84,7 +85,7 @@ DROP TABLE t1; --echo # Bug#54747: Deadlock between REORGANIZE PARTITION and --echo # SELECT is not detected --echo # - +--disable_view_protocol SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; SET GLOBAL innodb_thread_concurrency = 1; @@ -136,11 +137,12 @@ COMMIT; SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; DROP TABLE t1; - +--enable_view_protocol --echo # --echo # Bug#50418: DROP PARTITION does not interact with transactions --echo # +--disable_view_protocol CREATE TABLE t1 ( id INT AUTO_INCREMENT NOT NULL, name CHAR(50) NOT NULL, @@ -179,7 +181,7 @@ SELECT * FROM t1; --echo # No changes. COMMIT; DROP TABLE t1; - +--enable_view_protocol --echo # --echo # Bug#51830: Incorrect partition pruning on range partition (regression) @@ -578,6 +580,7 @@ DROP TABLE t1; --echo # Bug#47343: InnoDB fails to clean-up after lock wait timeout on --echo # REORGANIZE PARTITION --echo # +--disable_view_protocol CREATE TABLE t1 ( a INT, b DATE NOT NULL, @@ -612,6 +615,7 @@ connection default; SELECT * FROM t1; COMMIT; DROP TABLE t1; +--enable_view_protocol # # Bug #55146 Assertion `m_part_spec.start_part == m_part_spec.end_part' in index_read_idx_map @@ -943,6 +947,7 @@ set global default_storage_engine=default; --echo # Bug#13737949: CRASH IN HA_PARTITION::INDEX_INIT --echo # Bug#18694052: SERVER CRASH IN HA_PARTITION::INIT_RECORD_PRIORITY_QUEUE --echo # +--disable_view_protocol CREATE TABLE t1 (a INT, b INT, @@ -976,7 +981,7 @@ SELECT b FROM t1 WHERE b = 0; SELECT b FROM t1 WHERE b = 0; --disconnect con1 DROP TABLE t1; - +--enable_view_protocol --echo # --echo # MDEV-11167: InnoDB: Warning: using a partial-field key prefix --echo # in search, results in assertion failure or "Can't find record" error @@ -1116,3 +1121,4 @@ DROP TABLE t1; --echo # --echo # End of 10.3 tests --echo # +--enable_service_connection diff --git a/mysql-test/main/partition_innodb_plugin.test b/mysql-test/main/partition_innodb_plugin.test index 74e1747746beb..4f3f2d1fcc86f 100644 --- a/mysql-test/main/partition_innodb_plugin.test +++ b/mysql-test/main/partition_innodb_plugin.test @@ -94,6 +94,8 @@ SET @@global.innodb_file_per_table = @old_innodb_file_per_table; # # Bug#32430 - show engine innodb status causes errors # +#change to "disable_service_connection" after fix MDEV-29278 +--disable_view_protocol SET NAMES utf8; CREATE TABLE `t``\""e` (a INT, PRIMARY KEY (a)) ENGINE=InnoDB @@ -151,3 +153,4 @@ ROLLBACK; disconnect con1; connection default; DROP TABLE `t``\""e`; +--enable_view_protocol diff --git a/mysql-test/main/partition_innodb_semi_consistent.test b/mysql-test/main/partition_innodb_semi_consistent.test index 7a1dfc361730e..c1a516b255f1a 100644 --- a/mysql-test/main/partition_innodb_semi_consistent.test +++ b/mysql-test/main/partition_innodb_semi_consistent.test @@ -1,3 +1,5 @@ +-- source include/no_view_protocol.inc + -- source include/have_partition.inc -- source include/not_embedded.inc -- source include/have_innodb.inc diff --git a/mysql-test/main/partition_symlink.test b/mysql-test/main/partition_symlink.test index 7e09c7d064233..07d653ee4d64e 100644 --- a/mysql-test/main/partition_symlink.test +++ b/mysql-test/main/partition_symlink.test @@ -1,5 +1,6 @@ # Test that must have symlink. eg. using DATA/INDEX DIR # (DATA/INDEX DIR requires symlinks) + # This test is only useful for MyISAM, since no other engine supports DATA DIR -- source include/have_partition.inc -- source include/have_symlink.inc @@ -15,6 +16,7 @@ DROP DATABASE IF EXISTS mysqltest2; --echo # --echo # Test for WL#4445: EXCHANGE PARTITION --echo # +--disable_service_connection --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR eval CREATE TABLE t1 (a INT) ENGINE = MyISAM @@ -44,6 +46,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p2 WITH TABLE t2; SELECT * FROM t1; SELECT * FROM t2; DROP TABLE t1, t2; +--enable_service_connection # skipped because of bug#52354 #CREATE TABLE t1 LIKE t2; #ALTER TABLE t1 PARTITION BY LIST (a) @@ -72,6 +75,7 @@ DROP TABLE t1, t2; -- echo # Creating two non colliding tables mysqltest2.t1 and test.t1 -- echo # test.t1 have partitions in mysqltest2-directory! -- echo # user root: +--disable_service_connection CREATE USER mysqltest_1@localhost; CREATE DATABASE mysqltest2; USE mysqltest2; @@ -110,6 +114,7 @@ connection default; SELECT * FROM t1; DROP TABLE t1; DROP DATABASE mysqltest2; + --enable_service_connection # The below test shows that a pre-existing partition can not be # destroyed by a new partition from another table. # (Remember that a table or partition that uses the DATA/INDEX DIR diff --git a/mysql-test/main/plugin.test b/mysql-test/main/plugin.test index d3e0fa1eddada..7ae08cd241e11 100644 --- a/mysql-test/main/plugin.test +++ b/mysql-test/main/plugin.test @@ -256,10 +256,12 @@ select plugin_name from information_schema.plugins where plugin_library like 'ha # # # +--disable_service_connection set names utf8; select convert('adminπŒ†' using utf8); --error ER_UDF_NO_PATHS install plugin foo soname 'adminπŒ†'; +--enable_service_connection --echo # End of 5.5 test diff --git a/mysql-test/main/pool_of_threads.test b/mysql-test/main/pool_of_threads.test index 3d581d4605da8..36522aaa5e454 100644 --- a/mysql-test/main/pool_of_threads.test +++ b/mysql-test/main/pool_of_threads.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection +-- source include/no_view_protocol.inc + # Start with thread_handling=pool-of-threads # and run a number of tests diff --git a/mysql-test/main/precedence.test b/mysql-test/main/precedence.test index cd7cee4f911da..b93aea72e65a8 100644 --- a/mysql-test/main/precedence.test +++ b/mysql-test/main/precedence.test @@ -4501,6 +4501,10 @@ create or replace view v1 as select 3 BETWEEN 1 AND 2 AND NULL, 3 BETWEEN (1 AND Select view_definition from information_schema.views where table_schema='test' and table_name='v1'; select 3 BETWEEN 1 AND 2 AND NULL, 3 BETWEEN (1 AND 2) AND NULL, 3 BETWEEN 1 AND (2 AND NULL), (3 BETWEEN 1 AND 2) AND NULL union select * from v1; +# Looks like it is necessary that the view protocol uses the same connection, +# not util connection +--disable_service_connection + set sql_mode=PIPES_AS_CONCAT; create or replace view v1 as select 2 OR 3 || 3, 2 OR (3 || 3), (2 OR 3) || 3; Select view_definition from information_schema.views where table_schema='test' and table_name='v1'; @@ -4788,4 +4792,6 @@ Select view_definition from information_schema.views where table_schema='test' a create or replace view v1 as select 2 IS TRUE = 3, 2 IS FALSE = 3, 2 IS UNKNOWN = 3, 2 IS NULL = 3, ISNULL(2) = 1; Select view_definition from information_schema.views where table_schema='test' and table_name='v1'; +--enable_service_connection + drop view v1; diff --git a/mysql-test/main/processlist.test b/mysql-test/main/processlist.test index f419f57ea2f97..7e60f196f657f 100644 --- a/mysql-test/main/processlist.test +++ b/mysql-test/main/processlist.test @@ -1,3 +1,5 @@ +-- source include/no_view_protocol.inc + # # MDEV-4578 information_schema.processlist reports incorrect value for Time (2147483647) # diff --git a/mysql-test/main/profiling.test b/mysql-test/main/profiling.test index 1e1aada7c152f..16154a4b73666 100644 --- a/mysql-test/main/profiling.test +++ b/mysql-test/main/profiling.test @@ -1,4 +1,5 @@ --source include/have_profiling.inc +--source include/no_view_protocol.inc # Verify that the protocol isn't violated if we ask for profiling info # before profiling has recorded anything. diff --git a/mysql-test/main/ps_1general.test b/mysql-test/main/ps_1general.test index 01a0164722d62..34895f448ba15 100644 --- a/mysql-test/main/ps_1general.test +++ b/mysql-test/main/ps_1general.test @@ -469,7 +469,9 @@ prepare stmt1 from ' handler t1 open '; prepare stmt3 from ' commit ' ; prepare stmt3 from ' rollback ' ; - +# the view protocol has to use the same connection, +# not util connection +--disable_service_connection ## switch the sql_mode prepare stmt4 from ' SET sql_mode=ansi '; execute stmt4; @@ -486,6 +488,7 @@ execute stmt5; SET sql_mode=ansi; execute stmt5; SET sql_mode=""; +--enable_service_connection prepare stmt1 from ' flush local privileges ' ; prepare stmt1 from ' reset query cache ' ; diff --git a/mysql-test/main/ps_ddl.test b/mysql-test/main/ps_ddl.test index 90226d379bfb1..915537fe95179 100644 --- a/mysql-test/main/ps_ddl.test +++ b/mysql-test/main/ps_ddl.test @@ -1668,6 +1668,8 @@ drop table t1; deallocate prepare stmt; create table t1 (a int); insert into t1 (a) values (1); +#t2-temporary table, cannot create a temporary view +--disable_view_protocol prepare stmt from "create temporary table if not exists t2 as select * from t1"; execute stmt; drop table t2; @@ -1694,6 +1696,7 @@ drop table t1; drop temporary table t2; drop table t2; deallocate prepare stmt; +--enable_view_protocol create table t1 (a int); prepare stmt from "create table t2 like t1"; diff --git a/mysql-test/main/query_cache.test b/mysql-test/main/query_cache.test index d518d7a395645..c1c43790a9586 100644 --- a/mysql-test/main/query_cache.test +++ b/mysql-test/main/query_cache.test @@ -1,5 +1,6 @@ -- source include/have_query_cache.inc -- source include/long_test.inc +-- source include/no_view_protocol.inc set @save_query_cache_size=@@query_cache_size; # diff --git a/mysql-test/main/query_cache_debug.test b/mysql-test/main/query_cache_debug.test index af82927245b2e..883c952f683d9 100644 --- a/mysql-test/main/query_cache_debug.test +++ b/mysql-test/main/query_cache_debug.test @@ -55,6 +55,7 @@ drop table t1; # # Bug#41098: Query Cache returns wrong result with concurrent insert # +--disable_view_protocol --disable_warnings DROP TABLE IF EXISTS t1, t2; @@ -106,7 +107,7 @@ DROP TABLE t1,t2; SET GLOBAL concurrent_insert= DEFAULT; SET GLOBAL query_cache_size= DEFAULT; SET GLOBAL query_cache_type= DEFAULT; - +--enable_view_protocol --echo # --echo # Bug43758 Query cache can lock up threads in 'freeing items' state diff --git a/mysql-test/main/query_cache_innodb.test b/mysql-test/main/query_cache_innodb.test index 72ae891e33180..7ac96220c11ab 100644 --- a/mysql-test/main/query_cache_innodb.test +++ b/mysql-test/main/query_cache_innodb.test @@ -17,7 +17,7 @@ set query_cache_type=1; create table t1 ( id int unsigned auto_increment, primary key(id) ) engine=innodb; create table t2 ( t2id int unsigned, id int unsigned, primary key(t2id, id), foreign key (`id`) references t1(`id`) on delete cascade ) engine=innodb; - +--disable_view_protocol insert into t1 values (1); insert into t2 values (1,1); select * from t2; @@ -26,6 +26,7 @@ show status like "Qcache_queries_in_cache"; delete from t1; show status like "Qcache_queries_in_cache"; select * from t2; +--enable_view_protocol optimize table t2; select * from t2; diff --git a/mysql-test/main/query_cache_merge.test b/mysql-test/main/query_cache_merge.test index 6212ff624e0cb..9b342d57a8e79 100644 --- a/mysql-test/main/query_cache_merge.test +++ b/mysql-test/main/query_cache_merge.test @@ -38,6 +38,7 @@ while ($1) # prepare and execute, and we will get a constant validation # error. See WL#4165 for details. # +--disable_view_protocol set @save_table_definition_cache= @@global.table_definition_cache; set @@global.table_definition_cache=512; create table t00 (a int) engine=MERGE UNION=(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40,t41,t42,t43,t44,t45,t46,t47,t48,t49,t50,t51,t52,t53,t54,t55,t56,t57,t58,t59,t60,t61,t62,t63,t64,t65,t66,t67,t68,t69,t70,t71,t72,t73,t74,t75,t76,t77,t78,t79,t80,t81,t82,t83,t84,t85,t86,t87,t88,t89,t90,t91,t92,t93,t94,t95,t96,t97,t98,t99,t100,t101,t102,t103,t104,t105,t106,t107,t108,t109,t110,t111,t112,t113,t114,t115,t116,t117,t118,t119,t120,t121,t122,t123,t124,t125,t126,t127,t128,t129,t130,t131,t132,t133,t134,t135,t136,t137,t138,t139,t140,t141,t142,t143,t144,t145,t146,t147,t148,t149,t150,t151,t152,t153,t154,t155,t156,t157,t158,t159,t160,t161,t162,t163,t164,t165,t166,t167,t168,t169,t170,t171,t172,t173,t174,t175,t176,t177,t178,t179,t180,t181,t182,t183,t184,t185,t186,t187,t188,t189,t190,t191,t192,t193,t194,t195,t196,t197,t198,t199,t200,t201,t202,t203,t204,t205,t206,t207,t208,t209,t210,t211,t212,t213,t214,t215,t216,t217,t218,t219,t220,t221,t222,t223,t224,t225,t226,t227,t228,t229,t230,t231,t232,t233,t234,t235,t236,t237,t238,t239,t240,t241,t242,t243,t244,t245,t246,t247,t248,t249,t250,t251,t252,t253,t254,t255,t256,t257) INSERT_METHOD=FIRST; @@ -52,6 +53,7 @@ drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t2 SET @@global.query_cache_size=0; set @@global.table_definition_cache=@save_table_definition_cache; +--enable_view_protocol # End of 4.1 tests @@ -83,8 +85,10 @@ while ($c) eval CREATE TABLE t0 (a INT) ENGINE=MERGE UNION($str); SET GLOBAL query_cache_size = 1048576; FLUSH STATUS; +--disable_view_protocol SELECT a FROM t0 WHERE a = 1; SHOW STATUS LIKE "Qcache_queries_in_cache"; +--enable_view_protocol let $c= 255; let $i= 1; diff --git a/mysql-test/main/query_cache_with_views.test b/mysql-test/main/query_cache_with_views.test index c55327e3d0a27..e472a7dd47842 100644 --- a/mysql-test/main/query_cache_with_views.test +++ b/mysql-test/main/query_cache_with_views.test @@ -1,4 +1,5 @@ -- source include/have_query_cache.inc +-- source include/no_view_protocol.inc # # QUERY CACHE options for VIEWs # diff --git a/mysql-test/main/range.test b/mysql-test/main/range.test index caa10a690ce6e..af266a71300f0 100644 --- a/mysql-test/main/range.test +++ b/mysql-test/main/range.test @@ -1233,14 +1233,23 @@ SELECT * FROM t1 WHERE a >= '2009:09:23 00:00:00'; --echo # The former may give errors for the truncated values, while the latter --echo # gives warnings. The purpose of this test is not to interfere, and only --echo # preserve existing behavior. + + +#view protocol generates additional warning +--disable_view_protocol + SELECT str_to_date('2007-10-00', '%Y-%m-%d') >= '' AND str_to_date('2007-10-00', '%Y-%m-%d') <= '2007/10/20'; SELECT str_to_date('2007-20-00', '%Y-%m-%d') >= '2007/10/20' AND str_to_date('2007-20-00', '%Y-%m-%d') <= ''; +--enable_view_protocol +#enable after fix MDEV-27871 +--disable_view_protocol SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20'; SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND ''; +--enable_view_protocol SELECT str_to_date('', '%Y-%m-%d'); diff --git a/mysql-test/main/range_vs_index_merge.test b/mysql-test/main/range_vs_index_merge.test index 60c912e9c3e9b..888885a7afd14 100644 --- a/mysql-test/main/range_vs_index_merge.test +++ b/mysql-test/main/range_vs_index_merge.test @@ -694,7 +694,7 @@ DROP INDEX CityName on City; CREATE INDEX Name ON City(Name); CREATE INDEX Population ON City(Population); - +--disable_view_protocol --replace_column 9 # EXPLAIN SELECT * FROM City @@ -737,6 +737,7 @@ SELECT * FROM City AND (Population >= 100000 AND Population < 120000) ORDER BY Population LIMIT 5; SHOW STATUS LIKE 'Handler_read_%'; +--enable_view_protocol set optimizer_switch=@save_optimizer_switch; diff --git a/mysql-test/main/read_only_innodb.test b/mysql-test/main/read_only_innodb.test index 9ba3ccaca077c..4b00c32b1853d 100644 --- a/mysql-test/main/read_only_innodb.test +++ b/mysql-test/main/read_only_innodb.test @@ -1,6 +1,7 @@ # should work with embedded server after mysqltest is fixed -- source include/not_embedded.inc -- source include/have_innodb.inc +-- source include/no_view_protocol.inc # # BUG#11733: COMMITs should not happen if read-only is set diff --git a/mysql-test/main/reopen_temp_table.test b/mysql-test/main/reopen_temp_table.test index 2b3ff3bab5ebc..3d621fbbc56f4 100644 --- a/mysql-test/main/reopen_temp_table.test +++ b/mysql-test/main/reopen_temp_table.test @@ -1,5 +1,9 @@ --source include/have_innodb.inc +#Temporary table is only available to the current session +#and the view cannot be created based on the temporary table +--source include/no_view_protocol.inc + --echo # --echo # MDEV-5535: Cannot reopen temporary table --echo # diff --git a/mysql-test/main/repair.test b/mysql-test/main/repair.test index 435eb99683a8f..45de1e7350043 100644 --- a/mysql-test/main/repair.test +++ b/mysql-test/main/repair.test @@ -1,6 +1,7 @@ # # Test of repair table # + --source include/have_sequence.inc --source include/default_charset.inc @@ -235,6 +236,7 @@ drop table t1; # # MDEV-11539 test_if_reopen: Assertion `strcmp(share->unique_file_name,filename) || share->last_version' failed upon select from I_S # +--disable_view_protocol CREATE TABLE t1 (i INT) ENGINE=MyISAM; INSERT t1 VALUES (1); LOCK TABLE t1 WRITE; @@ -245,7 +247,7 @@ SELECT * FROM INFORMATION_SCHEMA.TABLES; SELECT * FROM t1; UNLOCK TABLES; DROP TABLE t1; - +--enable_view_protocol --echo # End of 10.0 tests # diff --git a/mysql-test/main/reset_connection.test b/mysql-test/main/reset_connection.test index 73c8280703c04..dd4edc7a95925 100644 --- a/mysql-test/main/reset_connection.test +++ b/mysql-test/main/reset_connection.test @@ -4,6 +4,7 @@ FLUSH STATUS; --disable_result_log --disable_query_log +--disable_service_connection let $i = 10; begin; @@ -37,4 +38,6 @@ connection latin1_conn; SELECT IF(@@character_set_client='latin1','OK', 'FAIL') AS RESULT; --reset_connection SELECT IF(@@character_set_client='latin1','OK', 'FAIL') AS RESULT; -disconnect latin1_conn; \ No newline at end of file +disconnect latin1_conn; + +--enable_service_connection diff --git a/mysql-test/main/row.test b/mysql-test/main/row.test index 80c61c414bfeb..87cf66aa2de28 100644 --- a/mysql-test/main/row.test +++ b/mysql-test/main/row.test @@ -7,8 +7,11 @@ select (1,2,3) IN ((3,2,3), (1,2,3), (1,3,3)); select row(10,2,3) IN (row(3,2,3), row(1,2,3), row(1,3,3)); select row(1,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3)); select row(10,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3)); +#view protocol generates additional warning +--disable_view_protocol select row('a',1.5,3) IN (row(1,2,3), row('a',1.5,3), row('a','a','a')); select row('a',0,3) IN (row(3,2,3), row('a','a','3'), row(1,3,3)); +--enable_view_protocol select row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3)); select row('a',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3)); select row('b',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3)); diff --git a/mysql-test/main/second_frac-9175.test b/mysql-test/main/second_frac-9175.test index 91baf99745957..4cda672b8204e 100644 --- a/mysql-test/main/second_frac-9175.test +++ b/mysql-test/main/second_frac-9175.test @@ -2,8 +2,13 @@ # MDEV-9175 Query parser tansforms MICROSECOND into SECOND_FRAC, which does not work # +#enable after fix MDEV-27871 +--disable_view_protocol + select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); explain extended select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); create view v1 as select timestampdiff(microsecond,'2000-01-01 00:00:00','2001-01-01 00:00:00.123456'); select * from v1; drop view v1; + +--enable_view_protocol diff --git a/mysql-test/main/select.test b/mysql-test/main/select.test index 7e9d6bcf0adee..2691f8ac8131d 100644 --- a/mysql-test/main/select.test +++ b/mysql-test/main/select.test @@ -1735,7 +1735,9 @@ select count(*) from t2; select count(*) from t2 where fld1 < 098024; # PS does correct pre-zero here. MySQL can't do it as it returns a number. --disable_ps_protocol +--disable_view_protocol select min(fld1) from t2 where fld1>= 098024; +--enable_view_protocol --enable_ps_protocol select max(fld1) from t2 where fld1>= 098024; select count(*) from t3 where price2=76234234; @@ -1743,7 +1745,9 @@ select count(*) from t3 where companynr=512 and price2=76234234; explain select min(fld1),max(fld1),count(*) from t2; # PS does correct pre-zero here. MySQL can't do it as it returns a number. --disable_ps_protocol +--disable_view_protocol select min(fld1),max(fld1),count(*) from t2; +--enable_view_protocol --enable_ps_protocol select min(t2nr),max(t2nr) from t3 where t2nr=2115 and price2=823742; select count(*),min(t2nr),max(t2nr) from t3 where name='spates' and companynr=78; @@ -2178,7 +2182,7 @@ drop table t2; # # Bug #11745: SELECT ... FROM DUAL with WHERE condition # - +--disable_view_protocol CREATE TABLE t1 (a int, b int, c int); INSERT INTO t1 SELECT 50, 3, 3 FROM DUAL @@ -2197,7 +2201,7 @@ select count(*) from t1 limit 2,3; select found_rows(); select SQL_CALC_FOUND_ROWS count(*) from t1 limit 2,3; select found_rows(); - +--enable_view_protocol DROP TABLE t1; # @@ -2493,9 +2497,10 @@ DROP TABLE t1,t2; # # Bug #10650 # - +#enable after fix MDEV-28535 +--disable_view_protocol select x'3136' + 0, X'3136' + 0, b'10' + 0, B'10' + 0; - +--enable_view_protocol # # Bug #11398 Bug in field_conv() results in wrong result of join with index # @@ -2614,19 +2619,28 @@ SELECT * FROM BUG_12595 WHERE a LIKE 'ha|%an' ESCAPE '|'; SET @@SQL_MODE='NO_BACKSLASH_ESCAPES'; SHOW LOCAL VARIABLES LIKE 'SQL_MODE'; +#enable after fix MDEV-29231 +--disable_view_protocol SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%'; +--enable_view_protocol SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*'; -- error 1210 SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**'; +#enable after fix MDEV-29231 +--disable_view_protocol -- error 1210 SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '\\'; +--enable_view_protocol #this gives an error when NO_BACKSLASH_ESCAPES is set -- error 1210 SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE ''; SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE 0x5c; SELECT * FROM BUG_12595 WHERE a LIKE 'ha|%an' ESCAPE '|'; +#enable after fix MDEV-29231 +--disable_view_protocol -- error 1210 SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\n%' ESCAPE '\n'; +--enable_view_protocol SET @@SQL_MODE=@OLD_SQL_MODE12595; DROP TABLE BUG_12595; @@ -3537,7 +3551,8 @@ DROP VIEW v1; # On DATETIME-like literals with trailing garbage, BETWEEN fudged in a # DATETIME comparator, while greater/less-than used bin-string comparisons. # Should correctly be compared as DATE or DATETIME, but throw a warning: - +#enable after fix MDEV-27871 +--disable_view_protocol select str_to_date('2007-10-09','%Y-%m-%d') between '2007/10/01 00:00:00 GMT' and '2007/10/20 00:00:00 GMT'; select str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6'; @@ -3580,6 +3595,7 @@ select str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34'; select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01' and '2007/10/20'; +--enable_view_protocol set SQL_MODE=DEFAULT; select str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20'; select str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20'; @@ -3591,12 +3607,15 @@ select str_to_date('1','%Y-%m-%d') = '1'; select str_to_date('1','%Y-%m-%d') = '1'; select str_to_date('','%Y-%m-%d') = ''; +#enable after fix MDEV-27871 +--disable_view_protocol select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01'; select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and NULL; select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '2001-01-01'; select str_to_date('2000-01-01','%Y-%m-%d') between '2001-01-01' and NULL; select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '1000-01-01'; select str_to_date('2000-01-01','%Y-%m-%d') between NULL and NULL; +--enable_view_protocol # # Bug #30666: Incorrect order when using range conditions on 2 tables or more @@ -3706,7 +3725,7 @@ DROP TABLE t1; # # Bug #32942 now() - interval '7200' second is NOT pre-calculated, causing "full table scan" # - +--disable_view_protocol CREATE TABLE t1 (a INT, b INT); CREATE TABLE t2 (a INT, c INT, KEY(a)); @@ -3720,7 +3739,7 @@ FLUSH STATUS; SELECT DISTINCT b FROM t1 LEFT JOIN t2 USING(a) WHERE c <= 3; SHOW STATUS LIKE 'Handler_read%'; DROP TABLE t1, t2; - +--enable_view_protocol # # Bug#40953 SELECT query throws "ERROR 1062 (23000): Duplicate entry..." error # diff --git a/mysql-test/main/select_found.test b/mysql-test/main/select_found.test index 3361369772211..4b6bdbb15e162 100644 --- a/mysql-test/main/select_found.test +++ b/mysql-test/main/select_found.test @@ -1,6 +1,11 @@ # # Testing of found_rows() # + +# Tests will be skipped for the view protocol otherwise +# found_rows() will return an incorrect result. +-- source include/no_view_protocol.inc + --disable_warnings drop table if exists t1,t2; --enable_warnings diff --git a/mysql-test/main/selectivity.test b/mysql-test/main/selectivity.test index 4d7dcdc97816b..27102acda14a7 100644 --- a/mysql-test/main/selectivity.test +++ b/mysql-test/main/selectivity.test @@ -847,7 +847,7 @@ create table t2 (c int, d int, key(c), key(d)) engine=myisam; insert t2 select floor(rand()*1e5/2)*2, floor(rand()*1e5/3)*3 from t1; analyze table t1,t2; - +--disable_view_protocol set optimizer_use_condition_selectivity=1; explain extended select * from t1, t2, t1 as t3 @@ -863,7 +863,7 @@ select * from t1, t2, t1 as t3 --sorted_result select * from t1, t2, t1 as t3 where t1.b=t2.c and t2.d=t3.a and t3.b<5 and t1.a < 2000; - +--enable_view_protocol set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; drop table t1,t2; diff --git a/mysql-test/main/set_statement.test b/mysql-test/main/set_statement.test index 0df223860b91c..193f9e7bcaf1f 100644 --- a/mysql-test/main/set_statement.test +++ b/mysql-test/main/set_statement.test @@ -976,6 +976,7 @@ SET STATEMENT keycache1.key_buffer_size=1024 FOR SELECT 1; # # MDEV-6940: SET STATEMENT executed after SET GLOBAL does not work # +--disable_view_protocol set @save_general_log=@@global.general_log; --echo # SET STATEMENT works (OK) set statement lock_wait_timeout=1 for select @@lock_wait_timeout; @@ -1036,6 +1037,7 @@ select sql_text from mysql.slow_log where sql_text not like 'set @@long_query_ti set statement long_query_time=0.01,min_examined_row_limit=50 for select sleep(0.1); select sql_text from mysql.slow_log where sql_text not like 'set @@long_query_time%'; --echo #--- +--enable_view_protocol # # log_slow_verbosity is impossible to check because results are not written # in TABLE mode diff --git a/mysql-test/main/show_explain.test b/mysql-test/main/show_explain.test index 542701bc42b2f..bccfc557df28f 100644 --- a/mysql-test/main/show_explain.test +++ b/mysql-test/main/show_explain.test @@ -1,6 +1,10 @@ # # Tests for SHOW EXPLAIN FOR functionality # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/have_debug.inc --source include/have_innodb.inc diff --git a/mysql-test/main/show_profile.test b/mysql-test/main/show_profile.test index c20b29c40bfea..fe923d74a0e3f 100644 --- a/mysql-test/main/show_profile.test +++ b/mysql-test/main/show_profile.test @@ -5,6 +5,10 @@ # that SHOW PROFILES, SHOW PROFILE FOR QUERY and SHOW PROFILE CPU FOR QUERY # do not cause syntax errors. It also increases code coverage for sql_profile.cc +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/have_profiling.inc SET profiling = 1; SELECT 1; diff --git a/mysql-test/main/shutdown.test b/mysql-test/main/shutdown.test index e423725177ba5..b670cfc26990f 100644 --- a/mysql-test/main/shutdown.test +++ b/mysql-test/main/shutdown.test @@ -1,4 +1,6 @@ --source include/not_embedded.inc + +--disable_service_connection # # SHUTDOWN statement # @@ -36,3 +38,4 @@ drop user user1@localhost; --let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err --let SEARCH_PATTERN=mysqld(\.exe)? \(initiated by: root\[root\] @ localhost \[(::1)?\]\): Normal shutdown --source include/search_pattern_in_file.inc +--enable_service_connection diff --git a/mysql-test/main/simultaneous_assignment.test b/mysql-test/main/simultaneous_assignment.test index a21e33346d6cd..aea454855f531 100644 --- a/mysql-test/main/simultaneous_assignment.test +++ b/mysql-test/main/simultaneous_assignment.test @@ -29,7 +29,7 @@ UPDATE t1, t2 --echo # --echo # Check standard update --echo # - +--disable_view_protocol UPDATE t1 SET c1 = c1+1, c2 = c1+1, @@ -43,6 +43,7 @@ UPDATE t1 c3 = c2+1; SELECT * FROM t1; ROLLBACK; +--enable_view_protocol --echo # --echo # Check update through a single view @@ -73,7 +74,8 @@ CREATE VIEW v1 (a, b) AS SELECT t1.c1, t2.c1 FROM t1, t2 WHERE t1.c1=t2.c1; UPDATE v1 SET a = 10, b = 20; - + +--disable_view_protocol START TRANSACTION; UPDATE v1 SET a = 10; @@ -116,6 +118,7 @@ UPDATE t1 SELECT * FROM t1; SELECT * FROM t2; ROLLBACK; +--enable_view_protocol DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/main/single_delete_update.test b/mysql-test/main/single_delete_update.test index ec939641ea388..4a4ad5e5a8ec5 100644 --- a/mysql-test/main/single_delete_update.test +++ b/mysql-test/main/single_delete_update.test @@ -2,6 +2,10 @@ # Single table specific update/delete tests (mysql_update and mysql_delete) # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --echo # --echo # Bug #30584: delete with order by and limit clauses does not use --echo # limit efficiently diff --git a/mysql-test/main/sp-anchor-type.test b/mysql-test/main/sp-anchor-type.test index b340cf776c543..7395286ca6692 100644 --- a/mysql-test/main/sp-anchor-type.test +++ b/mysql-test/main/sp-anchor-type.test @@ -167,6 +167,9 @@ DROP TABLE t1; --echo # --echo # Temporary tables shadow real tables for TYPE OF purposes --echo # +#view cannot has temporary table in definition +--disable_view_protocol + CREATE TABLE t1 (a VARCHAR(10)); INSERT INTO t1 VALUES ('t1'); CREATE TEMPORARY TABLE t1 (a INT); @@ -201,6 +204,7 @@ DROP TABLE t2; DROP PROCEDURE p1; DROP TABLE t1; +--enable_view_protocol --echo # --echo # "TYPE OF t1.a" searches for "t1" in the current database diff --git a/mysql-test/main/sp-error.test b/mysql-test/main/sp-error.test index 082b7b8698f4a..92b8085c7c83c 100644 --- a/mysql-test/main/sp-error.test +++ b/mysql-test/main/sp-error.test @@ -1618,6 +1618,7 @@ drop view v1; create view v2 as select bug11555_2(); drop view v2; # But we should hide name of missing implicitly used table when we use view +--disable_view_protocol create table t1 (i int); create view v1 as select bug11555_1(); create view v2 as select bug11555_2(); @@ -1633,6 +1634,7 @@ select * from v3; # another form of view usage. create view v4 as select * from v1; drop view v1, v2, v3, v4; +--enable_view_protocol # We also should hide details about broken triggers which are # invoked for view. drop function bug11555_1; diff --git a/mysql-test/main/sp-lock.test b/mysql-test/main/sp-lock.test index 703c59e8f28b0..f31a826823145 100644 --- a/mysql-test/main/sp-lock.test +++ b/mysql-test/main/sp-lock.test @@ -20,6 +20,9 @@ --echo # then call a DDL operation on a procedure, and then check --echo # that the savepoint is no longer present. +# Tests will be skipped for the view protocol +-- source include/no_view_protocol.inc + --disable_warnings drop table if exists t1; drop procedure if exists p1; diff --git a/mysql-test/main/sp-prelocking.test b/mysql-test/main/sp-prelocking.test index 38cbd5aa11078..fd754a9371c57 100644 --- a/mysql-test/main/sp-prelocking.test +++ b/mysql-test/main/sp-prelocking.test @@ -19,7 +19,7 @@ drop function if exists f3; --enable_warnings # BUG#8072 - +--disable_service_connection create database mysqltest; delimiter //; use mysqltest// @@ -42,7 +42,7 @@ select database(); drop procedure mysqltest.sp1; drop database mysqltest; - +--enable_service_connection # BUG#8766 delimiter //; diff --git a/mysql-test/main/sp-security-anchor-type.test b/mysql-test/main/sp-security-anchor-type.test index e61d5e3805269..1aefa724f67a3 100644 --- a/mysql-test/main/sp-security-anchor-type.test +++ b/mysql-test/main/sp-security-anchor-type.test @@ -89,6 +89,7 @@ DROP PROCEDURE p1; --echo # DEFINER root, SQL SECURITY INVOKER --echo # +--disable_service_connection connection default; DELIMITER $$; CREATE PROCEDURE p1() @@ -160,7 +161,7 @@ DROP PROCEDURE p1; --echo # Stored function: Using TYPE OF for with a table that we don't have access to --echo # DEFINER user1, SQL SECURITY DEFAULT --echo # - +--disable_view_protocol CREATE TABLE t1 (a INT); DELIMITER $$; CREATE FUNCTION f1() RETURNS INT @@ -197,7 +198,7 @@ connection conn1; SELECT f1(); DROP FUNCTION f1; DROP TABLE t1; - +--enable_view_protocol --echo # --echo # Stored function: Using TYPE OF for with a table that we don't have access to @@ -269,7 +270,7 @@ INSERT INTO t1 (a) VALUES (10); SELECT * FROM t1; DROP TRIGGER tr1; DROP TABLE t1; - +--enable_service_connection --echo # diff --git a/mysql-test/main/sp.test b/mysql-test/main/sp.test index d167c1e8f73ed..8c891ace0be3f 100644 --- a/mysql-test/main/sp.test +++ b/mysql-test/main/sp.test @@ -1301,6 +1301,8 @@ create function f1() returns int return (select sum(data) from t1)| # Let us also test some weird cases where no real tables is used +# enable after fix MDEV-28535 +--disable_view_protocol create function f0() returns int return (select * from (select 100) as r)| select f0()| @@ -1308,10 +1310,13 @@ select *, f0() from (select 1) as t| create view v0 as select f0()| select * from v0| select *, f0() from v0| +--enable_view_protocol # # Let us test how well prelocking works with explicit LOCK TABLES. # +#use disable/enable_service_connection after fix MDEV-28535 +--disable_service_connection lock tables t1 read, t1 as t11 read| # These should work well select f3()| @@ -1328,9 +1333,11 @@ select id, f3() from t1| --error ER_TABLE_NOT_LOCKED select f4()| unlock tables| +--enable_service_connection # Let us test how LOCK TABLES which implicitly depends on functions # works +--disable_service_connection lock tables v2 read, mysql.proc read| select * from v2| select * from v1| @@ -1340,6 +1347,7 @@ select * from v1, t1| --error ER_TABLE_NOT_LOCKED select f4()| unlock tables| +--enable_service_connection # Tests for handling of temporary tables in functions. # @@ -1363,6 +1371,7 @@ select f9()| select f9() from t1 limit 1| # Function which uses both temporary and permanent tables. +--disable_view_protocol create function f10() returns int begin drop temporary table if exists t3; @@ -1375,6 +1384,7 @@ end| select f10()| create table t4 as select 1 as id| select f10()| +--enable_view_protocol create function f11() returns int begin @@ -6005,6 +6015,7 @@ SHOW CREATE FUNCTION bug16211_f2| SHOW CREATE FUNCTION mysqltest2.bug16211_f3| SHOW CREATE FUNCTION mysqltest2.bug16211_f4| +--disable_service_connection SELECT dtd_identifier FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"| @@ -6020,6 +6031,7 @@ WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f3"| SELECT dtd_identifier FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = "mysqltest2" AND ROUTINE_NAME = "bug16211_f4"| +--enable_service_connection SELECT CHARSET(bug16211_f1())| SELECT CHARSET(bug16211_f2())| diff --git a/mysql-test/main/sql_mode.test b/mysql-test/main/sql_mode.test index 8cf50f73f6f74..b23c47fa3ce8f 100644 --- a/mysql-test/main/sql_mode.test +++ b/mysql-test/main/sql_mode.test @@ -152,6 +152,8 @@ order by masks.p, example; DROP TABLE t1; +# enable after fix MDEV-29231 +--disable_view_protocol SET @@SQL_MODE='NO_BACKSLASH_ESCAPES'; show local variables like 'SQL_MODE'; @@ -193,9 +195,11 @@ from order by masks.p, example; DROP TABLE t1; +--enable_view_protocol # Bug #6368: Make sure backslashes mixed with doubled quotes are handled # correctly in NO_BACKSLASH_ESCAPES mode +--disable_service_connection SET @@SQL_MODE='NO_BACKSLASH_ESCAPES'; SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b'; SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b"; @@ -203,7 +207,7 @@ SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b"; SET @@SQL_MODE=''; SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b'; SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b"; - +--enable_service_connection # # Bug#6877: MySQL should give an error if the requested table type # is not available diff --git a/mysql-test/main/stat_tables.test b/mysql-test/main/stat_tables.test index f7c18637cdddb..49d067c47df6e 100644 --- a/mysql-test/main/stat_tables.test +++ b/mysql-test/main/stat_tables.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/have_stat_tables.inc --source include/have_partition.inc diff --git a/mysql-test/main/statistics.test b/mysql-test/main/statistics.test index 0ed63ac8bf268..497bdb4607645 100644 --- a/mysql-test/main/statistics.test +++ b/mysql-test/main/statistics.test @@ -592,6 +592,7 @@ set use_stat_tables='preferably'; ANALYZE TABLE Country, City, CountryLanguage; --enable_result_log +--disable_view_protocol --sorted_result SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; @@ -603,6 +604,7 @@ SELECT UPPER(db_name), UPPER(table_name), SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; +--enable_view_protocol use test; @@ -656,8 +658,10 @@ ANALYZE TABLE City; FLUSH TABLES; --enable_result_log +--disable_view_protocol --query_vertical select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,hex(histogram),decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='COUNTRYLANGUAGE' and UPPER(column_name) = 'PERCENTAGE'; --query_vertical select UPPER(db_name),UPPER(table_name),UPPER(column_name),min_value,max_value,nulls_ratio,avg_length,avg_frequency,hist_size,hist_type,hex(histogram),decode_histogram(hist_type,histogram) from mysql.column_stats where UPPER(db_name)='WORLD' and UPPER(table_name)='CITY' and UPPER(column_name) = 'POPULATION'; +--enable_view_protocol set histogram_type=default; set histogram_size=default; diff --git a/mysql-test/main/subselect.test b/mysql-test/main/subselect.test index 3dcff34e7733b..20358ed5d604f 100644 --- a/mysql-test/main/subselect.test +++ b/mysql-test/main/subselect.test @@ -71,6 +71,8 @@ SELECT ROW(1,2,3) = (SELECT 1,2,3); SELECT ROW(1,2,3) = (SELECT 1,2,1); SELECT ROW(1,2,3) < (SELECT 1,2,1); SELECT ROW(1,2,3) > (SELECT 1,2,1); +#enable after fix MDEV-28585 +--disable_view_protocol SELECT ROW(1,2,3) = (SELECT 1,2,NULL); SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'a'); SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'b'); @@ -78,6 +80,7 @@ SELECT (SELECT 1.5,2,'a') = ROW('1.5b',2,'b'); SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a'); SELECT (SELECT 1.5,2,'a') = ROW(1.5,'2','a'); SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a'); +--enable_view_protocol -- error ER_OPERAND_COLUMNS SELECT (SELECT * FROM (SELECT 'test' a,'test' b) a); @@ -114,8 +117,11 @@ set optimizer_switch=@tmp_optimizer_switch; select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3) order by 1 desc limit 1); select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3 where t3.a > t1.a) order by 1 desc limit 1); select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3 where t3.a < t1.a) order by 1 desc limit 1); +#enable afte fix MDEV-27871 +--disable_view_protocol select b,(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2) from t4; explain extended select b,(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2) from t4; +--enable_view_protocol select * from t3 where exists (select * from t2 where t2.b=t3.a); select * from t3 where not exists (select * from t2 where t2.b=t3.a); select * from t3 where a in (select b from t2); @@ -140,18 +146,25 @@ select * from t3 where a in (select a,b from t2); select * from t3 where a in (select * from t2); insert into t4 values (12,7),(1,7),(10,9),(9,6),(7,6),(3,9),(1,10); # empty set + select b,max(a) as ma from t4 group by b having b < (select max(t2.a) from t2 where t2.b=t4.b); insert into t2 values (2,10); select b,max(a) as ma from t4 group by b having ma < (select max(t2.a) from t2 where t2.b=t4.b); delete from t2 where a=2 and b=10; select b,max(a) as ma from t4 group by b having b >= (select max(t2.a) from t2 where t2.b=t4.b); create table t5 (a int); + +#enable afte fix MDEV-27871 +--disable_view_protocol + select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2; insert into t5 values (5); select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2; insert into t5 values (2); select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2; explain extended select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2; +--enable_view_protocol + -- error ER_SUBQUERY_NO_1_ROW select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2; create table t6 (patient_uq int, clinic_uq int, index i1 (clinic_uq)); @@ -255,13 +268,19 @@ SELECT * from t2 where topic = any (SELECT topic FROM t2 GROUP BY topic HAVING t SELECT * from t2 where topic = any (SELECT SUM(topic) FROM t1); SELECT * from t2 where topic = all (SELECT topic FROM t2 GROUP BY topic); SELECT * from t2 where topic = all (SELECT topic FROM t2 GROUP BY topic HAVING topic < 4100); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT *, topic = all (SELECT topic FROM t2 GROUP BY topic HAVING topic < 4100) from t2; +--enable_view_protocol SELECT * from t2 where topic = all (SELECT SUM(topic) FROM t2); SELECT * from t2 where topic <> any (SELECT SUM(topic) FROM t2); SELECT * from t2 where topic IN (SELECT topic FROM t2 GROUP BY topic HAVING topic < 41000); SELECT * from t2 where topic = any (SELECT topic FROM t2 GROUP BY topic HAVING topic < 41000); SELECT * from t2 where topic = all (SELECT topic FROM t2 GROUP BY topic HAVING topic < 41000); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT *, topic = all (SELECT topic FROM t2 GROUP BY topic HAVING topic < 41000) from t2; +--enable_view_protocol drop table t1,t2; #forumconthardwarefr7 @@ -460,6 +479,8 @@ INSERT INTO t1 values (1),(1); UPDATE t2 SET id=(SELECT * FROM t1); drop table t2, t1; +#enable after fix MDEV-28585 +--disable_view_protocol #NULL test create table t1 (a int); insert into t1 values (1),(2),(3); @@ -505,6 +526,7 @@ select 10.5 > ANY (SELECT * from t1); explain extended select (select a+1) from t1; select (select a+1) from t1; drop table t1; +--enable_view_protocol # # Null with keys @@ -924,7 +946,10 @@ create table t3 (a int, b int); insert into t1 values (0,100),(1,2), (1,3), (2,2), (2,7), (2,-1), (3,10); insert into t2 values (0,0), (1,1), (2,1), (3,1), (4,1); insert into t3 values (3,3), (2,2), (1,1); +#enable after fix MDEV-27871 +--disable_view_protocol select a,(select count(distinct t1.b) as sum from t1,t2 where t1.a=t2.a and t2.b > 0 and t1.a <= t3.b group by t1.a order by sum limit 1) from t3; +--enable_view_protocol drop table t1,t2,t3; # @@ -1042,7 +1067,10 @@ CREATE TABLE `t3` (`taskgenid` mediumint(9) NOT NULL auto_increment,`dbid` int(1 INSERT INTO `t3` (`taskgenid`, `dbid`, `taskid`, `mon`, `tues`,`wed`, `thur`, `fri`, `sat`, `sun`, `how_often`, `userid`, `active`) VALUES (1,-1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1); CREATE TABLE `t4` (`task_id` smallint(6) NOT NULL default '0',`description` varchar(200) NOT NULL default '') ENGINE=MyISAM CHARSET=latin1; INSERT INTO `t4` (`task_id`, `description`) VALUES (1, 'Daily Check List'),(2, 'Weekly Status'); +#enable after fix MDEV-27871 +--disable_view_protocol select dbid, name, (date_format(now() , '%Y-%m-%d') - INTERVAL how_often DAY) >= ifnull((SELECT date_format(max(create_date),'%Y-%m-%d') FROM t1 WHERE dbid = b.db_id AND taskid = a.taskgenid), '1950-01-01') from t3 a, t2 b, t4 WHERE dbid = - 1 AND primary_uid = '1' AND t4.task_id = taskid; +--enable_view_protocol SELECT dbid, name FROM t3 a, t2 b, t4 WHERE dbid = - 1 AND primary_uid = '1' AND ((date_format(now() , '%Y-%m-%d') - INTERVAL how_often DAY) >= ifnull((SELECT date_format(max(create_date),'%Y-%m-%d') FROM t1 WHERE dbid = b.db_id AND taskid = a.taskgenid), '1950-01-01')) AND t4.task_id = taskid; drop table t1,t2,t3,t4; @@ -1194,6 +1222,8 @@ drop table t1; # # ref_or_null replacing with ref # +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol create table t1 (id int not null, text varchar(20) not null default '', primary key (id)); insert into t1 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, 'text4'), (5, 'text5'), (6, 'text6'), (7, 'text7'), (8, 'text8'), (9, 'text9'), (10, 'text10'), (11, 'text11'), (12, 'text12'); select * from t1 where id not in (select id from t1 where id < 8); @@ -1206,6 +1236,7 @@ insert into t2 (id, text) values (1, 'text1'), (2, 'text2'), (3, 'text3'), (4, ' select * from t1 a left join t2 b on (a.id=b.id or b.id is null) join t1 c on (if(isnull(b.id), 1000, b.id)=c.id); explain extended select * from t1 a left join t2 b on (a.id=b.id or b.id is null) join t1 c on (if(isnull(b.id), 1000, b.id)=c.id); drop table t1,t2; +--enable_view_protocol # # Static tables & rund() in subqueries @@ -1413,12 +1444,14 @@ DROP TABLE t1; # # SELECT(EXISTS * ...)optimisation # +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol create table t1 (a int, b int); insert into t1 values (1,2),(3,4); select * from t1 up where exists (select * from t1 where t1.a=up.a); explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a); drop table t1; - +--enable_view_protocol # # Bug#4102 subselect in HAVING @@ -2354,6 +2387,9 @@ SELECT a, MAX(b), MIN(b) FROM t1 GROUP BY a; SELECT * FROM t2; SELECT * FROM t3; +#enable after fix MDEV-28570 +--disable_view_protocol + SELECT a FROM t1 GROUP BY a HAVING a IN (SELECT c FROM t2 WHERE MAX(b)>20); SELECT a FROM t1 GROUP BY a @@ -2418,6 +2454,8 @@ SELECT t1.a, SUM(b) AS sum FROM t1 GROUP BY t1.a HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c HAVING t2.c+sum > 20); +--enable_view_protocol + DROP TABLE t1,t2,t3; @@ -2651,6 +2689,10 @@ DROP TABLE t1; # # Bug#21540 Subqueries with no from and aggregate functions return # wrong results + +#enable after fix MDEV-27871, MDEV-28573 +--disable_view_protocol + CREATE TABLE t1 (a INT, b INT); CREATE TABLE t2 (a INT); INSERT INTO t2 values (1); @@ -2678,7 +2720,7 @@ SELECT ( FROM t1 t2 GROUP BY t2.a; DROP TABLE t1,t2; - +--enable_view_protocol # # Bug#21727 Correlated subquery that requires filesort: @@ -2913,6 +2955,8 @@ DROP TABLE t1,t2; # Bug#27229 GROUP_CONCAT in subselect with COUNT() as an argument # +#enable after fix MDEV-28571 +--disable_view_protocol CREATE TABLE t1 (a int, b int); CREATE TABLE t2 (m int, n int); INSERT INTO t1 VALUES (2,2), (2,2), (3,3), (3,3), (3,3), (4,4); @@ -2927,7 +2971,7 @@ SELECT COUNT(*) c, a, FROM t1 GROUP BY a; DROP table t1,t2; - +--enable_view_protocol # # Bug#27321 Wrong subquery result in a grouping select @@ -2958,11 +3002,14 @@ SELECT tt.a, FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1) as test FROM t1 as tt GROUP BY tt.a; +#enable after fix MDEV-28571 +--disable_view_protocol SELECT tt.a, MAX( (SELECT (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.d=MAX(t1.b + tt.a) LIMIT 1) FROM t1 WHERE t1.a=tt.a GROUP BY a LIMIT 1)) as test FROM t1 as tt GROUP BY tt.a; +--enable_view_protocol DROP TABLE t1; @@ -2980,6 +3027,7 @@ SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 1 GROUP BY a; SELECT a FROM t1 t0 WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a; +--disable_service_connection SET @@sql_mode='ansi'; --error ER_INVALID_GROUP_FUNC_USE SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a; @@ -2991,6 +3039,7 @@ SELECT a FROM t1 t0 WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a; SET @@sql_mode=default; +--enable_service_connection DROP TABLE t1; @@ -3109,11 +3158,14 @@ DROP TABLE t1,t2; # Bug#27333 subquery grouped for aggregate of outer query / no aggregate # of subquery # + CREATE TABLE t1 (a INTEGER, b INTEGER); CREATE TABLE t2 (x INTEGER); INSERT INTO t1 VALUES (1,11), (2,22), (2,22); INSERT INTO t2 VALUES (1), (2); +#enable after fix MDEV-28573 +--disable_view_protocol # wasn't failing, but should --error ER_SUBQUERY_NO_1_ROW SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a; @@ -3123,6 +3175,8 @@ SELECT a, COUNT(b), (SELECT COUNT(b) FROM t2) FROM t1 GROUP BY a; SELECT a, COUNT(b), (SELECT COUNT(b)+0 FROM t2) FROM t1 GROUP BY a; SELECT (SELECT SUM(t1.a)/AVG(t2.x) FROM t2) FROM t1; +--enable_view_protocol + DROP TABLE t1,t2; # second test case from 27333 @@ -3136,6 +3190,8 @@ GROUP BY a1.a; DROP TABLE t1; #test cases from 29297 +#enable after fix MDEV-28573 +--disable_view_protocol CREATE TABLE t1 (a INT); CREATE TABLE t2 (a INT); INSERT INTO t1 VALUES (1),(2); @@ -3145,6 +3201,7 @@ SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=0) FROM t1; SELECT (SELECT SUM(t1.a) FROM t2 WHERE a!=0) FROM t1; SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1; DROP TABLE t1,t2; +--enable_view_protocol # # Bug#31884 Assertion + crash in subquery in the SELECT clause. @@ -3797,6 +3854,8 @@ SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 1 GROUP BY a; SELECT a FROM t1 t0 WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a; +--disable_service_connection + SET @@sql_mode='ansi'; --error ER_INVALID_GROUP_FUNC_USE SELECT a FROM t1 WHERE (SELECT COUNT(b) FROM DUAL) > 0 GROUP BY a; @@ -3808,6 +3867,8 @@ SELECT a FROM t1 t0 WHERE (SELECT COUNT(t0.b) FROM t1 t WHERE t.b>20) GROUP BY a; SET @@sql_mode=default; +--enable_service_connection + DROP TABLE t1; # @@ -5353,11 +5414,14 @@ INSERT INTO t2 VALUES (10,7,0), (0,7,0); CREATE TABLE t3 (a int, b int); INSERT INTO t3 VALUES (10,7), (0,7); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT SUM(DISTINCT b), (SELECT t2.a FROM t1 JOIN t2 ON t2.c != 0 WHERE t.a != 0 AND t2.a != 0) FROM (SELECT * FROM t3) AS t GROUP BY 2; +--enable_view_protocol SELECT SUM(DISTINCT b), (SELECT t2.a FROM t1,t2 WHERE t.a != 0 or 1=2 LIMIT 1) @@ -5515,6 +5579,8 @@ INSERT INTO t3 VALUES (1,1),(2,2); set @old_optimizer_switch = @@session.optimizer_switch; set @@optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off,subquery_cache=off,semijoin=off'; +#enable after fix MDEV-27871 +--disable_view_protocol SELECT (SELECT f3a FROM t3 where f3a > 3) NOT IN (SELECT f1a FROM t1) FROM t2; SELECT (SELECT f3a,f3a FROM t3 where f3a > 3) NOT IN (SELECT f1a,f1a FROM t1) FROM t2; SELECT (SELECT f3a, f3b FROM t3 where f3a > 3) NOT IN (SELECT f1a, f1b FROM t1) FROM t2; @@ -5535,6 +5601,7 @@ SELECT (SELECT f3a FROM t3 where f3a > 3) IN (SELECT f1a FROM t1) FROM t2; SELECT (SELECT f3a,f3a FROM t3 where f3a > 3) IN (SELECT f1a,f1a FROM t1) FROM t2; SELECT (SELECT f3a, f3b FROM t3 where f3a > 3) IN (SELECT f1a, f1b FROM t1) FROM t2; SELECT (SELECT f3a, f3b FROM t3 where f3a > 3) IN (SELECT f1a, f1b FROM t1); +--enable_view_protocol # other row operation with NULL single row subquery also should work select (null, null) = (null, null); @@ -5574,7 +5641,10 @@ INSERT INTO t3 VALUES (4),(5); SET optimizer_switch='subquery_cache=off'; +#enable after fix MDEV-27871 +--disable_view_protocol SELECT ( SELECT b FROM t2 WHERE b = a OR EXISTS ( SELECT c FROM t3 WHERE c = b ) ) FROM t1; +--enable_view_protocol # This query just for example, it should return the same as above (1 and NULL) SELECT ( SELECT b FROM t2 WHERE b = a OR b * 0) FROM t1; @@ -5763,6 +5833,8 @@ INSERT INTO t3 VALUES (8),(3); set @@expensive_subquery_limit= 0; +#enable after fix MDEV-27871 +--disable_view_protocol EXPLAIN SELECT (SELECT MIN(b) FROM t1, t2 WHERE b = a AND (b = alias1.b OR EXISTS (SELECT * FROM t3))) FROM t2 alias1, t1 alias2, t1 alias3; @@ -5788,6 +5860,7 @@ FROM t2 alias1, t1 alias2, t1 alias3; show status like "subquery_cache%"; show status like '%Handler_read%'; +--enable_view_protocol drop table t1, t2, t3; @@ -6048,16 +6121,22 @@ INSERT INTO t1 VALUES (1),(2); CREATE TABLE t2 (f2 int); INSERT INTO t2 VALUES (3); +#enable after fix MDEV-29224 +--disable_view_protocol SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1; SELECT ( SELECT MAX(f1) FROM t2 ) FROM v1; +--enable_view_protocol INSERT INTO t2 VALUES (4); +#enable after fix MDEV-28573 +--disable_view_protocol --error ER_SUBQUERY_NO_1_ROW SELECT ( SELECT MAX(f1) FROM t2 ) FROM v1; --error ER_SUBQUERY_NO_1_ROW SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1; +--enable_view_protocol drop view v1; drop table t1,t2; @@ -6069,7 +6148,10 @@ CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM; INSERT t1 VALUES (4),(8); CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM; INSERT t2 VALUES (6); +#view definition cannot contain a subquery in the FROM clause +--disable_view_protocol SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2; +--enable_view_protocol --echo # --echo # Disable this query till MDEV-13399 is resolved --echo # diff --git a/mysql-test/main/subselect2.test b/mysql-test/main/subselect2.test index 3b982b8b7d0fa..fcc39f7309728 100644 --- a/mysql-test/main/subselect2.test +++ b/mysql-test/main/subselect2.test @@ -264,6 +264,8 @@ set optimizer_switch=@tmp_mdev567; --echo # MDEV-4996: degenerate OR formula in WHERE of a subquery --echo # +--disable_view_protocol + CREATE TABLE t1 (a int, c1 varchar(1)) ENGINE=MyISAM; INSERT INTO t1 VALUES (2,'x'), (8,'d'); @@ -283,6 +285,8 @@ SELECT * FROM t1 WHERE c1 NOT IN ( DROP TABLE t1,t2; +--enable_view_protocol + --echo # --echo # MDEV-614, also MDEV-536, also LP:1050806: --echo # different result for a query using subquery between 5.5.25 and 5.5.27 diff --git a/mysql-test/main/subselect3.inc b/mysql-test/main/subselect3.inc index 8ed1c9ee21077..af7b45542bd9e 100644 --- a/mysql-test/main/subselect3.inc +++ b/mysql-test/main/subselect3.inc @@ -689,6 +689,8 @@ SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), DROP TABLE t1; +#enable after fix MDEV-28585 +--disable_view_protocol --echo # both columns should be same SELECT ROW(1,2) = (SELECT NULL, NULL), ROW(1,2) IN (SELECT NULL, NULL); SELECT ROW(1,2) = (SELECT 1, NULL), ROW(1,2) IN (SELECT 1, NULL); @@ -696,6 +698,7 @@ SELECT ROW(1,2) = (SELECT NULL, 2), ROW(1,2) IN (SELECT NULL, 2); SELECT ROW(1,2) = (SELECT NULL, 1), ROW(1,2) IN (SELECT NULL, 1); SELECT ROW(1,2) = (SELECT 1, 1), ROW(1,2) IN (SELECT 1, 1); SELECT ROW(1,2) = (SELECT 1, 2), ROW(1,2) IN (SELECT 1, 2); +--enable_view_protocol # # Bug #37362 Crash in do_field_eq diff --git a/mysql-test/main/subselect4.test b/mysql-test/main/subselect4.test index 6aedabcd3f5e6..2982766c16d58 100644 --- a/mysql-test/main/subselect4.test +++ b/mysql-test/main/subselect4.test @@ -1,5 +1,8 @@ # General purpose bug fix tests go here : subselect.test too large +#remove this include after fix MDEV-27871, MDEV-27957 +--source include/no_view_protocol.inc + --source include/default_optimizer_switch.inc --disable_warnings diff --git a/mysql-test/main/subselect_cache.test b/mysql-test/main/subselect_cache.test index 55da0000f13b4..6b6fc4773f13c 100644 --- a/mysql-test/main/subselect_cache.test +++ b/mysql-test/main/subselect_cache.test @@ -1,3 +1,7 @@ +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --disable_warnings drop table if exists t0,t1,t2,t3,t4,t5,t6,t7,t8,t9; drop view if exists v1; diff --git a/mysql-test/main/subselect_exists2in.test b/mysql-test/main/subselect_exists2in.test index e70d643138bd4..8ad89be2b65b8 100644 --- a/mysql-test/main/subselect_exists2in.test +++ b/mysql-test/main/subselect_exists2in.test @@ -270,6 +270,8 @@ INSERT INTO t3 VALUES (4),(5); SET optimizer_switch='exists_to_in=on,subquery_cache=off,materialization=on,in_to_exists=off,semijoin=off'; +#enable after fix MDEV-27871 +--disable_view_protocol explain extended SELECT ( SELECT b FROM t2 WHERE NOT EXISTS ( SELECT c FROM t3 WHERE c = b ) ) FROM t1; SELECT ( SELECT b FROM t2 WHERE NOT EXISTS ( SELECT c FROM t3 WHERE c = b ) ) FROM t1; @@ -325,6 +327,8 @@ set optimizer_switch='exists_to_in=on'; drop table t1,t3; +--enable_view_protocol + --echo # --echo # MDEV-159 Assertion about not marked for read failed in --echo # String* Field_varstring::val_str(String*, String*) @@ -400,6 +404,9 @@ set optimizer_switch='exists_to_in=on'; --echo # --echo # MDEV-160 Exists2In: Crash in in hp_movelink with subquery_cache=ON --echo # +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol + SET optimizer_switch = 'in_to_exists=on,subquery_cache=on,exists_to_in=on'; CREATE TABLE t1 ( @@ -512,6 +519,8 @@ WHERE EXISTS ( SELECT 1 FROM t2 WHERE b = alias1.a AND b > alias2.b ) OR a = 5; +--enable_view_protocol + drop table t1, t2; set optimizer_switch=default; set optimizer_switch='exists_to_in=on'; @@ -776,12 +785,16 @@ SELECT STRAIGHT_JOIN sq1.f2 set @optimizer_switch_save=@@optimizer_switch; +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol + set optimizer_switch='exists_to_in=off'; eval explain extended $q; eval $q; set optimizer_switch='exists_to_in=on'; eval explain extended $q; eval $q; +--enable_view_protocol set optimizer_switch= @optimizer_switch_save; diff --git a/mysql-test/main/subselect_extra.test b/mysql-test/main/subselect_extra.test index 3651aed9aab48..3f2f7b611fff2 100644 --- a/mysql-test/main/subselect_extra.test +++ b/mysql-test/main/subselect_extra.test @@ -40,6 +40,9 @@ drop tables t1, t2; --echo # --echo # Bug #32694: NOT NULL table field in a subquery produces invalid results --echo # +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol + create table t1 (id int(10) not null, cur_date datetime not null); create table t2 (id int(10) not null, cur_date date not null); insert into t1 (id, cur_date) values (1, '2007-04-25 18:30:22'); @@ -73,6 +76,7 @@ select * from t2 where id in (select id from t2 as x1 where (t2.cur_date is null)); drop table t1,t2; +--enable_view_protocol --echo # --echo # From group_min_max.test diff --git a/mysql-test/main/subselect_extra_no_semijoin.test b/mysql-test/main/subselect_extra_no_semijoin.test index 681f92bd8c448..448f52a81e944 100644 --- a/mysql-test/main/subselect_extra_no_semijoin.test +++ b/mysql-test/main/subselect_extra_no_semijoin.test @@ -12,6 +12,8 @@ set @optimizer_switch_for_subselect_extra_test=null; --echo # MDEV-6439: Server crashes in Explain_union::print_explain with explain in slow log, tis620 charset --echo # +--disable_service_connection + ## Using a separate client connection is easier than restoring state connect(con1,localhost,root,,); @@ -36,3 +38,5 @@ drop table t1,t2; SET GLOBAL slow_query_log=@tmp; disconnect con1; connection default; + +--enable_service_connection diff --git a/mysql-test/main/subselect_innodb.test b/mysql-test/main/subselect_innodb.test index 5d8f3dcc1b5b1..edb5cefce46a7 100644 --- a/mysql-test/main/subselect_innodb.test +++ b/mysql-test/main/subselect_innodb.test @@ -33,7 +33,10 @@ CREATE INDEX CMFLDRPARNT_IDX ON t1 (PARENTID); INSERT INTO t1 VALUES("0c9aab05b15048c59bc35c8461507deb", "System", "System", "2003-06-05 16:30:00", "The system content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "9c9aab05b15048c59bc35c8461507deb", "1"); INSERT INTO t1 VALUES("2f6161e879db43c1a5b82c21ddc49089", "Default", "System", "2003-06-09 10:52:02", "The default content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "03eea05112b845949f3fd03278b5fe43", "1"); INSERT INTO t1 VALUES("c373e9f5ad0791724315444553544200", "AddDocumentTest", "admin", "2003-06-09 10:51:25", "Movie Reviews", "0", "2003-06-09 10:51:25", "admin", "0", "2f6161e879db43c1a5b82c21ddc49089", "03eea05112b845949f3fd03278b5fe43", NULL); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT 'c373e9f5ad0791a0dab5444553544200' IN(SELECT t1.FOLDERID FROM t1 WHERE t1.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t1.FOLDERNAME = 'Level1'); +--enable_view_protocol drop table t1; # @@ -70,7 +73,10 @@ CREATE TABLE t2 ( INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t3 VALUES (1,1),(2,2),(3,3); INSERT INTO t2 VALUES (1,1),(2,2),(3,3); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) FROM t1 p1; +--enable_view_protocol drop table t2,t1,t3; # @@ -206,6 +212,8 @@ CREATE TABLE `t3` ( `t3_id` int NOT NULL ); INSERT INTO `t3` VALUES (3); +#enable after fix MDEV-27871 +--disable_view_protocol select (SELECT rs.t2_id FROM t2 rs @@ -215,6 +223,7 @@ select WHERE lt.t3_id=a.t3_id) ORDER BY b DESC LIMIT 1) from t3 AS a; +--enable_view_protocol # repeat above query in SP --disable_warnings DROP PROCEDURE IF EXISTS p1; @@ -632,7 +641,8 @@ set character_set_connection=@save_character_set_connection; --echo # MDEV-26047: MariaDB server crash at Item_subselect::init_expr_cache_tracker --echo # CREATE TABLE t1 (a int) engine=innodb; - +#enable abter fix MDEV-27871 +--disable_view_protocol SELECT 1 IN ( SELECT NULL FROM t1 @@ -641,6 +651,7 @@ SELECT 1 IN ( GROUP BY (SELECT NULL from dual WHERE a = 1) ); +--enable_view_protocol drop table t1; --echo # Testcase from MDEV-26164 @@ -662,9 +673,10 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB; INSERT INTO t1 VALUES (1),(2); CREATE TABLE t2 (b INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (3),(4); - +#enable after fix MDEV-27871 +--disable_view_protocol SELECT 1 IN (SELECT a FROM t1 LEFT JOIN t2 ON (a = b AND EXISTS (SELECT * FROM t1))); - +--enable_view_protocol drop table t1,t2; # End of 10.2 tests diff --git a/mysql-test/main/subselect_mat.test b/mysql-test/main/subselect_mat.test index fc43d19ae11e7..cacafb0000f2c 100644 --- a/mysql-test/main/subselect_mat.test +++ b/mysql-test/main/subselect_mat.test @@ -192,6 +192,8 @@ INSERT INTO t2 VALUES (1000,6,2); set @@optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off,in_to_exists=off'; +#enable after fix MDEV-27871 +--disable_view_protocol EXPLAIN SELECT (f1, f2, f3) NOT IN (SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) @@ -201,6 +203,8 @@ SELECT (f1, f2, f3) NOT IN (SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) FROM t2; +--enable_view_protocol + drop table t1, t2; --echo # diff --git a/mysql-test/main/subselect_mat_cost_bugs.test b/mysql-test/main/subselect_mat_cost_bugs.test index 028cdced56060..5c5777397e856 100644 --- a/mysql-test/main/subselect_mat_cost_bugs.test +++ b/mysql-test/main/subselect_mat_cost_bugs.test @@ -442,10 +442,13 @@ INSERT INTO t1 VALUES (1,'foo','bar'),(2,'bar','foo'); CREATE TABLE t2 (pk2 INT PRIMARY KEY, a2 VARCHAR(3), KEY(a2)) ENGINE=MyISAM; INSERT INTO t2 VALUES (1,'abc'),(2,'xyz'),(3,'foo'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT 'qux' IN ( SELECT a1 FROM t1 INNER JOIN t2 WHERE a2 = b1 AND pk2 = 3 ); SELECT 'bar' IN ( SELECT a1 FROM t1 INNER JOIN t2 WHERE a2 = b1 AND pk2 = 3 ); EXPLAIN SELECT 'bar' IN ( SELECT a1 FROM t1 INNER JOIN t2 WHERE a2 = b1 AND pk2 = 3 ); +--enable_view_protocol DROP TABLE t1,t2; diff --git a/mysql-test/main/subselect_sj_mat.test b/mysql-test/main/subselect_sj_mat.test index 8583a6951b966..3013ae1363031 100644 --- a/mysql-test/main/subselect_sj_mat.test +++ b/mysql-test/main/subselect_sj_mat.test @@ -187,6 +187,9 @@ select * from v1m where (c2, b1) in (select distinct c2, b1 from v2m where b1 is drop view v1, v2, v1m, v2m; +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol + # nested subqueries, views explain extended select * from t1 @@ -320,6 +323,7 @@ explain extended select * from t1 where (a1, a2) in (select '1 - 01', '2 - 01' from dual); select * from t1 where (a1, a2) in (select '1 - 01', '2 - 01' from dual); +--enable_view_protocol /****************************************************************************** * Subqueries in other uncovered clauses. @@ -804,6 +808,9 @@ explain extended select a from t1 group by a having a in (select c from t2 where d >= 20); select a from t1 group by a having a in (select c from t2 where d >= 20); +#--view-protocol is disabled because view gives another query plan +--disable_view_protocol + explain extended select a from t1 group by a having a in (select c from t2 where d >= some(select e from t3 where max(b)=e)); @@ -814,6 +821,7 @@ select a from t1 where a in (select c from t2 where d >= some(select e from t3 where b=e)); select a from t1 where a in (select c from t2 where d >= some(select e from t3 where b=e)); +--enable_view_protocol drop table t1, t2, t3; diff --git a/mysql-test/main/symlink.test b/mysql-test/main/symlink.test index cf95d4cb93814..d5f52e9a60d86 100644 --- a/mysql-test/main/symlink.test +++ b/mysql-test/main/symlink.test @@ -144,6 +144,9 @@ DROP TABLE t2; # # Bug#8706 - temporary table with data directory option fails # +#view cannot has temporary table in definition +--disable_view_protocol + connect (session1,localhost,root,,); connect (session2,localhost,root,,); @@ -176,6 +179,8 @@ connection default; select * from t1; drop table t1; +--enable_view_protocol + --echo End of 4.1 tests # diff --git a/mysql-test/main/table_elim.test b/mysql-test/main/table_elim.test index 8de4743b9fd25..e5770877e6fd7 100644 --- a/mysql-test/main/table_elim.test +++ b/mysql-test/main/table_elim.test @@ -614,6 +614,10 @@ SET optimizer_switch=@save_optimizer_switch; --echo # --echo # MDEV-7893: table_elimination works wrong with on computed expression and compound unique key --echo # (just a testcase) + +#enable after fix MDEV-28602 +--disable_view_protocol + CREATE TABLE t1 ( PostID int(10) unsigned NOT NULL ) DEFAULT CHARSET=utf8; @@ -641,3 +645,4 @@ LIMIT 1; DROP TABLE t1,t2; +--enable_view_protocol diff --git a/mysql-test/main/table_value_constr.test b/mysql-test/main/table_value_constr.test index 673e7dcdc6ebc..5dcd54aae297c 100644 --- a/mysql-test/main/table_value_constr.test +++ b/mysql-test/main/table_value_constr.test @@ -1477,6 +1477,9 @@ execute stmt; execute stmt; deallocate prepare stmt; +#enable after fix MDEV-28603 +--disable_view_protocol + let $q2= select (values ((select * from t1 where a > 10))) from t2; eval $q2; @@ -1513,6 +1516,8 @@ execute stmt; execute stmt; deallocate prepare stmt; +--enable_view_protocol + drop view v1; drop table t1,t2,t3; @@ -1584,6 +1589,10 @@ values ((values (2))), ((values ((values (4))))) union all values ((values (8))), ((values ((select 4)))); +#A view definition cannot contain a subquery in the FROM clause +# in the SELECT statement +--disable_view_protocol + select * from (values ((values (2)))) dt; select * from (values ((values (2)), (5), (select 4))) dt; @@ -1596,6 +1605,8 @@ select * from (values ((values (2))), ((values (3)))) dt; select * from (values ((values (2))), ((select 4)), ((values (3)))) dt; +--enable_view_protocol + create table t1 (a int); insert into t1 values (3), (7), (1); @@ -1619,10 +1630,16 @@ values ((values ((select (values(2)) from t1 where a=8)))); --error ER_SUBQUERY_NO_1_ROW values ((select (values(2)) from t1 where a<7)); +#A view definition cannot contain a subquery in the FROM clause +# in the SELECT statement +--disable_view_protocol + select * from (values ((values ((select a from t1 where a=7))))) dt; select * from (values ((values ((select (values(2)) from t1 where a=8))))) dt; +--enable_view_protocol + insert into t1(a) values ((values (2))), ((values (3))); select * from t1; @@ -1633,6 +1650,10 @@ drop table t1; --echo # MDEV-25484: Derived table using TVC with LIMIT and ORDER BY --echo # +#A view definition cannot contain a subquery in the FROM clause +# in the SELECT statement +--disable_view_protocol + create table t1 (a int); insert into t1 values (3), (7), (1); @@ -1650,6 +1671,8 @@ select * from (values (3),(7),(1) union values (2),(4) order by 1 limit 2) as dt drop table t1; +--enable_view_protocol + --echo # --echo # MDEV-23182: Server crashes in --echo # Item::fix_fields_if_needed / table_value_constr::prepare upon 2nd execution of PS diff --git a/mysql-test/main/temp_table.test b/mysql-test/main/temp_table.test index dc5fe7f3cd03e..9e639ffce2ce4 100644 --- a/mysql-test/main/temp_table.test +++ b/mysql-test/main/temp_table.test @@ -2,6 +2,9 @@ --source include/not_embedded.inc --source include/have_innodb.inc +#View cannot has temporary table in definition +--source include/no_view_protocol.inc + # # Test of temporary tables # diff --git a/mysql-test/main/temp_table_frm.test b/mysql-test/main/temp_table_frm.test index 178bd15004b0a..a4ddcbed900b7 100644 --- a/mysql-test/main/temp_table_frm.test +++ b/mysql-test/main/temp_table_frm.test @@ -1,7 +1,11 @@ +#View cannot has temporary table in definition +-- source include/no_view_protocol.inc + # # MDEV-4260 Don't create frm files for temporary tables # + # Ensure we don't overflow the internal heap table size in the join set @@session.max_heap_table_size=16*1024*1024; create table t1 select * from information_schema.session_status where variable_name like 'Opened%'; diff --git a/mysql-test/main/timezone2.test b/mysql-test/main/timezone2.test index 1e5615502da49..db2c2ca19f6a3 100644 --- a/mysql-test/main/timezone2.test +++ b/mysql-test/main/timezone2.test @@ -12,6 +12,9 @@ drop function if exists f1; # create table t1 (ts timestamp); +#enable after fix MDEV-27871 +--disable_view_protocol + set time_zone='+00:00'; select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); insert into t1 (ts) values ('2003-03-30 02:30:00'); @@ -27,6 +30,8 @@ insert into t1 (ts) values ('2003-03-30 02:30:00'); # Here we will get different results select * from t1; +--enable_view_protocol + drop table t1; @@ -187,6 +192,9 @@ insert into t1 (tz) values ('MET'), ('UTC'); select tz, convert_tz('2003-12-31 00:00:00',tz,'UTC'), convert_tz('2003-12-31 00:00:00','UTC',tz) from t1 order by tz; drop table t1; +#enable after fix MDEV-27871 +--disable_view_protocol + # Parameters to CONVERT_TZ() what should give NULL select convert_tz('2003-12-31 04:00:00', NULL, 'UTC'); select convert_tz('2003-12-31 04:00:00', 'SomeNotExistingTimeZone', 'UTC'); @@ -194,6 +202,8 @@ select convert_tz('2003-12-31 04:00:00', 'MET', 'SomeNotExistingTimeZone'); select convert_tz('2003-12-31 04:00:00', 'MET', NULL); select convert_tz( NULL, 'MET', 'UTC'); +--enable_view_protocol + # # Test for bug #4508 "CONVERT_TZ() function with new time zone as param # crashes server." (Was caused by improperly worked mechanism of time zone @@ -254,6 +264,7 @@ SET @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creato # BUG#19339: CONVERT_TZ(): overly aggressive in locking time_zone_name # table # +--disable_service_connection --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings @@ -272,6 +283,7 @@ UPDATE t1 SET t = CONVERT_TZ(t, 'UTC', 'Europe/Moscow'); UNLOCK TABLES; DROP TABLE t1; +--enable_service_connection --echo # --echo # Bug #55424: convert_tz crashes when fed invalid data @@ -302,8 +314,13 @@ SET timestamp=DEFAULT; --echo # --echo # MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c on server shutdown after SELECT with CONVERT_TZ --echo # + +#enable after fix MDEV-27871 +--disable_view_protocol + SELECT CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' ); +--enable_view_protocol --echo # --echo # End of 5.3 tests diff --git a/mysql-test/main/tmp_table_count-7586.test b/mysql-test/main/tmp_table_count-7586.test index 8bfb0e7c5cf48..0629e27f1642b 100644 --- a/mysql-test/main/tmp_table_count-7586.test +++ b/mysql-test/main/tmp_table_count-7586.test @@ -3,6 +3,10 @@ --source include/have_perfschema.inc --source include/not_embedded.inc +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + create table t2 (a int); insert into t2 values (1),(2),(3); create view v2 as select a from t2; diff --git a/mysql-test/main/trigger.test b/mysql-test/main/trigger.test index 56e9246b95cbc..9379894ced680 100644 --- a/mysql-test/main/trigger.test +++ b/mysql-test/main/trigger.test @@ -1080,6 +1080,7 @@ drop trigger t1_ai; drop table t4; # Rename between different databases if triggers exist should fail create database mysqltest; +--disable_service_connection use mysqltest; create table t1 (id int); create trigger t1_bi before insert on t1 for each row set @a:=new.id; @@ -1095,6 +1096,7 @@ select @a; select trigger_schema, trigger_name, event_object_schema, event_object_table, action_statement from information_schema.triggers where event_object_schema = 'test' or event_object_schema = 'mysqltest'; +--enable_service_connection # There should be no fantom .TRN files --error ER_TRG_DOES_NOT_EXIST drop trigger test.t1_bi; diff --git a/mysql-test/main/truncate.test b/mysql-test/main/truncate.test index 9e28deacf63cc..592c234a367fd 100644 --- a/mysql-test/main/truncate.test +++ b/mysql-test/main/truncate.test @@ -69,6 +69,9 @@ drop table t1; --echo # --echo # Bug#20667 - Truncate table fails for a write locked table --echo # + +--disable_service_connection + CREATE TABLE t1 (c1 INT); LOCK TABLE t1 WRITE; INSERT INTO t1 VALUES (1); @@ -137,6 +140,8 @@ TRUNCATE p1; SHOW CREATE PROCEDURE p1; DROP PROCEDURE p1; +--enable_service_connection + --echo # --echo # Bug#46452 Crash in MDL, HANDLER OPEN + TRUNCATE TABLE --echo # diff --git a/mysql-test/main/truncate_notembedded.test b/mysql-test/main/truncate_notembedded.test index 8b6d2becfa9da..bf5606aa51b4c 100644 --- a/mysql-test/main/truncate_notembedded.test +++ b/mysql-test/main/truncate_notembedded.test @@ -5,6 +5,7 @@ --echo # is_bulk_op())' failed upon killed TRUNCATE --echo # +--disable_service_connection CREATE TABLE t1 (a INT) ENGINE=MyISAM; LOCK TABLE t1 READ; @@ -29,6 +30,7 @@ TRUNCATE TABLE t1; --disconnect con1 --connection default DROP TABLE t1; +--enable_service_connection --echo # --echo # End of 10.2 tests diff --git a/mysql-test/main/type_bit.test b/mysql-test/main/type_bit.test index 216995fc479bd..86d957c6ca816 100644 --- a/mysql-test/main/type_bit.test +++ b/mysql-test/main/type_bit.test @@ -234,7 +234,9 @@ drop table t1, t2; create table t1 (a bit(7)); insert into t1 values (0x60); --enable_metadata +--disable_view_protocol select * from t1; +--enable_view_protocol --disable_metadata drop table t1; @@ -297,10 +299,12 @@ DROP TABLE t1; CREATE TABLE t1 (b BIT); INSERT INTO t1 (b) VALUES (1), (0); --enable_metadata +--disable_view_protocol --replace_column 1 # SELECT DISTINCT b FROM t1; --replace_column 1 # SELECT b FROM t1 GROUP BY b; +--enable_view_protocol --disable_metadata DROP TABLE t1; @@ -455,7 +459,9 @@ SELECT * FROM t2; SHOW CREATE TABLE t2; DROP TABLE t2; --enable_metadata +--disable_view_protocol SELECT COALESCE(val, 1) FROM t1; +--enable_view_protocol --disable_metadata DROP TABLE t1; diff --git a/mysql-test/main/type_bit_innodb.test b/mysql-test/main/type_bit_innodb.test index 4c6f9bc1b49bc..bf514ad74533c 100644 --- a/mysql-test/main/type_bit_innodb.test +++ b/mysql-test/main/type_bit_innodb.test @@ -143,7 +143,9 @@ drop table t1; create table t1 (a bit(7)) engine=innodb; insert into t1 values (0x60); --enable_metadata +--disable_view_protocol select * from t1; +--enable_view_protocol --disable_metadata drop table t1; diff --git a/mysql-test/main/type_date.test b/mysql-test/main/type_date.test index 44cb37f68f211..8a2796bb2f082 100644 --- a/mysql-test/main/type_date.test +++ b/mysql-test/main/type_date.test @@ -78,6 +78,8 @@ drop table t1; # Test problem with DATE_FORMAT # +#enable after fix MDEV-27871 +--disable_view_protocol CREATE TABLE t1(AFIELD INT); INSERT INTO t1 VALUES(1); CREATE TABLE t2(GMT VARCHAR(32)); @@ -89,6 +91,7 @@ SELECT DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ', t2.GM DATE_FORMAT("2002-03-06 10:11:12", CONCAT('%a, %d %M %Y %H:%i:%s ', t2.GMT)) FROM t1,t2 GROUP BY t1.AFIELD; drop table t1,t2; +--enable_view_protocol # # Multiple SELECT DATE_FORMAT gave incorrect results (Bug #4036) @@ -288,7 +291,10 @@ drop table t1; --echo # --echo # MDEV-4634 Crash in CONVERT_TZ --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2022-00-00')),'+00:00','+7:5'); +--enable_view_protocol --echo # --echo # MDEV-4804 Date comparing false result diff --git a/mysql-test/main/type_datetime.test b/mysql-test/main/type_datetime.test index 240a96a6208d2..0428a22238e3d 100644 --- a/mysql-test/main/type_datetime.test +++ b/mysql-test/main/type_datetime.test @@ -139,10 +139,12 @@ DROP TABLE t1; # Bug 19491 (CAST DATE AS DECIMAL returns incorrect result # SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6)); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6)); SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6)); SELECT CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6)); - +--disable_view_protocol # # Test of storing datetime into date fields @@ -250,7 +252,10 @@ select least(cast('01-01-01' as date), '01-01-02') + 0; select greatest(cast('01-01-01' as date), '01-01-02') + 0; select least(cast('01-01-01' as datetime), '01-01-02') + 0; select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed); +#enable after fix MDEV-27871 +--disable_view_protocol select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2)); +--enable_view_protocol --disable_warnings DROP PROCEDURE IF EXISTS test27759 ; --enable_warnings @@ -359,6 +364,7 @@ drop table t1; # # Bug #32694: NOT NULL table field in a subquery produces invalid results # +--disable_view_protocol create table t1 (id int(10) not null, cur_date datetime not null); create table t2 (id int(10) not null, cur_date date not null); insert into t1 (id, cur_date) values (1, '2007-04-25 18:30:22'); @@ -398,6 +404,7 @@ SET optimizer_switch=@save_optimizer_switch; drop table t1,t2; +--enable_view_protocol # # Bug #37526: asymertic operator <=> in trigger @@ -438,6 +445,9 @@ create table t1 (da date default '1962-03-32 23:33:34', dt datetime default '196 create table t1 (t time default '916:00:00 a'); set @@sql_mode= @org_mode; +#enable after fix MDEV-27871 +--disable_view_protocol + # # Bug #42146 - DATETIME fractional seconds parse error # @@ -449,11 +459,13 @@ SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS # once more with feeling (but no warnings) SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7)); + # # Bug #38435 - LONG Microseconds cause MySQL to fail a CAST to DATETIME or DATE # # show we truncate microseconds from the right SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7)); +--enable_view_protocol --echo # --echo # Bug#59173: Failure to handle DATE(TIME) values where Year, Month or @@ -496,8 +508,10 @@ drop table t1,t2; --echo # --echo # MDEV-4634 Crash in CONVERT_TZ --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+7:5'); - +--enable_view_protocol --echo # --echo # MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value @@ -658,7 +672,10 @@ SELECT CAST(TIME'00:00:00.000001' AS DATETIME(6)); SELECT CAST(CAST('10:20:30' AS TIME) AS DATETIME); SELECT CAST(CAST('00:00:00.000001' AS TIME(6)) AS DATETIME(6)); SELECT CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT CAST(CAST(TIMESTAMP'0000-00-00 00:00:00.000001' AS TIME(6)) AS DATETIME(6)); +--enable_view_protocol SET old_mode=DEFAULT; SET sql_mode=DEFAULT; @@ -683,9 +700,11 @@ SET timestamp=UNIX_TIMESTAMP('2015-01-01 00:00:00'); CREATE TABLE t1 (a TIME); INSERT INTO t1 VALUES ('00:00:00'),('00:01:00'); --disable_ps_protocol +--disable_view_protocol --enable_metadata SELECT MAX(CAST(a AS DATETIME)) FROM t1; --disable_metadata +--enable_view_protocol --enable_ps_protocol CREATE TABLE t2 AS SELECT MAX(CAST(a AS DATETIME)) FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/main/type_enum.test b/mysql-test/main/type_enum.test index 5c4619221667c..5f13b8c26cd6c 100644 --- a/mysql-test/main/type_enum.test +++ b/mysql-test/main/type_enum.test @@ -110,7 +110,9 @@ insert into t1 values ('Y'); alter table t1 add b set ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin; alter table t1 add c enum ('Y','N') CHARACTER SET utf8 COLLATE utf8_bin; --enable_metadata +--disable_view_protocol select * from t1; +--enable_view_protocol --disable_metadata drop table t1; @@ -234,7 +236,9 @@ CREATE TABLE t1 ( ) ENGINE=MyISAM; INSERT INTO t1 VALUES (1),(2); --enable_metadata +--disable_view_protocol SELECT AVG(f1) FROM t1; +--enable_view_protocol --disable_metadata drop table t1; diff --git a/mysql-test/main/type_float.test b/mysql-test/main/type_float.test index 1ac169002a698..5d7f7de7d0b1f 100644 --- a/mysql-test/main/type_float.test +++ b/mysql-test/main/type_float.test @@ -633,9 +633,12 @@ DROP TABLE t1, t2; --echo # MDEV-16872 Add CAST(expr AS FLOAT) --echo # +#'float' in the note is written with in lowercase in --view-protocol +--disable_view_protocol SELECT CAST(0.671437 AS FLOAT), CONCAT(CAST(0.671437 AS FLOAT)); SELECT CAST(1e40 AS FLOAT), CONCAT(CAST(1e40 AS FLOAT)); SELECT CAST(-1e40 AS FLOAT), CONCAT(CAST(-1e40 AS FLOAT)); +--enable_view_protocol SET sql_mode='STRICT_ALL_TABLES,STRICT_TRANS_TABLES'; CREATE TABLE t1 (a FLOAT); diff --git a/mysql-test/main/type_newdecimal.test b/mysql-test/main/type_newdecimal.test index a5cb15e1a2ce1..3d5ab14cb1526 100644 --- a/mysql-test/main/type_newdecimal.test +++ b/mysql-test/main/type_newdecimal.test @@ -587,8 +587,11 @@ select floor(9.999999999999999999999); select floor(-9.999999999999999999999); #-- should return -10 # +#enable_view_protocol in 10.4 +--disable_view_protocol select floor(-999999999999999999999.999); select ceiling(999999999999999999999.999); +--enable_view_protocol # # select 99999999999999999999999999999999999999 mod 3; @@ -606,9 +609,12 @@ select round(99999999999999999.999,3); select round(-99999999999999999.999,3); #-- should return -100000000000000000.000 # +#enable after fix MDEV-28660 +--disable_view_protocol select truncate(99999999999999999999999999999999999999,49); #-- should return 99999999999999999999999999999999999999.000 # +--enable_view_protocol select truncate(99.999999999999999999999999999999999999,49); #-- should return 99.9999999999999999999999999999999 # @@ -860,7 +866,10 @@ select 0/0; # --disable_ps_protocol select 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 as x; +#enableview protocol after fix MDEV-28659 +--disable_view_protocol select 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 as x; +--enable_view_protocol --enable_ps_protocol # # Bug #10004 @@ -943,7 +952,10 @@ drop table t1; # # Bug #10891 (converting to decimal crashes server) # +#enable after fix MDEV-27871 +--disable_view_protocol select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15)); +--enable_view_protocol # # Bug #11708 (conversion to decimal fails in decimal part) @@ -1231,12 +1243,16 @@ DROP TABLE t1; # # Bug #36270: incorrect calculation result - works in 4.1 but not in 5.0 or 5.1 # +#enable after fix MDEV-27871 +--disable_view_protocol # show that if we need to truncate the scale of an operand, we pick the # right one (that is, we discard the least significant decimal places) select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 * 1.01500000 * 1.01500000 * 0.99500000); +--enable_view_protocol + # # Bug #31616 div_precision_increment description looks wrong # @@ -1255,7 +1271,13 @@ DROP TABLE t1; let $nine_81= 999999999999999999999999999999999999999999999999999999999999999999999999999999999; + +#view protocol generates additional warning +--disable_view_protocol eval SELECT substring(('M') FROM ($nine_81)) AS foo; +--enable_view_protocol +#enable after fix MDEV-28661 +--disable_view_protocol eval SELECT min($nine_81) AS foo; eval SELECT multipolygonfromtext(('4294967294.1'),($nine_81)) AS foo; eval SELECT convert(($nine_81), decimal(30,30)) AS foo; @@ -1267,6 +1289,7 @@ eval SELECT date_sub(($nine_81), day_minute) AS foo; eval SELECT truncate($nine_81, 28) AS foo; +--enable_view_protocol --echo End of 5.0 tests @@ -1899,9 +1922,10 @@ drop table t1; --echo # decimal_bin_size And Assertion `scale >= 0 && precision > 0 && scale <= precision' --echo # failed in decimal_bin_size_inline/decimal_bin_size. --echo # - +#enable after fix MDEV-27871 +--disable_view_protocol SELECT AVG(DISTINCT 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001); - +--enable_view_protocol CREATE TABLE t1 AS SELECT NULL AS v1; SELECT 1 FROM t1 GROUP BY v1 ORDER BY AVG ( from_unixtime ( '' ) ) ; DROP TABLE t1; diff --git a/mysql-test/main/type_num.test b/mysql-test/main/type_num.test index cc715d6cda2d4..251734e4d1bea 100644 --- a/mysql-test/main/type_num.test +++ b/mysql-test/main/type_num.test @@ -687,6 +687,7 @@ SELECT --echo # --disable_ps_protocol +--disable_view_protocol --enable_metadata SELECT NULL+1 AS c0, COALESCE(NULL)+1 AS c2, @@ -696,6 +697,7 @@ SELECT NULL+1 AS c0, COALESCE(COALESCE(''))+1 AS c6; --disable_metadata --enable_ps_protocol +--enable_view_protocol --echo # --echo # Start of 10.2 tests diff --git a/mysql-test/main/type_time.test b/mysql-test/main/type_time.test index 2655122069bb6..b22cf37a86483 100644 --- a/mysql-test/main/type_time.test +++ b/mysql-test/main/type_time.test @@ -134,9 +134,12 @@ drop table t1; --echo # --echo # MDEV-4634 Crash in CONVERT_TZ --echo # +#enable after fix MDEV-27871 +--disable_view_protocol SET timestamp=unix_timestamp('2001-02-03 10:20:30'); SELECT CONVERT_TZ(GREATEST(TIME('00:00:00'),TIME('00:00:00')),'+00:00','+7:5'); SET timestamp=DEFAULT; +--enable_view_protocol --echo # --echo # MDEV-4652 Wrong result for CONCAT(GREATEST(TIME('00:00:01'),TIME('00:00:00'))) @@ -846,7 +849,10 @@ DROP TABLE t1; --echo # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT TIME'10:20:30' IN (102030,TIME'10:20:31'); +#enable after fix MDEV-27871 +--disable_view_protocol SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32'); +--enable_view_protocol CREATE TABLE t1 (a TIME); INSERT INTO t1 VALUES ('10:20:30'),('10:20:31'),('10:20:32'); SELECT a FROM t1 WHERE a IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') ORDER BY a; diff --git a/mysql-test/main/type_year.test b/mysql-test/main/type_year.test index 34c417d902650..0dced5f5cf7bd 100644 --- a/mysql-test/main/type_year.test +++ b/mysql-test/main/type_year.test @@ -153,12 +153,15 @@ DROP TABLE t1; --echo # Bug #59211: Select Returns Different Value for min(year) Function --echo # +#enable after fix MDEV-28673 +--disable_view_protocol CREATE TABLE t1(c1 YEAR(4)); INSERT INTO t1 VALUES (1901),(2155),(0000); SELECT * FROM t1; SELECT COUNT(*) AS total_rows, MIN(c1) AS min_value, MAX(c1) FROM t1; SELECT COUNT(*) AS total_rows, MIN(c1+0) AS min_value, MAX(c1+0) FROM t1; DROP TABLE t1; +--enable_view_protocol --echo # --echo # WL#6219: Deprecate and remove YEAR(2) type diff --git a/mysql-test/main/udf.test b/mysql-test/main/udf.test index d0c71ffa7e612..482bf99a9800b 100644 --- a/mysql-test/main/udf.test +++ b/mysql-test/main/udf.test @@ -247,6 +247,9 @@ DROP FUNCTION avgcost; # Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove # the UDF # + +#enable view prtotocol after fix MDEV-28677 +--disable_view_protocol select * from mysql.func; --replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB eval CREATE FUNCTION is_const RETURNS STRING SONAME "$UDF_EXAMPLE_SO"; @@ -259,6 +262,7 @@ select * from mysql.func; --error 1305 select is_const(3); +--enable_view_protocol # # Bug#18761: constant expression as UDF parameters not passed in as constant @@ -400,6 +404,8 @@ DROP TABLE const_len_bug; # Bug #30355: Incorrect ordering of UDF results # +#enable view protocol after fix MDEV-28678 +--disable_view_protocol --replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB eval CREATE FUNCTION udf_sequence RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO"; CREATE TABLE t1 (a INT); @@ -415,6 +421,7 @@ SELECT * FROM t2 WHERE a = udf_sequence(); DROP FUNCTION udf_sequence; DROP TABLE t1,t2; +--enable_view_protocol # # Bug#31767 (DROP FUNCTION name resolution) diff --git a/mysql-test/main/udf_debug_sync.test b/mysql-test/main/udf_debug_sync.test index 593500c1e188a..0b5be340054a4 100644 --- a/mysql-test/main/udf_debug_sync.test +++ b/mysql-test/main/udf_debug_sync.test @@ -4,6 +4,7 @@ # # MDEV-5616 - Deadlock between CREATE/DROP FUNCTION and SELECT from view # +--disable_service_connection --replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO"; CREATE VIEW v1 AS SELECT myfunc_int(1); @@ -38,3 +39,4 @@ connection default; SET debug_sync='RESET'; DROP VIEW v1; DROP FUNCTION myfunc_int; +--enable_service_connection diff --git a/mysql-test/main/union.test b/mysql-test/main/union.test index 484393611ae99..e2e485f6e6b69 100644 --- a/mysql-test/main/union.test +++ b/mysql-test/main/union.test @@ -26,6 +26,7 @@ select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 g --error 1250 (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by t1.b; explain extended (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc; +--disable_view_protocol select count(*) from ( (select a,b from t1 limit 2) union all (select a,b from t2 order by a)) q; (select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2; @@ -34,7 +35,7 @@ select count(*) from ( select a,b from t1 union all select a,b from t2) q; select sql_calc_found_rows a,b from t1 union all select a,b from t2 limit 2; select found_rows(); - +--enable_view_protocol # # Test some error conditions with UNION # @@ -209,6 +210,7 @@ insert into t1 values (1),(2),(3); create table t2 (a int); insert into t2 values (3),(4),(5); +--disable_view_protocol # Test global limits SELECT COUNT(*) FROM ( (SELECT * FROM t1) UNION all (SELECT * FROM t2)) q; @@ -234,12 +236,15 @@ SELECT COUNT(*) FROM ( (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2 LIMIT 1; select found_rows(); +--enable_view_protocol # In these case found_rows() should work --error ER_PARSE_ERROR SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2; +--disable_view_protocol SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2; select found_rows(); +--enable_view_protocol # The following examples will not be exact SELECT COUNT(*) FROM ( @@ -247,12 +252,16 @@ SELECT * FROM t1 UNION SELECT * FROM t2) q; SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2; SELECT COUNT(*) FROM ( (SELECT * FROM t1 LIMIT 1) UNION all SELECT * FROM t2) q; +--disable_view_protocol (SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION all SELECT * FROM t2 LIMIT 2; select found_rows(); +--enable_view_protocol SELECT COUNT(*) FROM ( SELECT * FROM t1 UNION all SELECT * FROM t2) q; +--disable_view_protocol SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100; select found_rows(); +--enable_view_protocol --error ER_PARSE_ERROR SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2; SELECT COUNT(*) FROM ( @@ -268,8 +277,10 @@ SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2; SELECT COUNT(*) FROM ( (SELECT * FROM t1 LIMIT 1) UNION SELECT * FROM t2) q; (SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2 LIMIT 2; +--disable_view_protocol SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2,2; select found_rows(); +--enable_view_protocol SELECT COUNT(*) FROM ( SELECT * FROM t1 UNION SELECT * FROM t2) q; --error ER_PARSE_ERROR @@ -501,6 +512,7 @@ insert t1 select a+1, a+b from t1; insert t1 select a+1, a+b from t1; insert t1 select a+1, a+b from t1; FLUSH STATUS; +--disable_view_protocol show status like 'Slow_queries'; select count(*) from t1 where a=7; show status like 'Slow_queries'; @@ -514,6 +526,7 @@ show status like 'Slow_queries'; flush status; select a from t1 where b not in (1,2,3) union select a from t1 where b not in (4,5,6); show status like 'Slow_queries'; +--enable_view_protocol drop table t1; # @@ -1348,8 +1361,10 @@ INSERT INTO t2 VALUES (4), (5), (6); INSERT INTO t3 VALUES (7), (8), (9); TRUNCATE table mysql.slow_log; --sorted_result +--disable_view_protocol SELECT * FROM t17059925 UNION SELECT * FROM t2 UNION SELECT * FROM t3; SELECT sql_text, rows_examined FROM mysql.slow_log WHERE sql_text LIKE '%SELECT%t17059925%'; +--enable_view_protocol DROP TABLE t17059925, t2, t3; ## Reset to initial values @@ -1862,6 +1877,7 @@ drop table t1,t2,t3; --disable_ps_protocol --enable_metadata +--disable_view_protocol SELECT CAST(1 AS UNSIGNED) UNION ALL SELECT * from (SELECT NULL) t; SELECT CAST(1 AS SIGNED) UNION ALL SELECT * from (SELECT NULL) t; @@ -1870,6 +1886,7 @@ SELECT CAST(1 AS SIGNED) UNION ALL SELECT * from (SELECT CAST(1 AS UNSIGNED)) t; SELECT CAST(1 AS UNSIGNED) UNION ALL SELECT NULL; SELECT CAST(1 AS UNSIGNED) UNION ALL SELECT CAST(1 AS SIGNED); +--enable_view_protocol --disable_metadata --enable_ps_protocol @@ -1898,6 +1915,7 @@ DROP TABLE t1, t2, t3, t4; set @@default_storage_engine=@save_default_storage_engine; + --echo # --echo # End of 10.3 tests --echo # diff --git a/mysql-test/main/update.test b/mysql-test/main/update.test index 84709102f967d..8a6949447eee6 100644 --- a/mysql-test/main/update.test +++ b/mysql-test/main/update.test @@ -233,9 +233,12 @@ drop table t1; create table t1 ( a int, b int default 0, index (a) ); insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0); +# the view protocol creates an additional statistics data +--disable_view_protocol flush status; select a from t1 order by a limit 1; show status like 'handler_read%'; +--enable_view_protocol flush status; update t1 set a=9999 order by a limit 1; diff --git a/mysql-test/main/upgrade.test b/mysql-test/main/upgrade.test index e7a3e4d8abf16..ed75b8649673a 100644 --- a/mysql-test/main/upgrade.test +++ b/mysql-test/main/upgrade.test @@ -1,6 +1,9 @@ call mtr.add_suppression("Invalid .old.. table or database name"); --source include/not_embedded.inc +#remove this include after fix MDEV-27872 +--source include/no_view_protocol.inc + --disable_warnings drop database if exists `mysqltest1`; drop database if exists `mysqltest-1`; diff --git a/mysql-test/main/user_var.test b/mysql-test/main/user_var.test index 54ceb8fd3a5e5..dad50c439b68a 100644 --- a/mysql-test/main/user_var.test +++ b/mysql-test/main/user_var.test @@ -1,6 +1,7 @@ # Initialise source include/have_sequence.inc; + --error 1054 set @a := foo; set @a := connection_id() + 3; @@ -489,6 +490,7 @@ DROP TABLE t1; --echo # Check that used memory extends if we set a variable --echo # +--disable_service_connection # Execute twice so number stablizes a bit let $tmp= `select memory_used from information_schema.processlist`; set @var= repeat('a',20000); @@ -498,6 +500,7 @@ let $tmp2= `select memory_used from information_schema.processlist`; eval select $tmp < $tmp2; --enable_column_names --enable_query_log +--enable_service_connection # # MDEV-13897 SELECT @a := MAX(col) FROM t requires full index scan diff --git a/mysql-test/main/userstat-badlogin-4824.test b/mysql-test/main/userstat-badlogin-4824.test index 78f2150e44639..12cca9f12b3d3 100644 --- a/mysql-test/main/userstat-badlogin-4824.test +++ b/mysql-test/main/userstat-badlogin-4824.test @@ -1,6 +1,10 @@ # # MDEV-4824 userstats - wrong user statistics # +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + --source include/not_embedded.inc set @save_userstat=@@global.userstat; diff --git a/mysql-test/main/varbinary.test b/mysql-test/main/varbinary.test index f03f3fcf70318..b35819b0fb38a 100644 --- a/mysql-test/main/varbinary.test +++ b/mysql-test/main/varbinary.test @@ -142,13 +142,19 @@ select x'41', 0+x'3635'; select N'abc', length(N'abc'); +#enable after fix MDEV-28535 +--disable_view_protocol select N'', length(N''); select '', length(''); +--enable_view_protocol +#enable after fix MDEV-28696 +--disable_view_protocol select b'', 0+b''; select x'', 0+x''; +--enable_view_protocol --error ER_BAD_FIELD_ERROR select 0x; diff --git a/mysql-test/main/win.test b/mysql-test/main/win.test index a4bd0888ea763..9dc8ff6d87ecb 100644 --- a/mysql-test/main/win.test +++ b/mysql-test/main/win.test @@ -1,6 +1,9 @@ # # Window Functions Tests # +#remove this include after fix MDEV-27871, MDEV-27938 +--source include/no_view_protocol.inc + --source include/have_sequence.inc --disable_warnings diff --git a/mysql-test/main/win_avg.test b/mysql-test/main/win_avg.test index 23a3652d943df..86edcce5679d7 100644 --- a/mysql-test/main/win_avg.test +++ b/mysql-test/main/win_avg.test @@ -35,7 +35,8 @@ insert into t1 values (126 , 6, 1, NULL), (127 , 6, 1, NULL); - +#enable after fix MDEV-27871 +--disable_view_protocol --sorted_result select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) from t1; @@ -43,5 +44,5 @@ from t1; --sorted_result select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) from t1; - +--enable_view_protocol drop table t1; diff --git a/mysql-test/main/win_big-mdev-10092.test b/mysql-test/main/win_big-mdev-10092.test index 090d43b0b7b1d..c4bda66018bb8 100644 --- a/mysql-test/main/win_big-mdev-10092.test +++ b/mysql-test/main/win_big-mdev-10092.test @@ -85,6 +85,9 @@ call add_data(); call add_data(); set sort_buffer_size = 1024; +#enable after fix MDEV-27871 +--disable_view_protocol + flush status; select o_custkey, Avg(o_custkey) OVER ( ORDER BY o_custkey ) from orders; select variable_name, @@ -99,5 +102,7 @@ select variable_name, from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol + drop table orders; drop procedure add_data; diff --git a/mysql-test/main/win_big-mdev-11697.test b/mysql-test/main/win_big-mdev-11697.test index 7103b8522bed2..b58118dd5891e 100644 --- a/mysql-test/main/win_big-mdev-11697.test +++ b/mysql-test/main/win_big-mdev-11697.test @@ -39,6 +39,8 @@ commit; analyze table test_table; explain select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; +#enable after fix MDEV-27871 +--disable_view_protocol flush status; select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; @@ -46,5 +48,6 @@ select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol drop table test_table; diff --git a/mysql-test/main/win_big.test b/mysql-test/main/win_big.test index 09c8d640b099f..e53eaa7029168 100644 --- a/mysql-test/main/win_big.test +++ b/mysql-test/main/win_big.test @@ -28,10 +28,13 @@ select sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B from t10; +#enable after fix MDEV-27871 +--disable_view_protocol select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol set sort_buffer_size=1024; flush status; @@ -40,10 +43,13 @@ select sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B from t10; +#enable after fix MDEV-27871 +--disable_view_protocol select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol let $diff_tables= t21, t22; source include/diff_tables.inc; @@ -60,10 +66,13 @@ select sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3 from t10; +#enable after fix MDEV-27871 +--disable_view_protocol select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol set sort_buffer_size=1024; flush status; @@ -74,10 +83,13 @@ select sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3 from t10; +#enable after fix MDEV-27871 +--disable_view_protocol select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol let $diff_tables= t21, t22; source include/diff_tables.inc; @@ -94,11 +106,13 @@ select sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1 from t10; - +#enable after fix MDEV-27871 +--disable_view_protocol select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol set sort_buffer_size=1024; flush status; @@ -108,10 +122,13 @@ select sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1 from t10; +#enable after fix MDEV-27871 +--disable_view_protocol select variable_name, case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end from information_schema.session_status where variable_name like 'Sort_merge_passes'; +--enable_view_protocol let $diff_tables= t21, t22; source include/diff_tables.inc; diff --git a/mysql-test/main/win_first_last_value.test b/mysql-test/main/win_first_last_value.test index 0a90a98a5d47f..d027eb84702ea 100644 --- a/mysql-test/main/win_first_last_value.test +++ b/mysql-test/main/win_first_last_value.test @@ -27,6 +27,8 @@ select pk, first_value(pk) over (order by pk), from t1 order by pk desc; +#enable after fix MDEV-28535 +--disable_view_protocol select pk, first_value(pk) over (order by pk RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING), @@ -38,6 +40,7 @@ select pk, RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) from t1 order by pk; +--enable_view_protocol select pk, first_value(pk) over (order by pk desc), diff --git a/mysql-test/main/win_nth_value.test b/mysql-test/main/win_nth_value.test index b9764d1e9d7cf..2d47677f65c7a 100644 --- a/mysql-test/main/win_nth_value.test +++ b/mysql-test/main/win_nth_value.test @@ -42,11 +42,16 @@ select pk, from t1 order by pk asc; +#enable after fix MDEV-27871 +--disable_view_protocol select pk, a, nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding and 1 following) from t1; +--enable_view_protocol +#enable after fix MDEV-28535 +--disable_view_protocol select pk, a, nth_value(a, 1) over (order by a RANGE BETWEEN 1 preceding and 1 following), @@ -63,5 +68,6 @@ select pk, nth_value(a, 12) over (order by a RANGE BETWEEN 1 preceding and 1 following) from t1 order by pk asc; +--enable_view_protocol drop table t1; diff --git a/mysql-test/main/win_ntile.test b/mysql-test/main/win_ntile.test index c65ba7e1521b2..c508b1627ad5f 100644 --- a/mysql-test/main/win_ntile.test +++ b/mysql-test/main/win_ntile.test @@ -152,6 +152,8 @@ select pk, a, b, from t1; select t1.a from t1 where pk = 13; +#enable after fix MDEV-27871 +--disable_view_protocol select pk, a, b, ntile((select a from t1 where pk=13)) over (partition by b order by pk) from t1; @@ -160,6 +162,7 @@ explain select pk, a, b, ntile((select a from t1 where pk=13)) over (partition by b order by pk) from t1; +--enable_view_protocol select a from t1; --error ER_SUBQUERY_NO_1_ROW diff --git a/mysql-test/main/win_orderby.test b/mysql-test/main/win_orderby.test index 0d42c60648619..7f02a582ea000 100644 --- a/mysql-test/main/win_orderby.test +++ b/mysql-test/main/win_orderby.test @@ -21,6 +21,8 @@ select 1 from t0 A, t0 B, t0 C; +#enable after fix MDEV-27871 +--disable_view_protocol select pk, count(a) over (order by pk rows between 2 preceding and 2 following) @@ -28,5 +30,6 @@ from t1 where pk between 1 and 30 order by pk desc limit 4; +--disable_view_protocol drop table t0,t1; diff --git a/mysql-test/main/win_percentile.test b/mysql-test/main/win_percentile.test index 8705be123fffb..a2a4f46d54208 100644 --- a/mysql-test/main/win_percentile.test +++ b/mysql-test/main/win_percentile.test @@ -50,11 +50,13 @@ select name, percentile_cont(null) within group(order by score) over (partition --error ER_WRONG_TYPE_OF_ARGUMENT select name, percentile_disc(null) within group(order by score) over (partition by name) from t1; +--disable_view_protocol --echo #subqueries having percentile functions --sorted_result select * from ( select name , percentile_cont(0.5) within group ( order by score) over (partition by name ) from t1 ) as t; --sorted_result select * from ( select name , percentile_disc(0.5) within group ( order by score) over (partition by name ) from t1 ) as t; +--enable_view_protocol --sorted_result select name from t1 a where (select percentile_disc(0.5) within group (order by score) over (partition by name) from t1 b limit 1) >= 0.5; diff --git a/mysql-test/main/win_std.test b/mysql-test/main/win_std.test index c1964ecac988f..e7986e2cf8415 100644 --- a/mysql-test/main/win_std.test +++ b/mysql-test/main/win_std.test @@ -25,6 +25,9 @@ select std(c) over (order by a) from t2; --enable_warnings +#enable after fix MDEV-27871 +--disable_view_protocol + --echo # Empty frame. select std(b) over (order by a rows between 2 following and 1 following) from t2; @@ -135,6 +138,7 @@ from t2; --sorted_result select pk, a, b, std(b) over (order by a range between 0 following and 1 following) from t2; +--enable_view_protocol drop table t1; drop table t2; diff --git a/mysql-test/main/win_sum.test b/mysql-test/main/win_sum.test index aa4965bfd5ad3..d495dc4576416 100644 --- a/mysql-test/main/win_sum.test +++ b/mysql-test/main/win_sum.test @@ -35,6 +35,8 @@ insert into t1 values (126 , 6, 1, NULL), (127 , 6, 1, NULL); +#enable after fix MDEV-27871 +--disable_view_protocol --sorted_result select pk, a, b, sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) @@ -43,5 +45,6 @@ from t1; --sorted_result select pk, a, c, sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) from t1; +--enable_view_protocol drop table t1; diff --git a/mysql-test/main/xml.test b/mysql-test/main/xml.test index b567f03a431cf..7f20ab31e5348 100644 --- a/mysql-test/main/xml.test +++ b/mysql-test/main/xml.test @@ -166,11 +166,14 @@ select extractValue('','/a/@b[2=position()]'); select extractValue('','/a/@b[3=position()]'); select extractValue('','/a/@b[2>=position()]'); select extractValue('','/a/@b[2<=position()]'); +#enable after fix MDEV-27871 +--disable_view_protocol select extractValue('','/a/@b[position()=3 or position()=2]'); SELECT extractValue('aa1c1a2','/a/b[count(c)=0]'); SELECT extractValue('aa1c1a2','/a/b[count(c)=1]'); select extractValue('a1b1b24','/a/b[sum(@ba)=3]'); +--enable_view_protocol select extractValue('b1b2','/a/b[1]'); select extractValue('b1b2','/a/b[boolean(1)]'); @@ -213,8 +216,11 @@ select extractValue(@xml,'/a/@b[contains(.,"1")][contains(.,"2")]'); select extractValue(@xml,'/a/@b[contains(.,"1")][contains(.,"2")][2]'); SET @xml='a1b1c1b2a2'; +#enable after fix MDEV-27871 +--disable_view_protocol select UpdateXML('a1b1c1b2a2','/a/b/c','+++++++++'); select UpdateXML('a1b1c1b2a2','/a/b/c','+++++++++'); +--enable_view_protocol select UpdateXML('a1b1c1b2a2','/a/b/c',''); SET @xml='bb'; @@ -271,7 +277,10 @@ select extractvalue('bb!','//b!'); # select extractvalue('ABC','/a/descendant::*'); select extractvalue('ABC','/a/self::*'); +#enable after fix MDEV-27871 +--disable_view_protocol select extractvalue('ABC','/a/descendant-or-self::*'); +--enable_view_protocol # Bug #16320 XML: extractvalue() won't accept names containing underscores # select extractvalue('A','/A_B'); @@ -280,24 +289,36 @@ select extractvalue('A','/A_B'); # Bug#16318: XML: extractvalue() incorrectly returns last() = 1 # select extractvalue('AB1B2','/a/b[position()]'); +#enable after fix MDEV-27871 +--disable_view_protocol select extractvalue('AB1B2','/a/b[count(.)=last()]'); +--enable_view_protocol select extractvalue('AB1B2','/a/b[last()]'); select extractvalue('AB1B2','/a/b[last()-1]'); select extractvalue('AB1B2','/a/b[last()=1]'); select extractvalue('AB1B2','/a/b[last()=2]'); +#enable after fix MDEV-27871 +--disable_view_protocol select extractvalue('AB1B2','/a/b[last()=position()]'); +--enable_view_protocol select extractvalue('AB1B2','/a/b[count(.)]'); select extractvalue('AB1B2','/a/b[count(.)-1]'); select extractvalue('AB1B2','/a/b[count(.)=1]'); select extractvalue('AB1B2','/a/b[count(.)=2]'); +#enable after fix MDEV-27871 +--disable_view_protocol select extractvalue('AB1B2','/a/b[count(.)=position()]'); +--enable_view_protocol # # Bug#16316: XML: extractvalue() is case-sensitive with contains() # select extractvalue('Jack','/a[contains(../a,"J")]'); select extractvalue('Jack','/a[contains(../a,"j")]'); +#enable after fix MDEV-27871 +--disable_view_protocol select extractvalue('Jack','/a[contains(../a,"j")]' collate latin1_bin); select extractvalue('Jack' collate latin1_bin,'/a[contains(../a,"j")]'); +--enable_view_protocol # # Bug#18285: ExtractValue not returning character @@ -309,12 +330,16 @@ select ExtractValue('','/tag1'); # Bug#18201: XML: ExtractValue works even if the xml fragment # is not well-formed xml # + +#view protocol generates additional warning +--disable_view_protocol select extractValue('a','/a'); select extractValue('a<','/a'); select extractValue('aaa','/a'); select extractValue('a','/a'); +--enable_view_protocol # # Bug #18171 XML: ExtractValue: the XPath position() @@ -358,22 +383,33 @@ DROP PROCEDURE p2; # Bug#18170: XML: ExtractValue(): # XPath expression can't use QNames (colon in names) # +#enable after fix MDEV-27871 +--disable_view_protocol select extractValue('','count(ns:element)'); select extractValue('a','/ns:element'); select extractValue('a','/ns:element/@xmlns:ns'); - +--enable_view_protocol # # Bug#20795 extractvalue() won't accept names containing a dot (.) # +#enable after fix MDEV-27871 +--disable_view_protocol select extractValue('DataOtherdata','/foo/foo.bar'); select extractValue('DataOtherdata','/foo/something'); +--enable_view_protocol # # Bug#20854 XML functions: wrong result in ExtractValue # +#enable after fix MDEV-27871 +--disable_view_protocol --error 1105 select extractValue('<01>10:39:15<02>140','/zot/tim0/02'); select extractValue('<01>10:39:15<02>140','//*'); +--enable_view_protocol + +#view protocol generates additional warning +--disable_view_protocol # dot and dash are bad identtifier start character select extractValue('<.>test','//*'); select extractValue('<->test','//*'); @@ -383,6 +419,7 @@ select extractValue('<:>test','//*'); select extractValue('<_>test','//*'); # dot, dash, underscore and semicolon are good identifier middle characters select extractValue('test','//*'); +--enable_view_protocol # # Bug#22823 gt and lt operators appear to be @@ -421,9 +458,13 @@ select ExtractValue(@xml, "/entry[(50<=pt)]/id"); # Test nodetypes in node name context # select ExtractValue('test','/a/b/Text'); +#enable after fix MDEV-27871 +--disable_view_protocol select ExtractValue('test','/a/b/comment'); select ExtractValue('test','/a/b/node'); select ExtractValue('test','/a/b/processing-instruction'); +--enable_view_protocol + # # Test keywords in node name contexts # @@ -439,6 +480,8 @@ select ExtractValue('test', '/a/div:div'); # Test axis names in node name context # select ExtractValue('test', '/a/ancestor'); +#enable after fix MDEV-27871 +--disable_view_protocol select ExtractValue('test', '/a/ancestor-or-self'); select ExtractValue('test', '/a/attribute'); select ExtractValue('test', '/a/child'); @@ -450,6 +493,7 @@ select ExtractValue('test', '/a/namespace'); select ExtractValue('test', '/a/parent'); select ExtractValue('test', '/a/preceding'); select ExtractValue('test', '/a/preceding-sibling'); +--enable_view_protocol select ExtractValue('test', '/a/self'); # @@ -572,8 +616,12 @@ SELECT ExtractValue(@xml, 'html/body'); # These two documents will fail. # Quoted strings are not allowed in regular tags # +#view protocol generates additional warning +--disable_view_protocol + SELECT ExtractValue('CharData', '/xml'); SELECT ExtractValue('CharData', '/xml'); +--enable_view_protocol # # Bug#42495 updatexml: Assertion failed: xpath->context, file .\item_xmlfunc.cc, line 2507 @@ -603,7 +651,8 @@ INSERT INTO t1 (id, xml) VALUES (15, ''), (14, ''); - +#enable after fix MDEV-28535 +--disable_view_protocol SELECT extractvalue( xml, '/bla/@name' ), extractvalue( xml, '/bla/@name' ) @@ -614,6 +663,7 @@ SELECT UpdateXML(xml, '/bla/@name', 'test'), UpdateXML(xml, '/bla/@name', 'test') FROM t1 ORDER BY t1.id; +--enable_view_protocol DROP TABLE t1; @@ -643,14 +693,20 @@ SELECT EXTRACTVALUE('', LPAD(0.1111E-15, '2011', 1)); --echo # --echo # Bug #44332 my_xml_scan reads behind the end of buffer --echo # + +#view protocol generates additional warning +--disable_view_protocol SELECT UPDATEXML(CONVERT(_latin1'<' USING utf8),'1','1'); SELECT UPDATEXML(CONVERT(_latin1'