~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/join_cache.h

  • Committer: Brian Aker
  • Date: 2011-02-22 06:12:02 UTC
  • mfrom: (2190.1.6 drizzle-build)
  • Revision ID: brian@tangent.org-20110222061202-k03czxykqy4x9hjs
List update, header fixes, multiple symbols, and David deletes some code.

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
 
4
 *  Copyright (C) 2008 Sun Microsystems, Inc.
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
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();