~james-page/ubuntu/precise/mysql-5.5/misc-fixes

« back to all changes in this revision

Viewing changes to sql/sql_lex.h

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-06-11 07:34:33 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120611073433-l9za2ni4ipp848y3
Tags: 5.5.24-0ubuntu0.12.04.1
* SECURITY UPDATE: Update to 5.5.24 to fix security issues (LP: #1011371)
  - http://dev.mysql.com/doc/refman/5.5/en/news-5-5-24.html

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#include "sql_trigger.h"
25
25
#include "item.h"               /* From item_subselect.h: subselect_union_engine */
26
26
#include "thr_lock.h"                  /* thr_lock_type, TL_UNLOCK */
 
27
#include "mem_root_array.h"
27
28
 
28
29
/* YACC and LEX Definitions */
29
30
 
258
259
#define TL_OPTION_ALIAS         8
259
260
 
260
261
typedef List<Item> List_item;
 
262
typedef Mem_root_array<ORDER*, true> Group_list_ptrs;
261
263
 
262
264
/* SERVERS CACHE CHANGES */
263
265
typedef struct st_lex_server_options
693
695
  enum olap_type olap;
694
696
  /* FROM clause - points to the beginning of the TABLE_LIST::next_local list. */
695
697
  SQL_I_List<TABLE_LIST>  table_list;
696
 
  SQL_I_List<ORDER>       group_list; /* GROUP BY clause. */
 
698
 
 
699
  /*
 
700
    GROUP BY clause.
 
701
    This list may be mutated during optimization (by remove_const()),
 
702
    so for prepared statements, we keep a copy of the ORDER.next pointers in
 
703
    group_list_ptrs, and re-establish the original list before each execution.
 
704
  */
 
705
  SQL_I_List<ORDER>       group_list;
 
706
  Group_list_ptrs        *group_list_ptrs;
 
707
 
697
708
  List<Item>          item_list;  /* list of fields & expressions */
698
709
  List<String>        interval_list;
699
710
  bool                is_item_list_lookup;
870
881
  bool test_limit();
871
882
 
872
883
  friend void lex_start(THD *thd);
873
 
  st_select_lex() : n_sum_items(0), n_child_sum_items(0) {}
 
884
  st_select_lex() : group_list_ptrs(NULL), n_sum_items(0), n_child_sum_items(0)
 
885
  {}
874
886
  void make_empty_select()
875
887
  {
876
888
    init_query();
1311
1323
    */
1312
1324
    BINLOG_STMT_UNSAFE_UPDATE_IGNORE,
1313
1325
 
 
1326
    /**
 
1327
      INSERT... ON DUPLICATE KEY UPDATE on a table with more than one
 
1328
      UNIQUE KEYS  is unsafe.
 
1329
    */
 
1330
    BINLOG_STMT_UNSAFE_INSERT_TWO_KEYS,
 
1331
 
1314
1332
    /* The last element of this enumeration type. */
1315
1333
    BINLOG_STMT_UNSAFE_COUNT
1316
1334
  };