Hi Serg! On Sun, Mar 12, 2017 at 11:50 PM, Sergei Golubchik <serg@mariadb.org> 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 message:
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 trivial. 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().
Regards, Sergei Chief Architect MariaDB and security@mariadb.org
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
-- Regards Sachin Setiya Software Engineer at MariaDB