A questions regarding the testcase
is there anything, that should be added, so the test will automatically
run with different engines? or does it somehow if you run all tests? (I
only did run i standalone).
If there is a positive answer, I can go add a reg-expression, so the
output form "show create table" is not failing on other engines.
Martin Friebe wrote:
> Hi Chad,
>
> attached is a patch and a test case. The test case is a bit over-sized
> (hope I havent missed any essential case), but I rather cover more
> than less....
>
> Seems to work fine on my box (passes the test suite). If it finds
> approval, shall I attach it to the original bug, in the bug system?
>
> Best Regards
> Martin
>
>
> Chad MILLER wrote:
>
>> On 16 Mar 2007, at 15:42, Martin Friebe wrote:
>>
>>> I believe to remember there have been feature requests, about the
>>> placement options for the * in the select
>>> ( http://bugs.mysql.com/bug.php?id=26066 )
>>>
>>> This appears to be fixable in the parser with little effort.
>>
>>
>>
>> Hi Martin. Offhand, I don't know why this special case exists.
>> Looking at the parser, I suspect that it's probably only a case of
>> someone wishing to avoid shift/reduce conflicts and not thinking of
>> these cases. I very much would like to see a patch, along with some
>> test results that show that such a construction doesn't confuse the
>> optimizer, which is the only potential problem that comes to mind.
>>
>> I also say that "SELECT *, *, *, * FROM tablename" should be allowed
>> also.
>>
>> - chad
>>
>> --
>> Chad Miller, Software Developer chad@stripped
>> MySQL Inc., www.mysql.com
>> Orlando, Florida, USA 13-20z, UTC-0500
>> Office: +1 408 213 6740 sip:6740@stripped
>>
>>
>
>------------------------------------------------------------------------
>
>*** sql/sql_yacc.yy Wed Mar 7 09:24:42 2007
>--- ../mysql-5.0.bk-asterisk/sql/sql_yacc.yy Fri Mar 16 19:20:31 2007
>***************
>*** 4421,4445 ****
> }
> ;
>
> select_item_list:
> select_item_list ',' select_item
>! | select_item
>! | '*'
> {
> THD *thd= YYTHD;
> if (add_item_to_list(thd,
> new
> Item_field(&thd->lex->current_select->
> context,
> NULL, NULL, "*")))
> MYSQL_YYABORT;
> (thd->lex->current_select->with_wild)++;
>! };
>!
>!
>! select_item:
>! remember_name select_item2 remember_end select_alias
> {
> if (add_item_to_list(YYTHD, $2))
> MYSQL_YYABORT;
> if ($4.str)
> {
>--- 4421,4444 ----
> }
> ;
>
> select_item_list:
> select_item_list ',' select_item
>! | select_item;
>!
>! select_item:
>! '*'
> {
> THD *thd= YYTHD;
> if (add_item_to_list(thd,
> new
> Item_field(&thd->lex->current_select->
> context,
> NULL, NULL, "*")))
> MYSQL_YYABORT;
> (thd->lex->current_select->with_wild)++;
>! }
>! | remember_name select_item2 remember_end select_alias
> {
> if (add_item_to_list(YYTHD, $2))
> MYSQL_YYABORT;
> if ($4.str)
> {
>
>
>
>------------------------------------------------------------------------
>
>
>
>