CREATE TABLE t1 (id INT PRIMARY KEY); CALL sys.table_exists('test', 't1', @exists); SELECT @exists; @exists BASE TABLE DROP TABLE t1; CREATE view v_t1 AS SELECT 1; CALL sys.table_exists('test', 'v_t1', @exists); SELECT @exists; @exists VIEW DROP VIEW v_t1; CREATE TABLE tv (i int) with system versioning; CALL sys.table_exists('test','tv',@exists); SELECT @exists; @exists BASE TABLE DROP TABLE tv; CREATE SEQUENCE s; CALL sys.table_exists('test','s',@exists); SELECT @exists; @exists SEQUENCE DROP SEQUENCE s; CREATE TEMPORARY TABLE t1 (id INT PRIMARY KEY); CALL sys.table_exists('test', 't1', @exists); SELECT @exists; @exists TEMPORARY DROP TEMPORARY TABLE t1; CALL sys.table_exists('information_schema', 'all_plugins', @exists); SELECT @exists; @exists SYSTEM VIEW CALL sys.table_exists('test', 't2', @exists); SELECT @exists; @exists SET @identifier := REPEAT('a', 65); CALL sys.table_exists(@identifier, 't1', @exists); ERROR 22001: Data too long for column 'in_db' at row 1 CALL sys.table_exists('test', @identifier, @exists); ERROR 22001: Data too long for column 'in_table' at row 0 SET @identifier := NULL; # # MDEV-28391: table_exists procedure fails with # Incorrect table name with backtick identifiers # CREATE TABLE `ab``c` (t1_id int PRIMARY KEY, t1_val varchar(10)); CALL sys.table_exists('test', 'ab`c', @tbl_type); SELECT @tbl_type; @tbl_type BASE TABLE DROP TABLE `ab``c`; CREATE TEMPORARY TABLE `ab``c` (t1_id int PRIMARY KEY, t1_val varchar(10)); CALL sys.table_exists('test', 'ab`c', @tbl_type); SELECT @tbl_type; @tbl_type TEMPORARY DROP TABLE `ab``c`; CREATE TABLE `ab``c` (t1_id int PRIMARY KEY, t1_val varchar(10)); CREATE TEMPORARY TABLE `ab``c` (t1_id int PRIMARY KEY, t1_val varchar(10)); CALL sys.table_exists('test', 'ab`c', @tbl_type); SELECT @tbl_type; @tbl_type TEMPORARY # We cannot send quoted identifer to the procedure, no table will be found CALL sys.table_exists('test', '`ab``c`', @tbl_type); SELECT @tbl_type; @tbl_type DROP TABLE `ab``c`;