Hi, Nikita,
This is good, but I think fill_extra_persistent_columns() shouldn't be
used at all.
It doesn't handle default values. I've changed rpl_alter_extra_persistent test
as
-alter table t1 add column z1 int as(a+1) virtual, add column z2 int as (a+2) persistent;
+alter table t1 add column z1 int as(a+1) virtual, add column z2 int default (a+2);
and, of course, new column z2 wasn't updated properly.
An easy fix would be to use your code in all cases and remove
fill_extra_persistent_columns().
Could you do that too, please? And add the test case too. May be just,
append
, add column z3 int default (a+2)
I'm afraid that we still should mark whose fields for write, or we'll end up broken.
So i guess i'll just remove the function and will add a raw cycle through thow fields with marking.
There's no error check, so it's not worth a function anymore