On Sat, Oct 17, 2009 at 10:55 AM, Ingo Strüwing <Ingo.Struewing@stripped> wrote:
> Hi all,
>
> the coding style changes, agreed upon by the MySQL Server coding style
> government committee on 2009-06-26, is now part of the Coding Guidelines
> in the internals manual:
> http://forge.mysql.com/wiki/MySQL_Internals_Coding_Guidelines
I am glad these have been published. I have comments and questions
about bool and my_bool.
>>>
* Functions should return zero on success, and non-zero on error,
so you can do:
>>>
Can this be extended to state that these functions should return int
rather than bool/my_bool? Some functions today use bool/my_bool and
return TRUE on error. I have to read the code for these to figure out
whether TRUE is returned on error.
----------------------------
>>>
bool exists only in C++. In C, you have to use my_bool (which is
char); it has different cast rules than bool:
int c= 256*2;
bool a= c; /* a gets 'true' */
my_bool b= c; /* b gets zero, i.e. 'false': BAD */
my_bool b= test(c); /* b gets 'true': GOOD */
>>>
Given the examples above, my_bool is completely broken, use of it will
introduce bugs and should be removed from the code. Is that scheduled
to be done?