maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #07427
Re: Doubt in bin logging for CREATE VIEW
Hi James,
Well, I liked the good news part. :)
I will share the test results with you too. And yeah, will look into the
create view comments.
Thanks,
Sriram
On Thu, Jun 19, 2014 at 2:48 PM, James Briggs <james.briggs@xxxxxxxxx>
wrote:
> Hi Sriram.
>
> The good news ... nice catch, you earned your GSoC salary!
>
> The mysql_register_view() has a dozen
> different ways to fail:
>
> - RAM: my_error(ER_OUT_OF_RESOURCES, MYF(0));
> - disk: sql_create_definition_file()
> - name collision
> - etc.
>
> So the create view statement can
> definitely fail on the master,
> and should not replicate when that happens.
>
> Note that warnings can also be set, so
> investigate if that affects replication:
>
> push_warning(thd,
> Sql_condition::WARN_LEVEL_WARN,
> ER_WARN_VIEW_MERGE,
> ER(ER_WARN_VIEW_MERGE));
>
> The bad news ... I read over the create view source,
> and there's tons of work that hasn't been finished yet
> (just read the comments about union and restrict/
> cascade for starters.)
>
> Another future project!
>
> Thanks, James.
>
> --------------------------------------------
> On Thu, 6/19/14, sriram patil <spsrirampatil@xxxxxxxxx> wrote:
>
> Subject: [Maria-developers] Doubt in bin logging for CREATE VIEW
> To: maria-developers@xxxxxxxxxxxxxxxxxxx
> Date: Thursday, June 19, 2014, 12:54 AM
>
> Hi All,
> I was checking the behavior of bin logging in
> various methods. I found out CREATE VIEW differs a little
> bit than others in bin logging.
> The query is written into bin log if query is
> executed successfully. If there is any error the query is
> not logged. This behavior is observed across all the
> commands.
>
>
> In case of CREATE VIEW (method: mysql_create_view
> file: sql/sql_view.cc), while the bin logging is skipped for
> most of the errors by jumping to "err" label, it
> is not skipped in following code snippet (line number:
> 616)
>
>
> res= mysql_register_view(thd, view,
> mode);
> /* View TABLE_SHARE must be
> removed from the table definition cache in order
> to make ALTER VIEW work properly. Otherwise,
> we would not be able to detect
>
> meta-data changes after ALTER
> VIEW.*/
> if (!res) tdc_remove_table(thd,
> TDC_RT_REMOVE_ALL, view->db, view->table_name,
> false);
> if (mysql_bin_log.is_open())
>
> { // this is where the log is
> written}
>
> If an error occurs in mysql_register_view, e.g.
> ER_OUT_OF_RESOURCES, ER_TABLE_EXISTS_ERROR, etc. the query
> is still logged.
>
>
> Is there a specific reason why it is logged even
> though an error occurs? Or is it a bug?
> Thanks &
> Regards,Sriram
> -----Inline Attachment Follows-----
>
> _______________________________________________
> 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
>
>
Follow ups
References