~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_lex.h

  • Committer: Lee Bieber
  • Date: 2011-03-13 16:37:38 UTC
  • mfrom: (2227.4.18 session2)
  • Revision ID: kalebral@gmail.com-20110313163738-7ti21zk40o2xi3ew
Merge Olaf - Refactor Session

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
#include <drizzled/function/math/real.h>
30
30
#include <drizzled/key_part_spec.h>
31
31
#include <drizzled/index_hint.h>
32
 
#include <drizzled/statement.h>
33
32
#include <drizzled/optimizer/explain_plan.h>
34
33
 
35
34
#include <bitset>
38
37
namespace drizzled {
39
38
 
40
39
namespace plugin { class Function; }
 
40
namespace statement { class Statement; }
41
41
 
42
42
class st_lex_symbol;
43
43
class select_result_interceptor;
67
67
#  if defined(DRIZZLE_LEX)
68
68
#   include <drizzled/foreign_key.h>
69
69
#   include <drizzled/lex_symbol.h>
 
70
#   include <drizzled/comp_creator.h>
70
71
#   include <drizzled/sql_yacc.h>
71
72
#   define LEX_YYSTYPE YYSTYPE *
72
73
#  else
246
247
      UNCACHEABLE_PREPARE
247
248
  */
248
249
  std::bitset<8> uncacheable;
249
 
  enum sub_select_type linkage;
 
250
  sub_select_type linkage;
250
251
  bool no_table_names_allowed; /* used for global order by */
251
252
  bool no_error; /* suppress error message (convert it to warnings) */
252
253
 
469
470
  Item::cond_result having_value;
470
471
  /* point on lex in which it was created, used in view subquery detection */
471
472
  LEX *parent_lex;
472
 
  enum olap_type olap;
 
473
  olap_type olap;
473
474
  /* FROM clause - points to the beginning of the TableList::next_local list. */
474
475
  SQL_LIST table_list;
475
476
  SQL_LIST group_list; /* GROUP BY clause. */
487
488
    by TableList::next_leaf, so leaf_tables points to the left-most leaf.
488
489
  */
489
490
  TableList *leaf_tables;
490
 
  enum drizzled::optimizer::select_type type; /* type of select for EXPLAIN */
 
491
  drizzled::optimizer::select_type type; /* type of select for EXPLAIN */
491
492
 
492
493
  SQL_LIST order_list;                /* ORDER clause */
493
494
  SQL_LIST *gorder_list;
662
663
  */
663
664
  void cleanup_all_joins(bool full);
664
665
 
665
 
  void set_index_hint_type(enum index_hint_type type, index_clause_map clause);
 
666
  void set_index_hint_type(index_hint_type type, index_clause_map clause);
666
667
 
667
668
  /*
668
669
   Add a index hint to the tagged list of hints. The type and clause of the
684
685
 
685
686
private:
686
687
  /* current index hint kind. used in filling up index_hints */
687
 
  enum index_hint_type current_index_hint_type;
 
688
  index_hint_type current_index_hint_type;
688
689
  index_clause_map current_index_hint_clause;
689
690
  /* a list of USE/FORCE/IGNORE INDEX */
690
691
  List<Index_hint> *index_hints;
810
811
  /* list of all Select_Lex */
811
812
  Select_Lex *all_selects_list;
812
813
 
813
 
  /* This is the "scale" for DECIMAL (S,P) notation */ 
 
814
  /* This is the "scale" for DECIMAL (S,P) notation */
814
815
  char *length;
815
816
  /* This is the decimal precision in DECIMAL(S,P) notation */
816
817
  char *dec;
817
 
  
 
818
 
818
819
  /**
819
 
   * This is used kind of like the "ident" member variable below, as 
 
820
   * This is used kind of like the "ident" member variable below, as
820
821
   * a place to store certain names of identifiers.  Unfortunately, it
821
822
   * is used differently depending on the Command (SELECT on a derived
822
823
   * table vs CREATE)
832
833
   * or a named savepoint.  It should probably be refactored out into
833
834
   * the eventual Command class built for the Keycache and Savepoint
834
835
   * commands.
835
 
   */ 
 
836
   */
836
837
  LEX_STRING ident;
837
838
 
838
839
  unsigned char* yacc_yyss, *yacc_yyvs;
1032
1033
    return _exists;
1033
1034
  }
1034
1035
 
1035
 
private: 
 
1036
private:
1036
1037
  bool cacheable;
1037
1038
  bool sum_expr_used;
1038
1039
  message::Table *_create_table;