Hi Sergei,
I studied lex and yacc and understood complete parser written in sql_yacc.yy. Also went through the constants and symbols declared in lex.h, sql_yacc.h, sql_cmd.h.
I found out that OR REPLACE and IF NOT EXISTS is already implemented for tables. The IF NOT EXISTS rule is also defined for index in yacc file but not handled in the execution code. And for other object types we need to add the rules in yacc files and also need to change the code in "mysql_create_<object_type>" functions in respective files.
The OR REPLACE and IF NOT EXISTS are handled in the create execution itself. I found two flags in LEX class which are used for the purpose, create_info.options and check_exists.
So, are all the things that I have compiled correct?
I have an initial draft of my proposal ready. I will upload it on the GSOC portal today, please review. Should I also email the same to you?
Looking forward to your reply.
Thanks,
Sriram