Hi, Nikita! On Dec 21, Nikita Malyavin wrote:
@@ -4938,6 +4938,7 @@ int ha_create_table(THD *thd, const char *path, !create_info->tmp_table();
share.frm_image= frm; + share.orig_table_name= table_name;
why? if orig_table_name is NULL, error_table_name() will use table_name, so there's never need to make orig_table_name==table_name.
and I don't understand all your other manipulations with orig_table_name. Could you please explain that?
It affects ALTER TABLE error messages. table_name will contain temporary name, and error_table_name() will output "(temporary)", which is rather inconvenient. AFAICS, orig_table_name purpose is exactly for fixing that, but some corner cases were not covered to this moment.
I don't understand that. You've made a lot of changes in many places passing orig table name around, it's difficult to see what corner cases you were trying to fix. Could you please fix it in a separate commit? With tests and an explanation in a commit comment, describing what exactly corner cases were not covered.
// open an frm image if (share.init_from_binary_frm_image(thd, write_frm_now,
Regards, Sergei Chief Architect MariaDB and security@mariadb.org