Commit 93aadda5 authored by Vesa Pentti's avatar Vesa Pentti

MDEV-13149 -- show function status now works with PAD_CHAR_TO_FULL_LENGTH

parent c2509a15
create function f() returns int return 1;
show function status;
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
T f T T T T T T T T T
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
show function status;
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
T f T T T T T T T T T
drop function f;
select @@sql_mode;
@@sql_mode
PAD_CHAR_TO_FULL_LENGTH
create function f() returns int return 1;
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
ROUTINE_NAME
f
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
ROUTINE_NAME
f
drop function f;
select @@sql_mode;
@@sql_mode
PAD_CHAR_TO_FULL_LENGTH
#
# Test that show function status succeeds with
# sql_mode = 'PAD_CHAR_TO_FULL_LENGTH (MDEV-13149)
# show function status
create function f() returns int return 1;
--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T
show function status;
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T
show function status;
drop function f;
select @@sql_mode;
# select ROUTINE_NAME from information_schema.ROUTINES
create function f() returns int return 1;
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
select ROUTINE_NAME from information_schema.ROUTINES where ROUTINE_NAME='f';
drop function f;
select @@sql_mode;
...@@ -5716,6 +5716,10 @@ int fill_schema_proc(THD *thd, TABLE_LIST *tables, COND *cond) ...@@ -5716,6 +5716,10 @@ int fill_schema_proc(THD *thd, TABLE_LIST *tables, COND *cond)
DBUG_RETURN(1); DBUG_RETURN(1);
} }
/* Disable padding temporarily so it doesn't break the query */
ulonglong sql_mode_was = thd->variables.sql_mode;
thd->variables.sql_mode &= ~MODE_PAD_CHAR_TO_FULL_LENGTH;
if (proc_table->file->ha_index_init(0, 1)) if (proc_table->file->ha_index_init(0, 1))
{ {
res= 1; res= 1;
...@@ -5751,6 +5755,7 @@ int fill_schema_proc(THD *thd, TABLE_LIST *tables, COND *cond) ...@@ -5751,6 +5755,7 @@ int fill_schema_proc(THD *thd, TABLE_LIST *tables, COND *cond)
(void) proc_table->file->ha_index_end(); (void) proc_table->file->ha_index_end();
close_system_tables(thd, &open_tables_state_backup); close_system_tables(thd, &open_tables_state_backup);
thd->variables.sql_mode = sql_mode_was;
DBUG_RETURN(res); DBUG_RETURN(res);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment