~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/function/min_max.cc

  • Committer: Brian Aker
  • Date: 2010-12-18 02:06:13 UTC
  • Revision ID: brian@tangent.org-20101218020613-8lxhcvsy812bu960
Formatting + remove default from switch/case.

Show diffs side-by-side

added added

removed removed

Lines of Context:
141
141
  }
142
142
  switch (cmp_type) {
143
143
  case INT_RESULT:
144
 
  {
145
 
    int64_t nr=val_int();
146
 
    if (null_value)
147
 
      return 0;
148
 
    str->set_int(nr, unsigned_flag, &my_charset_bin);
149
 
    return str;
150
 
  }
 
144
    {
 
145
      int64_t nr=val_int();
 
146
      if (null_value)
 
147
        return 0;
 
148
      str->set_int(nr, unsigned_flag, &my_charset_bin);
 
149
      return str;
 
150
    }
 
151
 
151
152
  case DECIMAL_RESULT:
152
 
  {
153
 
    my_decimal dec_buf, *dec_val= val_decimal(&dec_buf);
154
 
    if (null_value)
155
 
      return 0;
156
 
    my_decimal2string(E_DEC_FATAL_ERROR, dec_val, 0, 0, 0, str);
157
 
    return str;
158
 
  }
 
153
    {
 
154
      my_decimal dec_buf, *dec_val= val_decimal(&dec_buf);
 
155
      if (null_value)
 
156
        return 0;
 
157
      my_decimal2string(E_DEC_FATAL_ERROR, dec_val, 0, 0, 0, str);
 
158
      return str;
 
159
    }
 
160
 
159
161
  case REAL_RESULT:
160
 
  {
161
 
    double nr= val_real();
162
 
    if (null_value)
163
 
      return 0;
164
 
    str->set_real(nr,decimals,&my_charset_bin);
165
 
    return str;
166
 
  }
 
162
    {
 
163
      double nr= val_real();
 
164
      if (null_value)
 
165
        return 0;
 
166
      str->set_real(nr,decimals,&my_charset_bin);
 
167
      return str;
 
168
    }
 
169
 
167
170
  case STRING_RESULT:
168
 
  {
169
 
    String *res= NULL;
170
 
 
171
 
    for (uint32_t i=0; i < arg_count ; i++)
172
171
    {
173
 
      if (i == 0)
174
 
        res=args[i]->val_str(str);
175
 
      else
 
172
      String *res= NULL;
 
173
 
 
174
      for (uint32_t i=0; i < arg_count ; i++)
176
175
      {
177
 
        String *res2;
178
 
        res2= args[i]->val_str(res == str ? &tmp_value : str);
179
 
        if (res2)
180
 
        {
181
 
          int cmp= sortcmp(res,res2,collation.collation);
182
 
          if ((cmp_sign < 0 ? cmp : -cmp) < 0)
183
 
            res=res2;
184
 
        }
 
176
        if (i == 0)
 
177
          res=args[i]->val_str(str);
 
178
        else
 
179
        {
 
180
          String *res2;
 
181
          res2= args[i]->val_str(res == str ? &tmp_value : str);
 
182
          if (res2)
 
183
          {
 
184
            int cmp= sortcmp(res,res2,collation.collation);
 
185
            if ((cmp_sign < 0 ? cmp : -cmp) < 0)
 
186
              res=res2;
 
187
          }
 
188
        }
 
189
        if ((null_value= args[i]->null_value))
 
190
          return 0;
185
191
      }
186
 
      if ((null_value= args[i]->null_value))
187
 
        return 0;
 
192
      res->set_charset(collation.collation);
 
193
      return res;
188
194
    }
189
 
    res->set_charset(collation.collation);
190
 
    return res;
191
 
  }
 
195
 
192
196
  case ROW_RESULT:
193
 
  default:
194
197
    // This case should never be chosen
195
198
    assert(0);
196
199
    return 0;
197
200
  }
 
201
 
198
202
  return 0;                                     // Keep compiler happy
199
203
}
200
204