summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorunknown <ndbdev@dl145c.mysql.com>2005-09-13 05:33:11 +0200
committerunknown <ndbdev@dl145c.mysql.com>2005-09-13 05:33:11 +0200
commit0260e3dcc16544d73ae2a3e8996fa97ad5d288dd (patch)
treedc1114386c562d2cbb719f0a1bca93f08a3afefe /sql/sql_yacc.yy
parent54e99aa58e826f15da7b8f8c071d02960c37a210 (diff)
parentb50eb4cd42d2d5073afb2af5af8b19c825a9cca1 (diff)
downloadmariadb-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.yy11
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