maria-developers team mailing list archive
Mailing list archive
Re: b6f4d16: MDEV-10436 non-deterministic vcol does not force rbr
On Sun, Mar 12, 2017 at 11:50 PM, Sergei Golubchik <serg@xxxxxxxxxxx> wrote:
> Hi, Sachin!
> On Feb 10, Sachin Setiya wrote:
>> revision-id: b6f4d16a015fc778186ae4d2c1820a78cd9645d1 (mariadb-10.2.3-157-gb6f4d16)
>> parent(s): 5285504857df6caf417c8a56601913a95c9f7abc
>> author: Sachin Setiya
>> committer: Sachin Setiya
>> timestamp: 2017-02-10 18:24:12 +0530
>> MDEV-10436 non-deterministic vcol does not force rbr
>> Problem:- Since 10.2.1 one can create virtual generated columns with
>> non-deterministic functions. Arguably, in cases like
>> INSERT t1 SELECT * FROM t2
>> if t2 contains such non-deterministic generated columns and replication
>> mode is MIXED, the statement should be logged in the row format. But it is
>> logged in statement format.
> Some explanation of the fix would be good here. Especially if it's not
Agreed, will change it.
Why did you need set_cs_bin_format_row_if_mixed_and_nd_vcol()
> function and why are you doing something in end_send()? You've fixed
> THD::decide_logging_format(), why was that not enough?
No it wasnt , We require both Fix in thd_decide_logging_format and in end_send()
For example consider this "create table t3 as select * from t1"
Logging format of this can be evaluated by
THD::decide_logging_format(), But in the case of
insert into t3 select t1.a , t1.c , t2.b from t1 , t2 where t1.b = t2.a.
We first have evaluate select condition then table->read_set will be set.
Then is why set_cs_bin_format_row_if_mixed_and_nd_vcol() after end_data().
> Chief Architect MariaDB
> and security@xxxxxxxxxxx
> Mailing list: https://launchpad.net/~maria-developers
> Post to : maria-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-developers
> More help : https://help.launchpad.net/ListHelp
Software Engineer at MariaDB