Hi, Sergei! On Wed, Dec 26, 2018 at 7:42 AM Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Nikita!
@@ -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
On Dec 21, Nikita Malyavin wrote: 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.
TABLE_SHARE::orig_table_name has been removed in some later 10.3 code. So it's not relevant anymore. I've made the workaround another way, and have put it in separate commit, with test changes. Looks much more compact now, but I was afraid for side effects with such approach. Although --suite=main passes well. -- Yours truly, Nikita Malyavin