diff options
author | unknown <ndbdev@dl145c.mysql.com> | 2005-09-13 05:33:11 +0200 |
---|---|---|
committer | unknown <ndbdev@dl145c.mysql.com> | 2005-09-13 05:33:11 +0200 |
commit | 0260e3dcc16544d73ae2a3e8996fa97ad5d288dd (patch) | |
tree | dc1114386c562d2cbb719f0a1bca93f08a3afefe /sql/sql_yacc.yy | |
parent | 54e99aa58e826f15da7b8f8c071d02960c37a210 (diff) | |
parent | b50eb4cd42d2d5073afb2af5af8b19c825a9cca1 (diff) | |
download | mariadb-git-0260e3dcc16544d73ae2a3e8996fa97ad5d288dd.tar.gz |
Merge
configure.in:
Auto merged
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
storage/ndb/src/ndbapi/SignalSender.cpp:
Auto merged
sql/sql_table.cc:
SCCS merged
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index fc877511357..b87fc9ffa36 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -670,6 +670,9 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %token YEAR_SYM %token ZEROFILL +%left JOIN_SYM +/* A dummy token to force the priority of table_ref production in a join. */ +%left TABLE_REF_PRIORITY %left SET_VAR %left OR_OR_SYM OR_SYM OR2_SYM XOR %left AND_SYM AND_AND_SYM @@ -5776,7 +5779,13 @@ derived_table_list: ; join_table: - table_ref normal_join table_ref { YYERROR_UNLESS($1 && ($$=$3)); } + /* + Evaluate production 'table_ref' before 'normal_join' so that + [INNER | CROSS] JOIN is properly nested as other left-associative + joins. + */ + table_ref %prec TABLE_REF_PRIORITY normal_join table_ref + { YYERROR_UNLESS($1 && ($$=$3)); } | table_ref STRAIGHT_JOIN table_factor { YYERROR_UNLESS($1 && ($$=$3)); $3->straight=1; } | table_ref normal_join table_ref |