~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/statement.h

Merge Monty - Updates to pandora-build to support features of gcc 4.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
 */
20
20
 
21
 
#pragma once
 
21
#ifndef DRIZZLED_STATEMENT_H
 
22
#define DRIZZLED_STATEMENT_H
22
23
 
23
24
#include <drizzled/definitions.h>
24
25
#include <drizzled/error.h>
25
26
#include <drizzled/sql_parse.h>
26
27
#include <drizzled/sql_base.h>
27
 
 
28
 
namespace drizzled {
29
 
namespace statement {
 
28
#include <drizzled/show.h>
 
29
 
 
30
namespace drizzled
 
31
{
 
32
 
 
33
class Session;
 
34
class TableList;
 
35
class Item;
 
36
 
 
37
namespace statement
 
38
{
30
39
 
31
40
/**
32
41
 * @class Statement
35
44
class Statement
36
45
{
37
46
public:
38
 
  Statement(Session *in_session) :
39
 
    _session(*in_session)
 
47
  Statement(Session *in_session)
 
48
    : 
 
49
      session(in_session)
40
50
  {}
41
51
 
42
52
  virtual ~Statement() {}
43
53
 
44
 
  void set_command(enum_sql_command);
45
 
  LEX& lex();
46
 
  session::Transactions& transaction();
47
 
 
48
54
  /**
49
55
   * Execute the statement.
50
56
   *
52
58
   */
53
59
  virtual bool execute()= 0;
54
60
 
55
 
  /* True if can be in transaction. Currently only DDL is not.
56
 
     This should go away when DDL commands are within transactions. */
57
 
  virtual bool isTransactional()
58
 
  {
59
 
    return false;
60
 
  }
61
 
 
62
 
  Session& session() const
63
 
  {
64
 
    return _session;
65
 
  }
66
 
 
67
 
  virtual bool isShow() { return false; }
68
 
 
69
 
private:
70
 
  Session& _session;
 
61
  Session *getSession()
 
62
  {
 
63
    return session;
 
64
  }
 
65
 
 
66
protected:
 
67
 
 
68
  /**
 
69
   * A session handler.
 
70
   */
 
71
  Session *session;
71
72
};
72
73
 
73
74
} /* namespace statement */
 
75
 
74
76
} /* namespace drizzled */
75
77
 
 
78
#endif /* DRIZZLED_STATEMENT_H */