Commit 13122e33 authored by unknown's avatar unknown
Browse files

create select_lex.options2 to store more bits


BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
parent 0de78e66
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+6 −2
Original line number Diff line number Diff line
@@ -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 
+1 −0
Original line number Diff line number Diff line
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -297,6 +297,7 @@ class st_select_lex_node {
public:

  ulong options;
  ulong options2;
  /*
    result of this query can't be cached, bit field, can be :
      UNCACHEABLE_DEPENDENT
+2 −2
Original line number Diff line number Diff line
@@ -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; 
	  }
	;