~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/user_var_entry.cc

  • Committer: Olaf van der Spek
  • Date: 2011-10-26 09:58:25 UTC
  • mto: This revision was merged to the branch mainline in revision 2456.
  • Revision ID: olafvdspek@gmail.com-20111026095825-kknxn203s8bku10g
Refactor

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
/** Get the value of a variable as a double. */
31
31
 
32
 
double user_var_entry::val_real(bool *null_value)
 
32
double user_var_entry::val_real(bool *null_value) const
33
33
{
34
 
  if ((*null_value= (value == 0)))
 
34
  if ((*null_value= not value))
35
35
    return 0.0;
36
36
 
37
 
  switch (type) {
 
37
  switch (type) 
 
38
  {
38
39
  case REAL_RESULT:
39
40
    return *(double*) value;
40
41
 
63
64
 
64
65
int64_t user_var_entry::val_int(bool *null_value) const
65
66
{
66
 
  if ((*null_value= (value == 0)))
67
 
    return 0L;
 
67
  if ((*null_value= not value))
 
68
    return 0;
68
69
 
69
 
  switch (type) {
 
70
  switch (type) 
 
71
  {
70
72
  case REAL_RESULT:
71
73
    return (int64_t) *(double*) value;
72
74
 
91
93
    break;
92
94
  }
93
95
 
94
 
  return 0L;                                    // Impossible
 
96
  assert(false);
 
97
  return 0;                                     // Impossible
95
98
}
96
99
 
97
100
 
98
101
/** Get the value of a variable as a string. */
99
102
 
100
 
String *user_var_entry::val_str(bool *null_value, String *str,
101
 
                                uint32_t decimals)
 
103
String *user_var_entry::val_str(bool *null_value, String *str, uint32_t decimals) const
102
104
{
103
105
  if ((*null_value= not value))
104
106
    return NULL;
129
131
    break;
130
132
  }
131
133
 
132
 
  return(str);
 
134
  return str;
133
135
}
134
136
 
135
137
/** Get the value of a variable as a decimal. */
136
138
 
137
 
type::Decimal *user_var_entry::val_decimal(bool *null_value, type::Decimal *val)
 
139
type::Decimal *user_var_entry::val_decimal(bool *null_value, type::Decimal *val) const
138
140
{
139
 
  if ((*null_value= (value == 0)))
 
141
  if ((*null_value= not value))
140
142
    return 0;
141
143
 
142
 
  switch (type) {
 
144
  switch (type) 
 
145
  {
143
146
  case REAL_RESULT:
144
147
    double2_class_decimal(E_DEC_FATAL_ERROR, *(double*) value, val);
145
148
    break;
161
164
    break;
162
165
  }
163
166
 
164
 
  return(val);
 
167
  return val;
165
168
}
166
169
 
167
170
/**