~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/optimizer/key_field.h

  • Committer: Brian Aker
  • Date: 2009-09-27 19:20:46 UTC
  • mfrom: (1108.6.62 optimizer)
  • Revision ID: brian@gaz-20090927192046-prsq4ms1gj8q3aia
Merge Padraig

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
      cond_guard(NULL)
49
49
  {}
50
50
 
 
51
  KeyField(Field *in_field,
 
52
           Item *in_val,
 
53
           uint32_t in_level,
 
54
           uint32_t in_optimize,
 
55
           bool in_eq_func,
 
56
           bool in_null_rejecting,
 
57
           bool *in_cond_guard)
 
58
    :
 
59
      field(in_field),
 
60
      val(in_val),
 
61
      level(in_level),
 
62
      optimize(in_optimize),
 
63
      eq_func(in_eq_func),
 
64
      null_rejecting(in_null_rejecting),
 
65
      cond_guard(in_cond_guard)
 
66
  {}
 
67
 
 
68
  Field *getField()
 
69
  {
 
70
    return field;
 
71
  }
 
72
 
 
73
  void setField(Field *in_field)
 
74
  {
 
75
    field= in_field;
 
76
  }
 
77
 
 
78
  Item *getValue()
 
79
  {
 
80
    return val;
 
81
  }
 
82
 
 
83
  void setValue(Item *in_val)
 
84
  {
 
85
    val= in_val;
 
86
  }
 
87
 
 
88
  uint32_t getLevel()
 
89
  {
 
90
    return level;
 
91
  }
 
92
 
 
93
  void setLevel(uint32_t in_level)
 
94
  {
 
95
    level= in_level;
 
96
  }
 
97
 
 
98
  uint32_t getOptimizeFlags()
 
99
  {
 
100
    return optimize;
 
101
  }
 
102
 
 
103
  void setOptimizeFlags(uint32_t in_opt)
 
104
  {
 
105
    optimize= in_opt;
 
106
  }
 
107
 
 
108
  bool isEqualityCondition() const
 
109
  {
 
110
    return eq_func;
 
111
  }
 
112
 
 
113
  void setEqualityConditionUsed(bool in_val)
 
114
  {
 
115
    eq_func= in_val;
 
116
  }
 
117
 
 
118
  bool rejectNullValues() const
 
119
  {
 
120
    return null_rejecting;
 
121
  }
 
122
 
 
123
  void setRejectNullValues(bool in_val)
 
124
  {
 
125
    null_rejecting= in_val;
 
126
  }
 
127
 
 
128
  bool *getConditionalGuard()
 
129
  {
 
130
    return cond_guard;
 
131
  }
 
132
 
 
133
  void setConditionalGuard(bool *in_cond_guard)
 
134
  {
 
135
    cond_guard= in_cond_guard;
 
136
  }
 
137
 
 
138
private:
 
139
 
51
140
  Field *field;
52
141
  Item *val; /**< May be empty if diff constant */
53
142
  uint32_t level;
59
148
  */
60
149
  bool null_rejecting;
61
150
  bool *cond_guard; /**< @see KeyUse::cond_guard */
 
151
 
62
152
};
63
153
 
64
154
void add_key_fields(JOIN *join,