~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/subselect.h

Merge Revision revid:marko.makela@oracle.com-20100601140355-u3kxl0yl0ljl5tx9 from MySQL InnoDB

Original revid:marko.makela@oracle.com-20100601140355-u3kxl0yl0ljl5tx9

Original Authors: Marko Mäkelä <marko.makela@oracle.com>
Original commit message:
Merge a change from mysql-5.1-innodb:

  ------------------------------------------------------------
  revno: 3491
  revision-id: marko.makela@oracle.com-20100601134335-ccthwwru23kn09qw
  parent: marko.makela@oracle.com-20100601120751-1uq7bbta5n7ts0qr
  committer: Marko Mäkelä <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-06-01 16:43:35 +0300
  message:
    Bug#48197: Concurrent rw_lock_free may cause assertion failure

    rw_lock_t: Remove magic_n unless UNIV_DEBUG is defined.
    rw_lock_free(): Invalidate magic_n only after removing from rw_lock_list.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
3
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems, Inc.
 
4
 *  Copyright (C) 2008 Sun Microsystems
5
5
 *
6
6
 *  This program is free software; you can redistribute it and/or modify
7
7
 *  it under the terms of the GNU General Public License as published by
23
23
/* subselect Item */
24
24
 
25
25
 
26
 
#include <drizzled/comp_creator.h>
27
 
#include <drizzled/item/ref.h>
28
 
#include <drizzled/item/field.h>
29
 
#include <drizzled/item/bin_string.h>
30
 
#include <drizzled/util/test.h>
 
26
#include "drizzled/comp_creator.h"
 
27
#include "drizzled/item/ref.h"
 
28
#include "drizzled/item/field.h"
 
29
#include "drizzled/item/bin_string.h"
 
30
#include "drizzled/util/test.h"
31
31
 
32
32
namespace drizzled
33
33
{
183
183
  double val_real();
184
184
  int64_t val_int ();
185
185
  String *val_str (String *);
186
 
  type::Decimal *val_decimal(type::Decimal *);
 
186
  my_decimal *val_decimal(my_decimal *);
187
187
  bool val_bool();
188
188
  enum Item_result result_type() const;
189
189
  enum_field_types field_type() const;
214
214
};
215
215
 
216
216
/* used in static ALL/ANY optimization */
 
217
class select_max_min_finder_subselect;
217
218
class Item_maxmin_subselect :public Item_singlerow_subselect
218
219
{
219
220
protected:
250
251
  int64_t val_int();
251
252
  double val_real();
252
253
  String *val_str(String*);
253
 
  type::Decimal *val_decimal(type::Decimal *);
 
254
  my_decimal *val_decimal(my_decimal *);
254
255
  bool val_bool();
255
256
  void fix_length_and_dec();
256
257
  virtual void print(String *str, enum_query_type query_type);
367
368
  int64_t val_int();
368
369
  double val_real();
369
370
  String *val_str(String*);
370
 
  type::Decimal *val_decimal(type::Decimal *);
 
371
  my_decimal *val_decimal(my_decimal *);
371
372
  void update_null_value () { (void) val_bool(); }
372
373
  bool val_bool();
373
374
  void top_level_item() { abort_on_null=1; }
511
512
  bool is_executed() const { return executed; }
512
513
  bool no_rows();
513
514
  virtual enum_engine_type engine_type() { return SINGLE_SELECT_ENGINE; }
514
 
  bool save_join_if_explain();
515
515
 
516
516
  friend class subselect_hash_sj_engine;
517
517
  friend class Item_in_subselect;