*** sql/sql_yacc.yy Sun Mar 18 15:38:11 2007 --- ../mysql-5.0.bk-qualified_asterisk/sql/sql_yacc.yy Sun Mar 18 16:19:44 2007 *************** *** 1063,1071 **** replace_lock_option opt_low_priority insert_lock_option load_data_lock %type literal text_literal insert_ident order_ident ! simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr variable variable_aux bool_term bool_factor bool_test bool_pri predicate bit_expr bit_term bit_factor value_expr term factor table_wild simple_expr udf_expr expr_or_default set_expr_or_default interval_expr --- 1063,1071 ---- replace_lock_option opt_low_priority insert_lock_option load_data_lock %type literal text_literal insert_ident order_ident ! simple_ident expr opt_expr opt_else sum_expr in_sum_expr variable variable_aux bool_term bool_factor bool_test bool_pri predicate bit_expr bit_term bit_factor value_expr term factor table_wild simple_expr udf_expr expr_or_default set_expr_or_default interval_expr *************** *** 4435,4444 **** (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) --- 4435,4450 ---- (thd->lex->current_select->with_wild)++; }; + /* need to remember_name for table to avoid shift/reduce conflict */ select_item: ! remember_name table_wild remember_end ! { ! if (add_item_to_list(YYTHD, $2)) ! MYSQL_YYABORT; ! } ! | remember_name expr remember_end select_alias { if (add_item_to_list(YYTHD, $2)) MYSQL_YYABORT; if ($4.str) *************** *** 4458,4469 **** { $$=(char*) Lex->tok_start; }; remember_end: { $$=(char*) Lex->tok_end; }; - - select_item2: - table_wild { $$=$1; } /* table.* */ - | expr { $$=$1; }; select_alias: /* empty */ { $$=null_lex_str;} | AS ident { $$=$2; } --- 4464,4471 ---- *** mysql-test/t/alias.test Wed Mar 14 11:05:37 2007 --- ../mysql-5.0.bk-qualified_asterisk/mysql-test/t/alias.test Sun Mar 18 16:25:31 2007 *************** *** 62,69 **** --- 62,76 ---- # This died because we used the field Kundentyp twice SELECT ELT(FIELD(kundentyp,'PP','PPA','PG','PGA','FK','FKA','FP','FPA','K','KA','V','VA',''), 'Privat (Private Nutzung)','Privat (Private Nutzung) Sitz im Ausland','Privat (geschaeftliche Nutzung)','Privat (geschaeftliche Nutzung) Sitz im Ausland','Firma (Kapitalgesellschaft)','Firma (Kapitalgesellschaft) Sitz im Ausland','Firma (Personengesellschaft)','Firma (Personengesellschaft) Sitz im Ausland','oeff. rechtl. Koerperschaft','oeff. rechtl. Koerperschaft Sitz im Ausland','Eingetragener Verein','Eingetragener Verein Sitz im Ausland','Typ unbekannt') AS Kundentyp ,kategorie FROM t1 WHERE hdl_nr < 2000000 AND kategorie IN ('Prepaid','Mobilfunk') AND st_klasse = 'Workflow' GROUP BY kundentyp ORDER BY kategorie; + --error ER_PARSE_ERROR + select t1.* as 'with_alias' from t1; + --error ER_PARSE_ERROR + select p_nr, t1.* as 'with_alias' from t1; + --error ER_PARSE_ERROR + select * as 'with_alias' from t1; + drop table t1; # # test case for #570 *** mysql-test/r/alias.result Wed Mar 14 11:06:06 2007 --- ../mysql-5.0.bk-qualified_asterisk/mysql-test/r/alias.result Sun Mar 18 16:25:36 2007 *************** *** 59,66 **** --- 59,72 ---- Kundentyp kategorie Privat (Private Nutzung) Mobilfunk Warnings: Warning 1052 Column 'kundentyp' in group statement is ambiguous + select t1.* as 'with_alias' from t1; + ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as 'with_alias' from t1' at line 1 + select p_nr, t1.* as 'with_alias' from t1; + ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as 'with_alias' from t1' at line 1 + select * as 'with_alias' from t1; + ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as 'with_alias' from t1' at line 1 drop table t1; CREATE TABLE t1 ( AUFNR varchar(12) NOT NULL default '', PLNFL varchar(6) NOT NULL default '',