summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorLena Startseva <lena.startseva@mariadb.com>2022-06-09 10:32:51 +0700
committerLena Startseva <lena.startseva@mariadb.com>2022-09-23 17:36:20 +0700
commit72ba96a48eb3e99a967e0489cc79f378e865e3fd (patch)
treed68b640bd3b6f71c4c7e13967776a13aa29965a2 /mysql-test
parent1dd6255ffef901dddcff2191ddf975a2019799d9 (diff)
downloadmariadb-git-72ba96a48eb3e99a967e0489cc79f378e865e3fd.tar.gz
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.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/concurrent.inc20
-rw-r--r--mysql-test/include/count_sessions.inc4
-rw-r--r--mysql-test/include/ctype_E05C.inc4
-rw-r--r--mysql-test/include/ctype_common.inc2
-rw-r--r--mysql-test/include/ctype_datetime.inc3
-rw-r--r--mysql-test/include/ctype_german.inc4
-rw-r--r--mysql-test/include/ctype_like_range_f1f2.inc3
-rw-r--r--mysql-test/include/ctype_myanmar.inc4
-rw-r--r--mysql-test/include/ctype_numconv.inc5
-rw-r--r--mysql-test/include/ctype_pad.inc5
-rw-r--r--mysql-test/include/ctype_str_to_date.inc3
-rw-r--r--mysql-test/include/ctype_unescape.inc3
-rw-r--r--mysql-test/include/ctype_utf8mb4.inc6
-rw-r--r--mysql-test/include/deadlock.inc10
-rw-r--r--mysql-test/include/empty_string_literal.inc18
-rw-r--r--mysql-test/include/explain_utils.inc3
-rw-r--r--mysql-test/include/func_hybrid_type.inc3
-rw-r--r--mysql-test/include/gis_debug.inc8
-rw-r--r--mysql-test/include/have_csv.inc2
-rw-r--r--mysql-test/include/have_log_bin.inc1
-rw-r--r--mysql-test/include/index_merge1.inc8
-rw-r--r--mysql-test/include/mix2.inc4
-rw-r--r--mysql-test/include/mysqlhotcopy.inc4
-rw-r--r--mysql-test/include/no_view_protocol.inc6
-rw-r--r--mysql-test/include/ps_conv.inc2
-rw-r--r--mysql-test/include/query_cache.inc3
-rw-r--r--mysql-test/include/query_cache_partitions.inc4
-rw-r--r--mysql-test/include/unsafe_binlog.inc11
-rw-r--r--mysql-test/include/update_use_source.inc3
-rw-r--r--mysql-test/include/weight_string.inc4
-rw-r--r--mysql-test/include/weight_string_8140.inc4
-rw-r--r--mysql-test/include/weight_string_8EA1.inc4
-rw-r--r--mysql-test/include/weight_string_8FA2C3.inc4
-rw-r--r--mysql-test/include/weight_string_A1A1.inc4
-rw-r--r--mysql-test/include/weight_string_chde.inc3
-rw-r--r--mysql-test/include/weight_string_euro.inc3
-rw-r--r--mysql-test/include/weight_string_l1.inc3
-rw-r--r--mysql-test/include/weight_string_l2.inc3
-rw-r--r--mysql-test/main/alias.test3
-rw-r--r--mysql-test/main/alter_table.test4
-rw-r--r--mysql-test/main/ansi.test3
-rw-r--r--mysql-test/main/auto_increment_ranges_innodb.test4
-rw-r--r--mysql-test/main/bigint.test2
-rw-r--r--mysql-test/main/bool.test2
-rw-r--r--mysql-test/main/cache_innodb.test3
-rw-r--r--mysql-test/main/case.test3
-rw-r--r--mysql-test/main/cast.test4
-rw-r--r--mysql-test/main/change_user.test2
-rw-r--r--mysql-test/main/client_xml.test1
-rw-r--r--mysql-test/main/commit.test1
-rw-r--r--mysql-test/main/concurrent_innodb_safelog.test5
-rw-r--r--mysql-test/main/concurrent_innodb_unsafelog.test4
-rw-r--r--mysql-test/main/create.test34
-rw-r--r--mysql-test/main/create_drop_event.test1
-rw-r--r--mysql-test/main/create_drop_role.test1
-rw-r--r--mysql-test/main/create_or_replace.test8
-rw-r--r--mysql-test/main/cte_nonrecursive.test6
-rw-r--r--mysql-test/main/ctype_big5.test7
-rw-r--r--mysql-test/main/ctype_binary.test3
-rw-r--r--mysql-test/main/ctype_collate.test3
-rw-r--r--mysql-test/main/ctype_cp932.test3
-rw-r--r--mysql-test/main/ctype_eucjpms.test4
-rw-r--r--mysql-test/main/ctype_filename.test3
-rw-r--r--mysql-test/main/ctype_gb2312.test4
-rw-r--r--mysql-test/main/ctype_gbk.test4
-rw-r--r--mysql-test/main/ctype_latin1_de.test4
-rw-r--r--mysql-test/main/ctype_latin2.test4
-rw-r--r--mysql-test/main/ctype_latin2_ch.test9
-rw-r--r--mysql-test/main/ctype_ldml.test3
-rw-r--r--mysql-test/main/ctype_recoding.test12
-rw-r--r--mysql-test/main/ctype_sjis.test20
-rw-r--r--mysql-test/main/ctype_swe7.test7
-rw-r--r--mysql-test/main/ctype_tis620.test6
-rw-r--r--mysql-test/main/ctype_uca.test14
-rw-r--r--mysql-test/main/ctype_uca_innodb.test4
-rw-r--r--mysql-test/main/ctype_ujis.test18
-rw-r--r--mysql-test/main/ctype_upgrade.test12
-rw-r--r--mysql-test/main/ctype_utf16.test9
-rw-r--r--mysql-test/main/ctype_utf16_uca.test3
-rw-r--r--mysql-test/main/ctype_utf16le.test5
-rw-r--r--mysql-test/main/ctype_utf32.test18
-rw-r--r--mysql-test/main/ctype_utf32_uca.test2
-rw-r--r--mysql-test/main/ctype_utf8.test3
-rw-r--r--mysql-test/main/ctype_utf8mb4.test3
-rw-r--r--mysql-test/main/ctype_utf8mb4_innodb.test3
-rw-r--r--mysql-test/main/custom_aggregate_functions.test3
-rw-r--r--mysql-test/main/custom_aggregates_i_s.test3
-rw-r--r--mysql-test/main/date_formats.test3
-rw-r--r--mysql-test/main/ddl_i18n_koi8r.test2
-rw-r--r--mysql-test/main/ddl_i18n_utf8.test2
-rw-r--r--mysql-test/main/delayed.test8
-rw-r--r--mysql-test/main/derived_view.test2
-rw-r--r--mysql-test/main/drop.test4
-rw-r--r--mysql-test/main/dyncol.test2
-rw-r--r--mysql-test/main/events_2.test3
-rw-r--r--mysql-test/main/events_bugs.test4
-rw-r--r--mysql-test/main/events_grant.test3
-rw-r--r--mysql-test/main/events_logs_tests.test1
-rw-r--r--mysql-test/main/events_trans.test1
-rw-r--r--mysql-test/main/fast_prefix_index_fetch_innodb.test2
-rw-r--r--mysql-test/main/fix_priv_tables.test1
-rw-r--r--mysql-test/main/flush-innodb.test4
-rw-r--r--mysql-test/main/flush.test4
-rw-r--r--mysql-test/main/flush_logs_not_windows.test4
-rw-r--r--mysql-test/main/flush_table.test4
-rw-r--r--mysql-test/main/fulltext.test9
-rw-r--r--mysql-test/main/fulltext2.test3
-rw-r--r--mysql-test/main/fulltext_left_join.test3
-rw-r--r--mysql-test/main/func_compress.test7
-rw-r--r--mysql-test/main/func_concat.test6
-rw-r--r--mysql-test/main/func_debug.test28
-rw-r--r--mysql-test/main/func_default.test5
-rw-r--r--mysql-test/main/func_digest.test6
-rw-r--r--mysql-test/main/func_encrypt_ucs2.test3
-rw-r--r--mysql-test/main/func_gconcat.test8
-rw-r--r--mysql-test/main/func_group.test10
-rw-r--r--mysql-test/main/func_group_innodb.test3
-rw-r--r--mysql-test/main/func_hybrid_type.test39
-rw-r--r--mysql-test/main/func_if.test4
-rw-r--r--mysql-test/main/func_in.test16
-rw-r--r--mysql-test/main/func_json.test19
-rw-r--r--mysql-test/main/func_like.test4
-rw-r--r--mysql-test/main/func_math.test18
-rw-r--r--mysql-test/main/func_misc.test17
-rw-r--r--mysql-test/main/func_regexp_pcre.test21
-rw-r--r--mysql-test/main/func_rollback.test1
-rw-r--r--mysql-test/main/func_sapdb.test12
-rw-r--r--mysql-test/main/func_set.test6
-rw-r--r--mysql-test/main/func_str.test101
-rw-r--r--mysql-test/main/func_system.test3
-rw-r--r--mysql-test/main/func_test.test8
-rw-r--r--mysql-test/main/func_time.test60
-rw-r--r--mysql-test/main/func_time_hires.test6
-rw-r--r--mysql-test/main/get_diagnostics.test3
-rw-r--r--mysql-test/main/gis-json.test13
-rw-r--r--mysql-test/main/gis-precise.test29
-rw-r--r--mysql-test/main/gis.test45
-rw-r--r--mysql-test/main/grant4.test4
-rw-r--r--mysql-test/main/grant_4332.test4
-rw-r--r--mysql-test/main/group_by.test35
-rw-r--r--mysql-test/main/handler_read_last.test4
-rw-r--r--mysql-test/main/having.test11
-rw-r--r--mysql-test/main/implicit_commit.test4
-rw-r--r--mysql-test/main/information_schema_all_engines.test4
-rw-r--r--mysql-test/main/information_schema_db.test4
-rw-r--r--mysql-test/main/information_schema_part.test2
-rw-r--r--mysql-test/main/innodb_ext_key.test4
-rw-r--r--mysql-test/main/intersect.test6
-rw-r--r--mysql-test/main/invisible_binlog.test2
-rw-r--r--mysql-test/main/join_cache.test29
-rw-r--r--mysql-test/main/join_nested.test5
-rw-r--r--mysql-test/main/join_outer.test7
-rw-r--r--mysql-test/main/key.test4
-rw-r--r--mysql-test/main/kill-2.test3
-rw-r--r--mysql-test/main/kill.test4
-rw-r--r--mysql-test/main/loaddata.test27
-rw-r--r--mysql-test/main/lock_view.test4
-rw-r--r--mysql-test/main/lowercase_table.test3
-rw-r--r--mysql-test/main/lowercase_table_qcache.test2
-rw-r--r--mysql-test/main/mdev375.test2
-rw-r--r--mysql-test/main/mdl.test3
-rw-r--r--mysql-test/main/merge_mmap.test2
-rw-r--r--mysql-test/main/metadata.test2
-rw-r--r--mysql-test/main/multi_statement.test3
-rw-r--r--mysql-test/main/multi_update.test3
-rw-r--r--mysql-test/main/myisam-optimize.test2
-rw-r--r--mysql-test/main/myisam.test3
-rw-r--r--mysql-test/main/myisam_optimize.test2
-rw-r--r--mysql-test/main/mysql_upgrade.test4
-rw-r--r--mysql-test/main/mysqlcheck.test3
-rw-r--r--mysql-test/main/no-threads.test4
-rw-r--r--mysql-test/main/null.test17
-rw-r--r--mysql-test/main/null_key.test3
-rw-r--r--mysql-test/main/olap.test15
-rw-r--r--mysql-test/main/order_by.test5
-rw-r--r--mysql-test/main/outfile_loaddata.test3
-rw-r--r--mysql-test/main/parser.test27
-rw-r--r--mysql-test/main/partition_explicit_prune.test13
-rw-r--r--mysql-test/main/partition_innodb.test14
-rw-r--r--mysql-test/main/partition_innodb_plugin.test3
-rw-r--r--mysql-test/main/partition_innodb_semi_consistent.test2
-rw-r--r--mysql-test/main/partition_symlink.test5
-rw-r--r--mysql-test/main/plugin.test2
-rw-r--r--mysql-test/main/pool_of_threads.test4
-rw-r--r--mysql-test/main/precedence.test6
-rw-r--r--mysql-test/main/processlist.test2
-rw-r--r--mysql-test/main/profiling.test1
-rw-r--r--mysql-test/main/ps_1general.test5
-rw-r--r--mysql-test/main/ps_ddl.test3
-rw-r--r--mysql-test/main/query_cache.test1
-rw-r--r--mysql-test/main/query_cache_debug.test3
-rw-r--r--mysql-test/main/query_cache_innodb.test3
-rw-r--r--mysql-test/main/query_cache_merge.test4
-rw-r--r--mysql-test/main/query_cache_with_views.test1
-rw-r--r--mysql-test/main/range.test9
-rw-r--r--mysql-test/main/range_vs_index_merge.test3
-rw-r--r--mysql-test/main/read_only_innodb.test1
-rw-r--r--mysql-test/main/reopen_temp_table.test4
-rw-r--r--mysql-test/main/repair.test4
-rw-r--r--mysql-test/main/reset_connection.test5
-rw-r--r--mysql-test/main/row.test3
-rw-r--r--mysql-test/main/second_frac-9175.test5
-rw-r--r--mysql-test/main/select.test33
-rw-r--r--mysql-test/main/select_found.test5
-rw-r--r--mysql-test/main/selectivity.test4
-rw-r--r--mysql-test/main/set_statement.test2
-rw-r--r--mysql-test/main/show_explain.test4
-rw-r--r--mysql-test/main/show_profile.test4
-rw-r--r--mysql-test/main/shutdown.test3
-rw-r--r--mysql-test/main/simultaneous_assignment.test7
-rw-r--r--mysql-test/main/single_delete_update.test4
-rw-r--r--mysql-test/main/sp-anchor-type.test4
-rw-r--r--mysql-test/main/sp-error.test2
-rw-r--r--mysql-test/main/sp-lock.test3
-rw-r--r--mysql-test/main/sp-prelocking.test4
-rw-r--r--mysql-test/main/sp-security-anchor-type.test7
-rw-r--r--mysql-test/main/sp.test12
-rw-r--r--mysql-test/main/sql_mode.test6
-rw-r--r--mysql-test/main/stat_tables.test4
-rw-r--r--mysql-test/main/statistics.test4
-rw-r--r--mysql-test/main/subselect.test88
-rw-r--r--mysql-test/main/subselect2.test4
-rw-r--r--mysql-test/main/subselect3.inc3
-rw-r--r--mysql-test/main/subselect4.test3
-rw-r--r--mysql-test/main/subselect_cache.test4
-rw-r--r--mysql-test/main/subselect_exists2in.test13
-rw-r--r--mysql-test/main/subselect_extra.test4
-rw-r--r--mysql-test/main/subselect_extra_no_semijoin.test4
-rw-r--r--mysql-test/main/subselect_innodb.test18
-rw-r--r--mysql-test/main/subselect_mat.test4
-rw-r--r--mysql-test/main/subselect_mat_cost_bugs.test3
-rw-r--r--mysql-test/main/subselect_sj_mat.test8
-rw-r--r--mysql-test/main/symlink.test5
-rw-r--r--mysql-test/main/table_elim.test5
-rw-r--r--mysql-test/main/table_value_constr.test23
-rw-r--r--mysql-test/main/temp_table.test3
-rw-r--r--mysql-test/main/temp_table_frm.test4
-rw-r--r--mysql-test/main/timezone2.test17
-rw-r--r--mysql-test/main/tmp_table_count-7586.test4
-rw-r--r--mysql-test/main/trigger.test2
-rw-r--r--mysql-test/main/truncate.test5
-rw-r--r--mysql-test/main/truncate_notembedded.test2
-rw-r--r--mysql-test/main/type_bit.test6
-rw-r--r--mysql-test/main/type_bit_innodb.test2
-rw-r--r--mysql-test/main/type_date.test6
-rw-r--r--mysql-test/main/type_datetime.test23
-rw-r--r--mysql-test/main/type_enum.test4
-rw-r--r--mysql-test/main/type_float.test3
-rw-r--r--mysql-test/main/type_newdecimal.test28
-rw-r--r--mysql-test/main/type_num.test2
-rw-r--r--mysql-test/main/type_time.test6
-rw-r--r--mysql-test/main/type_year.test3
-rw-r--r--mysql-test/main/udf.test7
-rw-r--r--mysql-test/main/udf_debug_sync.test2
-rw-r--r--mysql-test/main/union.test20
-rw-r--r--mysql-test/main/update.test3
-rw-r--r--mysql-test/main/upgrade.test3
-rw-r--r--mysql-test/main/user_var.test3
-rw-r--r--mysql-test/main/userstat-badlogin-4824.test4
-rw-r--r--mysql-test/main/varbinary.test6
-rw-r--r--mysql-test/main/win.test3
-rw-r--r--mysql-test/main/win_avg.test5
-rw-r--r--mysql-test/main/win_big-mdev-10092.test5
-rw-r--r--mysql-test/main/win_big-mdev-11697.test3
-rw-r--r--mysql-test/main/win_big.test19
-rw-r--r--mysql-test/main/win_first_last_value.test3
-rw-r--r--mysql-test/main/win_nth_value.test6
-rw-r--r--mysql-test/main/win_ntile.test3
-rw-r--r--mysql-test/main/win_orderby.test3
-rw-r--r--mysql-test/main/win_percentile.test2
-rw-r--r--mysql-test/main/win_std.test4
-rw-r--r--mysql-test/main/win_sum.test3
-rw-r--r--mysql-test/main/xml.test71
273 files changed, 1867 insertions, 158 deletions
diff --git a/mysql-test/include/concurrent.inc b/mysql-test/include/concurrent.inc
index c6d8775af6b..369b729a87c 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 4728e39ce74..65098e2731a 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 9ef35a98934..71861044664 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 a39c25f2cc8..a0b3dd95451 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 f4ec2e81ea3..7fab2b18c18 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 0f8c995a472..3985216a8b4 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 54ea1b4c665..def341e8d5e 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 82dce1335a0..a305430835f 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 07298b1d47b..db9a9b7f5c0 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 4cefc575cdd..a18876145df 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 62adb05b094..fc7d6801adf 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 171843ff66a..d7a8a27509a 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 d24ee2fafeb..436b0f2782f 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 2fa61f48624..aa714445448 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 f02b626a484..9ccedde6dce 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 505798e432a..4333319c364 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 0eed936db38..f4da357a5fa 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 c81932ef90c..813ae252070 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 4b43d41f22f..fef2d6fa2c5 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 fd5dc66e416..f8733aa7876 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 ebadb5077ae..74691cfe217 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 ed06e436ead..9465d578208 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 2fc14d599d9..481ebc02622 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 00000000000..9e5797835df
--- /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 d31f41ef39d..e84becec010 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 fcb9c2494d4..cd99cac799c 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 c69356f907d..d97d9db27b0 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 2fc2ad77bc9..4c74845e32f 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 864b58e5d7f..3c487704233 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 1ae8801c560..78c013d7d02 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 f91d40a1381..5e1351e3680 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 0396fc9d808..95a502932fd 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 936b2e6c5e0..bce5c816406 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 34ace06d203..8a5111065ba 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 97c929605f9..54852a8c203 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 e888bdc3df0..835c515b6be 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 f5ad279e563..20b353c72bf 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 1802fcc9c79..28f90aa5789 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 f6c44accff3..ce90979dcdb 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 fd50366311f..77c27700d98 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 0620465728b..19dc4ff0769 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 92d377eb147..aaa64e2d6f9 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 68ffcd9230e..fc7d6a39060 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 34c51c648d3..d79e3e36762 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 f7102627506..efd877dda24 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 78d5b3a5951..b80408f44d6 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 165980aebed..94a9c5ee939 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 d191b1c3ca0..4073b79a9c6 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 5230922e4b8..d39659a3335 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 762397dfa23..892e8f8d80a 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 828df9ef717..971298a774b 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 e2c03655e43..8e4a3c19ae2 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 c68ae1130ba..f1dfba65b4b 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 d885a39e453..a906ec33072 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 11bc832c6e9..808461ed344 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 ba32f4b7603..5bce08949ba 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 c21090fbdc3..79e2bc838a2 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 410203c7c86..8c773893cb5 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 27870a9fc54..2824f8de8ca 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 ce8559732ee..ab79a6cd51a 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 2486ca8a79e..ffce768c3aa 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 867ca809dbf..f144f5566f3 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 0c38172a0ef..b72745c6aa1 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 4489168a163..a91bbff97b3 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 d9d0a4d0ee4..59dac91d228 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 dc261790f6c..09cbcf0ad87 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 e80515993f2..e71a60a2324 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 06ccd2c9782..6d3453ed1fb 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 a6cba4b9780..68891646c0f 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 ba2e65b3626..cc58d4aeff9 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,'ö'), rpad('ö',3,c1) from t1;
#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 9a8ce414c14..918d20ae3dc 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 2e648a89406..83bde449e19 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 7f6382fe7bc..f432b23d71c 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 82be0305f07..1b7474428c1 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 cb6caff4a03..d105229dfa4 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 72a609edf39..8b0ba671abc 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 62567c5afe4..fee962e7ceb 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 2267facd106..cf32fc3094a 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 93807232bab..78ef51586f4 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 c0cac7f5d67..13efc03d014 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 739096ae9cb..a62416621b8 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 9073d8c57f5..6e378394605 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 e2c47e75993..ce1f64c8a7b 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 8fbbee872ce..a749d5420a1 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 3bf0612a1ab..75667e04d5f 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 7442c7ec2ee..889d56ad7e7 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 11ed26c59b0..c6b195f7974 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 3bf6fabbf6d..4f252f29a69 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 ada21b092aa..85fc947253b 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 2e6944d8b86..3e0b28dd191 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 573985fec1f..035d3b7269e 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 006bdaea5ef..caccc7dafa1 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 6f506dd7215..f926313ec18 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 c0835de8c44..286cc6216a6 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 2012f94e9f2..cd0d908b870 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 ab45446667e..fe744de86c9 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 0c89e9d1f6c..cd5b6911542 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 c4ef133f46b..5d00c3ab9ce 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 eea24f19577..cc83fa6e578 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 1987416ff87..68d3dc0648d 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 293d3915a05..382417a6b10 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 bf7b79bb5a3..36d0d1e6e5e 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 51b5c48c137..27ec63bc5ff 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 af50e4bb9e8..ff30062b3a3 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 e4fc1b0c39f..91047c2d9d3 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 d52f13ab978..7f27a883004 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 78c7c859e95..5f73505f9b3 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 3a81c1a5d1b..8d08fba4301 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 2a6c0276705..f41a5898154 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 e1bda4be29e..070d341cb2d 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 8dd01650ed3..0e45b05d1e6 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 25bf5d24b9f..3413f6bc1d8 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 e7d73b4f368..afc3941e1b3 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 1242c3b9e6a..6c1306955aa 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 3c21aa04ffc..e24dba5d04f 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 f91aee3e577..e34018aafd9 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 c4914b97641..1a6c48fba41 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 7d986130d7f..6b7234f5412 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 dc6749da26f..d18bdc3070e 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 b99fad159c2..7ac34e73995 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 33e67d35f86..3001f0770e4 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 ef13d46c268..7339743afe4 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Ê%' escape 'Ê';
#
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 70adff02a22..1b8ccd7f9bb 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 c984b73c648..576166a7783 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 de0fe94b7c1..fdf5a7c2735 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','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$');
SET default_regex_flags='DUPNAMES';
SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$');
SELECT REGEXP_SUBSTR('Tuesday Tue','^((?<DN>Mon|Fri|Sun)day|(?<DN>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 87930909f91..e8af4ef2eff 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 51bdebbec6d..7ded1cece73 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')<time('00:00:00');
+--enable_view_protocol
# show that conversion to DECIMAL no longer drops sign
SELECT CAST(time('-73:42:12') AS DECIMAL);
diff --git a/mysql-test/main/func_set.test b/mysql-test/main/func_set.test
index 3509e225a34..e34ec2ad735 100644
--- a/mysql-test/main/func_set.test
+++ b/mysql-test/main/func_set.test
@@ -63,6 +63,8 @@ SELECT INTERVAL(0.0, NULL);
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL));
SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL));
SELECT INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#enable after fix MDEV-27871
+--disable_view_protocol
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL));
@@ -70,6 +72,7 @@ SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL));
+--enable_view_protocol
--echo End of 5.0 tests
@@ -105,10 +108,13 @@ DROP TABLE t1, t2;
--echo #
--echo # MDEV-4512 Valgrind warnings in my_long10_to_str_8bit on INTERVAL and DATE_ADD with incorrect types
--echo #
+#enable after fix MDEV-27871
+--disable_view_protocol
CREATE TABLE t1 (pk INT PRIMARY KEY);
INSERT INTO t1 VALUES (10),(11);
SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) FROM t1;
DROP TABLE t1;
+--enable_view_protocol
--echo #
--echo # End of 5.3 tests
diff --git a/mysql-test/main/func_str.test b/mysql-test/main/func_str.test
index 11bafe4988a..2cc1b9c4f66 100644
--- a/mysql-test/main/func_str.test
+++ b/mysql-test/main/func_str.test
@@ -32,10 +32,13 @@ select position(binary 'll' in 'hello'),position('a' in binary 'hello');
#
select left('hello',null), right('hello',null);
select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5) ;
+#enable after fix MDEV-27871
+--disable_view_protocol
select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) ;
select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1);
select substring_index('www.tcx.se','tcx',1),substring_index('www.tcx.se','tcx',-1);
select substring_index('.tcx.se','.',-2),substring_index('.tcx.se','.tcx',-1);
+--enable_view_protocol
select substring_index('aaaaaaaaa1','a',1);
select substring_index('aaaaaaaaa1','aa',1);
select substring_index('aaaaaaaaa1','aa',2);
@@ -77,22 +80,28 @@ select substring_index('the king of the the hill','the',2);
select substring_index('the king of the the hill','the',3);
select concat(':',ltrim(' left '),':',rtrim(' right '),':');
+#enable after fix MDEV-27871
+--disable_view_protocol
select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':');
select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':');
select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':');
select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':');
select concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':');
select TRIM("foo" FROM "foo"), TRIM("foo" FROM "foook"), TRIM("foo" FROM "okfoo");
+--enable_view_protocol
select concat_ws(', ','monty','was here','again');
select concat_ws(NULL,'a'),concat_ws(',',NULL,'');
select concat_ws(',','',NULL,'a');
+#enable after fix MDEV-27871
+--disable_view_protocol
SELECT CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"');
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
select replace('aaaa','a','b'),replace('aaaa','aa','b'),replace('aaaa','a','bb'),replace('aaaa','','b'),replace('bbbb','a','c');
select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') ;
select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
+--enable_view_protocol
select 'mood' sounds like 'mud';
select 'Glazgo' sounds like 'Liverpool';
select null sounds like 'null';
@@ -125,15 +134,21 @@ select rpad('abcd',7),lpad('abcd',7);
select LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'),GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD');
select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0");
+#enable after fix MDEV-27871
+--disable_view_protocol
select decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000);
+--enable_view_protocol
select decode(encode("abcdef","monty"),"monty")="abcdef";
select quote('\'\"\\test');
select quote(concat('abc\'', '\\cba'));
select quote(1/0), quote('\0\Z');
select length(quote(concat(char(0),"test")));
+#enable after fix MDEV-27871
+--disable_view_protocol
select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235))));
select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), unhex(NULL);
+--enable_view_protocol
select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456"));
select length(unhex(md5("abrakadabra")));
@@ -141,7 +156,10 @@ select length(unhex(md5("abrakadabra")));
# Bug #6564: QUOTE(NULL
#
+#enable after fix MDEV-28651
+--disable_view_protocol
select concat('a', quote(NULL));
+--enable_view_protocol
#
# Wrong usage of functions
@@ -158,7 +176,10 @@ select length(repeat("a",100000000)),length(repeat("a",1000*64));
select position("0" in "baaa" in (1)),position("0" in "1" in (1,2,3)),position("sql" in ("mysql"));
select position(("1" in (1,2,3)) in "01");
select length(repeat("a",65500)),length(concat(repeat("a",32000),repeat("a",32000))),length(replace("aaaaa","a",concat(repeat("a",10000)))),length(insert(repeat("a",40000),1,30000,repeat("b",50000)));
+#enable after fix MDEV-28535
+--disable_view_protocol
select length(repeat("a",1000000)),length(concat(repeat("a",32000),repeat("a",32000),repeat("a",32000))),length(replace("aaaaa","a",concat(repeat("a",32000)))),length(insert(repeat("a",48000),1,1000,repeat("a",48000)));
+--enable_view_protocol
#
# Problem med concat
@@ -187,11 +208,14 @@ CREATE TABLE t1 (
submitter int(10) unsigned default NULL
) ENGINE=MyISAM;
+#enable after fix MDEV-27871
+--disable_view_protocol
INSERT INTO t1 VALUES (1,'Link',1,1,1,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','2001-02-28 08:40:16',20010228084016,0,4);
SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter), '"') FROM t1;
SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') FROM t1;
SELECT CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter) FROM t1;
SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') from t1 group by bugdesc;
+--enable_view_protocol
drop table t1;
#
@@ -733,8 +757,10 @@ select hex(29223372036854775809), hex(-29223372036854775809);
create table t1 (i int);
insert into t1 values (1000000000),(1);
--enable_metadata
+--disable_view_protocol
select lpad(i, 7, ' ') as t from t1;
select rpad(i, 7, ' ') as t from t1;
+--enable_view_protocol
--disable_metadata
drop table t1;
@@ -884,18 +910,23 @@ select format(NULL, NULL);
select format(pi(), NULL);
select format(NULL, 2);
+#enable after fix MDEV-28585
+--disable_view_protocol
select benchmark(NULL, NULL);
select benchmark(0, NULL);
select benchmark(100, NULL);
select benchmark(NULL, 1+1);
+--enable_view_protocol
#
# Bug #20752: BENCHMARK with many iterations returns too quickly
#
# not a string, but belongs with the above Bug#22684
+#enable after fix MDEV-28585
+--disable_view_protocol
select benchmark(-1, 1);
-
+--enable_view_protocol
#
# Please note:
# 1) The collation of the password is irrelevant, the encryption uses
@@ -966,12 +997,15 @@ select left('hello', -4294967296);
select left('hello', 4294967296);
select left('hello', -4294967297);
select left('hello', 4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select left('hello', -18446744073709551615);
select left('hello', 18446744073709551615);
select left('hello', -18446744073709551616);
select left('hello', 18446744073709551616);
select left('hello', -18446744073709551617);
select left('hello', 18446744073709551617);
+--enable_view_protocol
select right('hello', 10);
select right('hello', 0);
@@ -982,12 +1016,15 @@ select right('hello', -4294967296);
select right('hello', 4294967296);
select right('hello', -4294967297);
select right('hello', 4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select right('hello', -18446744073709551615);
select right('hello', 18446744073709551615);
select right('hello', -18446744073709551616);
select right('hello', 18446744073709551616);
select right('hello', -18446744073709551617);
select right('hello', 18446744073709551617);
+--enable_view_protocol
select substring('hello', 2, -1);
@@ -999,12 +1036,17 @@ select substring('hello', -4294967296, 1);
select substring('hello', 4294967296, 1);
select substring('hello', -4294967297, 1);
select substring('hello', 4294967297, 1);
+#view protocol generates additional warning
+--disable_view_protocol
select substring('hello', -18446744073709551615, 1);
select substring('hello', 18446744073709551615, 1);
select substring('hello', -18446744073709551616, 1);
select substring('hello', 18446744073709551616, 1);
select substring('hello', -18446744073709551617, 1);
select substring('hello', 18446744073709551617, 1);
+--enable_view_protocol
+#enable after fix MDEV-28652
+--disable_view_protocol
select substring('hello', 1, -1);
select substring('hello', 1, -4294967295);
select substring('hello', 1, 4294967295);
@@ -1012,12 +1054,16 @@ select substring('hello', 1, -4294967296);
select substring('hello', 1, 4294967296);
select substring('hello', 1, -4294967297);
select substring('hello', 1, 4294967297);
+--enable_view_protocol
+#view protocol generates additional warning
+--disable_view_protocol
select substring('hello', 1, -18446744073709551615);
select substring('hello', 1, 18446744073709551615);
select substring('hello', 1, -18446744073709551616);
select substring('hello', 1, 18446744073709551616);
select substring('hello', 1, -18446744073709551617);
select substring('hello', 1, 18446744073709551617);
+--enable_view_protocol
select substring('hello', -1, -1);
select substring('hello', -4294967295, -4294967295);
select substring('hello', 4294967295, 4294967295);
@@ -1025,12 +1071,15 @@ select substring('hello', -4294967296, -4294967296);
select substring('hello', 4294967296, 4294967296);
select substring('hello', -4294967297, -4294967297);
select substring('hello', 4294967297, 4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select substring('hello', -18446744073709551615, -18446744073709551615);
select substring('hello', 18446744073709551615, 18446744073709551615);
select substring('hello', -18446744073709551616, -18446744073709551616);
select substring('hello', 18446744073709551616, 18446744073709551616);
select substring('hello', -18446744073709551617, -18446744073709551617);
select substring('hello', 18446744073709551617, 18446744073709551617);
+--enable_view_protocol
select insert('hello', -1, 1, 'hi');
select insert('hello', -4294967295, 1, 'hi');
@@ -1065,12 +1114,15 @@ select insert('hello', -4294967296, -4294967296, 'hi');
select insert('hello', 4294967296, 4294967296, 'hi');
select insert('hello', -4294967297, -4294967297, 'hi');
select insert('hello', 4294967297, 4294967297, 'hi');
+#enable after fix MDEV-27871
+--disable_view_protocol
select insert('hello', -18446744073709551615, -18446744073709551615, 'hi');
select insert('hello', 18446744073709551615, 18446744073709551615, 'hi');
select insert('hello', -18446744073709551616, -18446744073709551616, 'hi');
select insert('hello', 18446744073709551616, 18446744073709551616, 'hi');
select insert('hello', -18446744073709551617, -18446744073709551617, 'hi');
select insert('hello', 18446744073709551617, 18446744073709551617, 'hi');
+--enable_view_protocol
select repeat('hello', -1);
select repeat('hello', -4294967295);
@@ -1079,12 +1131,15 @@ select repeat('hello', -4294967296);
select repeat('hello', 4294967296);
select repeat('hello', -4294967297);
select repeat('hello', 4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select repeat('hello', -18446744073709551615);
select repeat('hello', 18446744073709551615);
select repeat('hello', -18446744073709551616);
select repeat('hello', 18446744073709551616);
select repeat('hello', -18446744073709551617);
select repeat('hello', 18446744073709551617);
+--enable_view_protocol
select space(-1);
select space(-4294967295);
@@ -1093,12 +1148,15 @@ select space(-4294967296);
select space(4294967296);
select space(-4294967297);
select space(4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select space(-18446744073709551615);
select space(18446744073709551615);
select space(-18446744073709551616);
select space(18446744073709551616);
select space(-18446744073709551617);
select space(18446744073709551617);
+--enable_view_protocol
select rpad('hello', -1, '1');
select rpad('hello', -4294967295, '1');
@@ -1107,12 +1165,15 @@ select rpad('hello', -4294967296, '1');
select rpad('hello', 4294967296, '1');
select rpad('hello', -4294967297, '1');
select rpad('hello', 4294967297, '1');
+#view protocol generates additional warning
+--disable_view_protocol
select rpad('hello', -18446744073709551615, '1');
select rpad('hello', 18446744073709551615, '1');
select rpad('hello', -18446744073709551616, '1');
select rpad('hello', 18446744073709551616, '1');
select rpad('hello', -18446744073709551617, '1');
select rpad('hello', 18446744073709551617, '1');
+--enable_view_protocol
select rpad('hello', -1);
select rpad('hello', -4294967295);
select rpad('hello', 4294967295);
@@ -1120,12 +1181,15 @@ select rpad('hello', -4294967296);
select rpad('hello', 4294967296);
select rpad('hello', -4294967297);
select rpad('hello', 4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select rpad('hello', -18446744073709551615);
select rpad('hello', 18446744073709551615);
select rpad('hello', -18446744073709551616);
select rpad('hello', 18446744073709551616);
select rpad('hello', -18446744073709551617);
select rpad('hello', 18446744073709551617);
+--enable_view_protocol
select rpad('hello', 0, 'x');
select rpad('hello', 0);
@@ -1136,12 +1200,15 @@ select lpad('hello', -4294967296, '1');
select lpad('hello', 4294967296, '1');
select lpad('hello', -4294967297, '1');
select lpad('hello', 4294967297, '1');
+#view protocol generates additional warning
+--disable_view_protocol
select lpad('hello', -18446744073709551615, '1');
select lpad('hello', 18446744073709551615, '1');
select lpad('hello', -18446744073709551616, '1');
select lpad('hello', 18446744073709551616, '1');
select lpad('hello', -18446744073709551617, '1');
select lpad('hello', 18446744073709551617, '1');
+--enable_view_protocol
select lpad('hello', -1);
select lpad('hello', -4294967295);
select lpad('hello', 4294967295);
@@ -1149,12 +1216,15 @@ select lpad('hello', -4294967296);
select lpad('hello', 4294967296);
select lpad('hello', -4294967297);
select lpad('hello', 4294967297);
+#view protocol generates additional warning
+--disable_view_protocol
select lpad('hello', -18446744073709551615);
select lpad('hello', 18446744073709551615);
select lpad('hello', -18446744073709551616);
select lpad('hello', 18446744073709551616);
select lpad('hello', -18446744073709551617);
select lpad('hello', 18446744073709551617);
+--enable_view_protocol
select lpad('hello', 0, 'x');
select lpad('hello', 0);
@@ -1326,7 +1396,9 @@ DROP VIEW v1;
create table t1(a float);
insert into t1 values (1.33);
--enable_metadata
+--disable_view_protocol
select format(a, 2) from t1;
+--enable_view_protocol
--disable_metadata
drop table t1;
@@ -1395,6 +1467,8 @@ CREATE TABLE t2 (a VARCHAR(20), b INT);
INSERT INTO t1 VALUES ('ABC', 1);
INSERT INTO t2 VALUES ('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), t2.a)
FROM t1,t2 WHERE t1.b = t1.b > 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 d9f2bda750a..7b88b6f36ee 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 570fd0ae87a..02b08d13dbe 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är är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
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 3a1bb2bcb58..b721d1c3649 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 35fd36b8456..dca8d458f8a 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 a30bad72136..d8f35ef980d 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 ff6298c50a6..0e1b24a91b6 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 da72a0c4d8a..3580ddfc076 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 208b8731e0e..c7bdb366124 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 30f08f9eea2..1592b718084 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 41e0b822f98..1ab79ea5907 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 8d690222bcc..3fa50a84d2d 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 9104be78952..2f18e302fa0 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 8b0cc244f51..e6c5ef51f44 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 bcc43865395..c3b9bc554a3 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 f8d685d2560..9c1d4555b9e 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 b244662a28c..e754d98a636 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 62fba4f53d8..3741de61150 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 04ebcc1e41b..6b5a8127792 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 901f471121f..08aafb44e41 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 654afcc39c3..11b4be3ab87 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 02e5fcba4fb..2e8589ee184 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 cfb24a63304..eaf754fb0ca 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 82c7b265b56..ff74e5280e7 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 b386f1298fd..e52d0c5d7ce 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 0c1177722b4..a30324fac44 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 b2debd95a98..6374e8ba1fe 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 3a5bcad1685..d1ff2072beb 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 abb8d317946..ba86f1c4e68 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 4f92e43f5f7..8d493fff5cd 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 bf24c8e9a1c..b6047a98c74 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 6fdb35016ca..f489d232be8 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 b90c74a8f7f..d7c09fb50ec 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 c97b029754d..0d2f9e853bc 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 96189a9750a..eade0e0ff01 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 785aa749f5e..40be11930e9 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 5f4b5fc8ec3..54c64918e03 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 7c1fe4ec1c8..44e38e1e708 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 6cdfeb6aefa..ee43383ca65 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 5e133aea853..82096f0b4e3 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 0e42bb81fd9..898fd804a9d 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 8f3c241ebb7..8d25a54b4d2 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 a2936abf784..c1a608a57e6 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 403790356ce..bf1a9c3bd1f 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 c3ebc6f5b94..d5f419be2de 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 078eacb851b..0c990300b68 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 17b307208e0..abaa112887e 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 745c75cb4de..f9e2a357ed3 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 ca97398d8b6..9df18c50ee3 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 0be21396148..e630572dbce 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 6a89a0a6467..5bdc24b7cdd 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 74e1747746b..4f3f2d1fcc8 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 7a1dfc36173..c1a516b255f 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 7e09c7d0642..07d653ee4d6 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 d3e0fa1edda..7ae08cd241e 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 3d581d4605d..36522aaa5e4 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 cd7cee4f911..b93aea72e65 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 f419f57ea2f..7e60f196f65 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 1e1aada7c15..16154a4b736 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 01a0164722d..34895f448ba 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 90226d379bf..915537fe951 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 d518d7a3956..c1c43790a95 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 af82927245b..883c952f683 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 72ae891e331..7ac96220c11 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 6212ff624e0..9b342d57a8e 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 c55327e3d0a..e472a7dd478 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 caa10a690ce..af266a71300 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 60c912e9c3e..888885a7afd 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 9ba3ccaca07..4b00c32b185 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 2b3ff3bab5e..3d621fbbc56 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 435eb99683a..45de1e73500 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 73c8280703c..dd4edc7a959 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 80c61c414bf..87cf66aa2de 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 91baf997459..4cda672b820 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 7e9d6bcf0ad..2691f8ac813 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 33613697722..4b6bdbb15e1 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 4d7dcdc9781..27102acda14 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 0df223860b9..193f9e7bcaf 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 542701bc42b..bccfc557df2 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 c20b29c40bf..fe923d74a0e 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 e423725177b..b670cfc2699 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 a21e33346d6..aea454855f5 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 ec939641ea3..4a4ad5e5a8e 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 b340cf776c5..7395286ca66 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 082b7b8698f..92b8085c7c8 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 703c59e8f28..f31a8268231 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 38cbd5aa110..fd754a9371c 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 e61d5e38052..1aefa724f67 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 d167c1e8f73..8c891ace0be 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 8cf50f73f6f..b23c47fa3ce 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 f7c18637cdd..49d067c47df 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 0ed63ac8bf2..497bdb46076 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 3dcff34e773..20358ed5d60 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 3b982b8b7d0..fcc39f73097 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 8ed1c9ee210..af7b45542bd 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 6aedabcd3f5..2982766c16d 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 55da0000f13..6b6fc4773f1 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 e70d643138b..8ad89be2b65 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 3651aed9aab..3f2f7b611ff 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 681f92bd8c4..448f52a81e9 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 5d8f3dcc1b5..edb5cefce46 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 fc43d19ae11..cacafb0000f 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 028cdced560..5c5777397e8 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 8583a6951b9..3013ae13630 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 cf95d4cb938..d5f52e9a60d 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 8de4743b9fd..e5770877e6f 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 673e7dcdc6e..5dcd54aae29 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 dc5fe7f3cd0..9e639ffce2c 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 178bd15004b..a4ddcbed900 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 1e5615502da..db2c2ca19f6 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 8bfb0e7c5cf..0629e27f164 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 56e9246b95c..9379894ced6 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 9e28deacf63..592c234a367 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 8b6d2becfa9..bf5606aa51b 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 216995fc479..86d957c6ca8 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 4c6f9bc1b49..bf514ad7453 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 44cb37f68f2..8a2796bb2f0 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 240a96a6208..0428a22238e 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 5c461922166..5f13b8c26cd 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 1ac169002a6..5d7f7de7d0b 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 a5cb15e1a2c..3d5ab14cb15 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 cc715d6cda2..251734e4d1b 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 2655122069b..b22cf37a864 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 34c417d9026..0dced5f5cf7 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 d0c71ffa7e6..482bf99a980 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 593500c1e18..0b5be340054 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 484393611ae..e2e485f6e6b 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 84709102f96..8a6949447ee 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 e7a3e4d8abf..ed75b864967 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 54ceb8fd3a5..dad50c439b6 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 78f2150e446..12cca9f12b3 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 f03f3fcf703..b35819b0fb3 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 a4bd0888ea7..9dc8ff6d87e 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 23a3652d943..86edcce5679 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 090d43b0b7b..c4bda66018b 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 7103b8522be..b58118dd589 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 09c8d640b09..e53eaa70291 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 0a90a98a5d4..d027eb84702 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 b9764d1e9d7..2d47677f65c 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 c65ba7e1521..c508b1627ad 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 0d42c606486..7f02a582ea0 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 8705be123ff..a2a4f46d542 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 c1964ecac98..e7986e2cf84 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 aa4965bfd5a..d495dc45764 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 b567f03a431..7f20ab31e53 100644
--- a/mysql-test/main/xml.test
+++ b/mysql-test/main/xml.test
@@ -166,11 +166,14 @@ select extractValue('<a b="b1" b="b2" b="b3"/>','/a/@b[2=position()]');
select extractValue('<a b="b1" b="b2" b="b3"/>','/a/@b[3=position()]');
select extractValue('<a b="b1" b="b2" b="b3"/>','/a/@b[2>=position()]');
select extractValue('<a b="b1" b="b2" b="b3"/>','/a/@b[2<=position()]');
+#enable after fix MDEV-27871
+--disable_view_protocol
select extractValue('<a b="b1" b="b2" b="b3"/>','/a/@b[position()=3 or position()=2]');
SELECT extractValue('<a>a<b>a1<c>c1</c></b><b>a2</b></a>','/a/b[count(c)=0]');
SELECT extractValue('<a>a<b>a1<c>c1</c></b><b>a2</b></a>','/a/b[count(c)=1]');
select extractValue('<a>a1<b ba="1" ba="2">b1</b><b>b2</b>4</a>','/a/b[sum(@ba)=3]');
+--enable_view_protocol
select extractValue('<a><b>b1</b><b>b2</b></a>','/a/b[1]');
select extractValue('<a><b>b1</b><b>b2</b></a>','/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='<a>a1<b>b1<c>c1</c>b2</b>a2</a>';
+#enable after fix MDEV-27871
+--disable_view_protocol
select UpdateXML('<a>a1<b>b1<c>c1</c>b2</b>a2</a>','/a/b/c','+++++++++');
select UpdateXML('<a>a1<b>b1<c>c1</c>b2</b>a2</a>','/a/b/c','<c1>+++++++++</c1>');
+--enable_view_protocol
select UpdateXML('<a>a1<b>b1<c>c1</c>b2</b>a2</a>','/a/b/c','<c1/>');
SET @xml='<a><b>bb</b></a>';
@@ -271,7 +277,10 @@ select extractvalue('<a><b>b</b><b!>b!</b!></a>','//b!');
#
select extractvalue('<a>A<b>B<c>C</c></b></a>','/a/descendant::*');
select extractvalue('<a>A<b>B<c>C</c></b></a>','/a/self::*');
+#enable after fix MDEV-27871
+--disable_view_protocol
select extractvalue('<a>A<b>B<c>C</c></b></a>','/a/descendant-or-self::*');
+--enable_view_protocol
# Bug #16320 XML: extractvalue() won't accept names containing underscores
#
select extractvalue('<A_B>A</A_B>','/A_B');
@@ -280,24 +289,36 @@ select extractvalue('<A_B>A</A_B>','/A_B');
# Bug#16318: XML: extractvalue() incorrectly returns last() = 1
#
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[position()]');
+#enable after fix MDEV-27871
+--disable_view_protocol
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[count(.)=last()]');
+--enable_view_protocol
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[last()]');
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[last()-1]');
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[last()=1]');
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[last()=2]');
+#enable after fix MDEV-27871
+--disable_view_protocol
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[last()=position()]');
+--enable_view_protocol
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[count(.)]');
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[count(.)-1]');
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[count(.)=1]');
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[count(.)=2]');
+#enable after fix MDEV-27871
+--disable_view_protocol
select extractvalue('<a>A<b>B1</b><b>B2</b></a>','/a/b[count(.)=position()]');
+--enable_view_protocol
#
# Bug#16316: XML: extractvalue() is case-sensitive with contains()
#
select extractvalue('<a>Jack</a>','/a[contains(../a,"J")]');
select extractvalue('<a>Jack</a>','/a[contains(../a,"j")]');
+#enable after fix MDEV-27871
+--disable_view_protocol
select extractvalue('<a>Jack</a>','/a[contains(../a,"j")]' collate latin1_bin);
select extractvalue('<a>Jack</a>' collate latin1_bin,'/a[contains(../a,"j")]');
+--enable_view_protocol
#
# Bug#18285: ExtractValue not returning character
@@ -309,12 +330,16 @@ select ExtractValue('<tag1><![CDATA[test]]></tag1>','/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','/a');
select extractValue('<a>a<','/a');
select extractValue('<a>a</','/a');
select extractValue('<a>a</a','/a');
select extractValue('<a>a</a></b>','/a');
select extractValue('<a b=>a</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('<ns:element xmlns:ns="myns"/>','count(ns:element)');
select extractValue('<ns:element xmlns:ns="myns">a</ns:element>','/ns:element');
select extractValue('<ns:element xmlns:ns="myns">a</ns:element>','/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('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/foo.bar');
select extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/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('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','/zot/tim0/02');
select extractValue('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','//*');
+--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('<x.-_:>test</x.-_:>','//*');
+--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('<a><b><Text>test</Text></b></a>','/a/b/Text');
+#enable after fix MDEV-27871
+--disable_view_protocol
select ExtractValue('<a><b><comment>test</comment></b></a>','/a/b/comment');
select ExtractValue('<a><b><node>test</node></b></a>','/a/b/node');
select ExtractValue('<a><b><processing-instruction>test</processing-instruction></b></a>','/a/b/processing-instruction');
+--enable_view_protocol
+
#
# Test keywords in node name contexts
#
@@ -439,6 +480,8 @@ select ExtractValue('<a><div:div>test</div:div></a>', '/a/div:div');
# Test axis names in node name context
#
select ExtractValue('<a><ancestor>test</ancestor></a>', '/a/ancestor');
+#enable after fix MDEV-27871
+--disable_view_protocol
select ExtractValue('<a><ancestor-or-self>test</ancestor-or-self></a>', '/a/ancestor-or-self');
select ExtractValue('<a><attribute>test</attribute></a>', '/a/attribute');
select ExtractValue('<a><child>test</child></a>', '/a/child');
@@ -450,6 +493,7 @@ select ExtractValue('<a><namespace>test</namespace></a>', '/a/namespace');
select ExtractValue('<a><parent>test</parent></a>', '/a/parent');
select ExtractValue('<a><preceding>test</preceding></a>', '/a/preceding');
select ExtractValue('<a><preceding-sibling>test</preceding-sibling></a>', '/a/preceding-sibling');
+--enable_view_protocol
select ExtractValue('<a><self>test</self></a>', '/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('<xml "xxx" "yyy">CharData</xml>', '/xml');
SELECT ExtractValue('<xml xxx "yyy">CharData</xml>', '/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, '<?xml version="1.0"?><bla name="blubb"></bla>'),
(14, '<xml version="kaputt">');
-
+#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'<!--' USING utf8),'1','1');
+--enable_view_protocol
--echo #
--echo # Bug#11766725 (bug#59901): EXTRACTVALUE STILL BROKEN AFTER FIX FOR BUG #44332
--echo #
+#view protocol generates additional warning
+--disable_view_protocol
SELECT ExtractValue(CONVERT('<\"', BINARY(10)), 1);
-
+--enable_view_protocol
--echo End of 5.1 tests
--echo #
@@ -660,8 +716,11 @@ SELECT ExtractValue(CONVERT('<\"', BINARY(10)), 1);
--echo #
--echo # MDEV-5338 XML parser accepts malformed data
--echo #
+#view protocol generates additional warning
+--disable_view_protocol
SELECT ExtractValue('<a>xxx</c>','/a/b');
SELECT ExtractValue('<a><b>xxx</c></a>','/a/b');
+--enable_view_protocol
--echo #
--echo # End of 5.3 tests
@@ -673,8 +732,11 @@ SELECT ExtractValue('<a><b>xxx</c></a>','/a/b');
--echo #
--echo # Bug#58175 xml functions read initialized bytes when conversions happen
--echo #
+#view protocol generates additional warning
+--disable_view_protocol
SET NAMES latin1;
SELECT UPDATEXML(CONVERT('' USING swe7), TRUNCATE('',1), 0);
+--enable_view_protocol
--echo #
--echo # Bug#12375190: UPDATEXML CRASHES ON SIMPLE INPUTS
@@ -689,7 +751,10 @@ SELECT ExtractValue('<a><a>aa</a><b>bb</b></a>','(a)/a|(a)/b');
# MDEV-5689 ExtractValue(xml, 'substring(/x,/y)') crashes
# MySQL bug#12428404 MYSQLD.EXE CRASHES WHEN EXTRACTVALUE() IS CALLED WITH MALFORMED XPATH EXP
#
+#enable after fix MDEV-27871
+--disable_view_protocol
SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)');
+--enable_view_protocol
--echo #
--echo # Bug#62429 XML: ExtractValue, UpdateXML max arg length 127 chars