create select_lex.options2 to store more bits

This commit is contained in:
antony@ltantony.xiphis.org 2005-05-12 18:09:32 +01:00
parent 12b4fb158c
commit 7b202354aa
5 changed files with 11 additions and 4 deletions

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -297,6 +297,7 @@ protected:
public:
ulong options;
ulong options2;
/*
result of this query can't be cached, bit field, can be :
UNCACHEABLE_DEPENDENT

View file

@ -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;
}
;