~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/join_cache.h

  • Committer: Brian Aker
  • Date: 2010-10-31 23:40:39 UTC
  • mfrom: (1894.1.1 join_cache.h)
  • Revision ID: brian@tangent.org-20101031234039-u51ivp3gjn8lqrsn
Merge in name updates.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
  CacheField and JoinCache is used on full join to cache records in outer
31
31
  table
32
32
*/
33
 
struct CacheField {
 
33
class CacheField {
34
34
  /*
35
35
    Where source data is located (i.e. this points to somewhere in
36
36
    tableX->getInsertRecord())
37
37
  */
 
38
public:
38
39
  unsigned char *str;
39
40
  uint32_t length; /* Length of data at *str, in bytes */
40
41
  uint32_t blob_length; /* Valid IFF blob_field != 0 */
41
42
  Field_blob *blob_field;
42
43
  bool strip; /* true <=> Strip endspaces ?? */
43
 
 
44
44
  Table *get_rowid; /* _ != NULL <=> */
 
45
 
 
46
  CacheField():
 
47
    str(NULL),
 
48
    length(0),
 
49
    blob_length(0),
 
50
    blob_field(NULL),
 
51
    strip(false),
 
52
    get_rowid(NULL)
 
53
  {}
 
54
 
45
55
};
46
56
 
47
 
struct JoinCache
 
57
class JoinCache
48
58
{
 
59
public:
49
60
  unsigned char *buff;
50
61
  unsigned char *pos;    /* Start of free space in the buffer */
51
62
  unsigned char *end;
66
77
  CacheField **blob_ptr;
67
78
  optimizer::SqlSelect *select;
68
79
 
 
80
  JoinCache():
 
81
    buff(NULL),
 
82
    pos(NULL),
 
83
    end(NULL),
 
84
    records(0),
 
85
    record_nr(0),
 
86
    ptr_record(0),
 
87
    fields(0),
 
88
    length(0),
 
89
    blobs(0),
 
90
    field(NULL),
 
91
    blob_ptr(NULL),
 
92
    select(NULL)
 
93
  {}
 
94
 
69
95
  void reset_cache_read();
70
96
  void reset_cache_write();
71
97
  bool store_record_in_cache();