diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 8429f332803..6e8af2ed4db 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -18,6 +18,7 @@ antony@ltantony.dsl-verizon.net antony@ltantony.mysql.com antony@ltantony.rdg.cyberkinetica.com antony@ltantony.rdg.cyberkinetica.homeunix.net +antony@ltantony.xiphis.org arjen@bitbike.com arjen@co3064164-a.bitbike.com arjen@fred.bitbike.com diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index ff6acb88c57..4042ec027b6 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -268,9 +268,13 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset; #define OPTION_SCHEMA_TABLE (1L << 29) /* Flag set if setup_tables already done */ #define OPTION_SETUP_TABLES_DONE (1L << 30) -/* Thr following is used to detect a conflict with DISTINCT + +/* Options for select set by the yacc parser (stored in lex->options2). */ + + +/* The following is used to detect a conflict with DISTINCT in the user query has requested */ -#define SELECT_ALL (ULL(1) << 32) +#define SELECT_ALL (1L << 0) /* Maximum length of time zone name that we support diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 61f710a2fe5..93d803d999d 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -134,6 +134,7 @@ void lex_start(THD *thd, uchar *buf,uint length) lex->select_lex.link_next= lex->select_lex.slave= lex->select_lex.next= 0; lex->select_lex.link_prev= (st_select_lex_node**)&(lex->all_selects_list); lex->select_lex.options= 0; + lex->select_lex.options2= 0; lex->select_lex.init_order(); lex->select_lex.group_list.empty(); lex->describe= 0; diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 94f1a8e0df4..9ba3db8f388 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -297,6 +297,7 @@ protected: public: ulong options; + ulong options2; /* result of this query can't be cached, bit field, can be : UNCACHEABLE_DEPENDENT diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 25a78178995..e023e8fd5a9 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -4002,7 +4002,7 @@ select_option: } | DISTINCT { - if (Select->options & SELECT_ALL) + if (Select->options2 & SELECT_ALL) { yyerror(ER(ER_SYNTAX_ERROR)); YYABORT; @@ -4035,7 +4035,7 @@ select_option: yyerror(ER(ER_SYNTAX_ERROR)); YYABORT; } - Select->options|= SELECT_ALL; + Select->options2|= SELECT_ALL; } ;