~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/subselect.h

  • Committer: lbieber
  • Date: 2010-10-06 16:34:16 UTC
  • mfrom: (1816.1.3 build)
  • Revision ID: lbieber@orisndriz08-20101006163416-ea0sl59qgpglk21y
Merge Monty - Change the requirement from either libinnodb to libhaildb. Also, tied it to version 2.2
Merge Andrew - fix bug 650935: remove --compress from all clients
Merge Andrew - fix bug 653471: Add -A to drizzle client
Merge Travis - 621861 = To change C structs to C++ classes in Drizzle

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
27
27
#include "drizzled/item/ref.h"
28
28
#include "drizzled/item/field.h"
29
29
#include "drizzled/item/bin_string.h"
30
 
#include "drizzled/util/test.h"
31
30
 
32
31
namespace drizzled
33
32
{
183
182
  double val_real();
184
183
  int64_t val_int ();
185
184
  String *val_str (String *);
186
 
  type::Decimal *val_decimal(type::Decimal *);
 
185
  my_decimal *val_decimal(my_decimal *);
187
186
  bool val_bool();
188
187
  enum Item_result result_type() const;
189
188
  enum_field_types field_type() const;
251
250
  int64_t val_int();
252
251
  double val_real();
253
252
  String *val_str(String*);
254
 
  type::Decimal *val_decimal(type::Decimal *);
 
253
  my_decimal *val_decimal(my_decimal *);
255
254
  bool val_bool();
256
255
  void fix_length_and_dec();
257
256
  virtual void print(String *str, enum_query_type query_type);
368
367
  int64_t val_int();
369
368
  double val_real();
370
369
  String *val_str(String*);
371
 
  type::Decimal *val_decimal(type::Decimal *);
 
370
  my_decimal *val_decimal(my_decimal *);
372
371
  void update_null_value () { (void) val_bool(); }
373
372
  bool val_bool();
374
373
  void top_level_item() { abort_on_null=1; }
430
429
    res_field_type= DRIZZLE_TYPE_VARCHAR;
431
430
    maybe_null= 0;
432
431
  }
433
 
  virtual ~subselect_engine() {} // to satisfy compiler
 
432
  virtual ~subselect_engine() {}; // to satisfy compiler
434
433
  virtual void cleanup()= 0;
435
434
 
436
435
  /*
463
462
  */
464
463
  virtual int exec()= 0;
465
464
  virtual uint32_t cols()= 0; /* return number of columns in select */
466
 
  virtual bool uncacheable()= 0; /* query is uncacheable */
467
 
  virtual bool uncacheable(uint32_t bit_pos)= 0; /* query is uncacheable */
 
465
  virtual uint8_t uncacheable()= 0; /* query is uncacheable */
468
466
  enum Item_result type() { return res_type; }
469
467
  enum_field_types field_type() { return res_field_type; }
470
468
  virtual void exclude()= 0;
471
 
  virtual bool may_be_null() { return maybe_null; }
 
469
  virtual bool may_be_null() { return maybe_null; };
472
470
  virtual table_map upper_select_const_tables()= 0;
473
471
  static table_map calc_const_tables(TableList *);
474
472
  virtual void print(String *str, enum_query_type query_type)= 0;
501
499
  void fix_length_and_dec(Item_cache** row);
502
500
  int exec();
503
501
  uint32_t cols();
504
 
  bool uncacheable();
505
 
  bool uncacheable(uint32_t bit_pos);
 
502
  uint8_t uncacheable();
506
503
  void exclude();
507
504
  table_map upper_select_const_tables();
508
505
  virtual void print (String *str, enum_query_type query_type);
512
509
  bool is_executed() const { return executed; }
513
510
  bool no_rows();
514
511
  virtual enum_engine_type engine_type() { return SINGLE_SELECT_ENGINE; }
515
 
  bool save_join_if_explain();
516
512
 
517
513
  friend class subselect_hash_sj_engine;
518
514
  friend class Item_in_subselect;
531
527
  void fix_length_and_dec(Item_cache** row);
532
528
  int exec();
533
529
  uint32_t cols();
534
 
  bool uncacheable();
535
 
  bool uncacheable(uint32_t bit_pos);
 
530
  uint8_t uncacheable();
536
531
  void exclude();
537
532
  table_map upper_select_const_tables();
538
533
  virtual void print (String *str, enum_query_type query_type);
589
584
  void fix_length_and_dec(Item_cache** row);
590
585
  int exec();
591
586
  uint32_t cols() { return 1; }
592
 
  bool uncacheable() { return true; }
593
 
  bool uncacheable(uint32_t) { return true; }
 
587
  uint8_t uncacheable() { return UNCACHEABLE_DEPENDENT; }
594
588
  void exclude();
595
589
  table_map upper_select_const_tables() { return 0; }
596
590
  virtual void print (String *str, enum_query_type query_type);