~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.cc

Merged captain branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2203
2203
  var->save_result.storage_engine= NULL;
2204
2204
  if (var->value->result_type() == STRING_RESULT)
2205
2205
  {
2206
 
    LEX_STRING engine_name;
2207
 
    StorageEngine *engine;
2208
 
    if (!(res=var->value->val_str(&str)) ||
2209
 
        !(engine_name.str= (char *)res->ptr()) ||
2210
 
        !(engine_name.length= res->length()) ||
2211
 
              !(var->save_result.storage_engine=
2212
 
            ha_resolve_by_name(session, &engine_name)) ||
2213
 
        !(engine= var->save_result.storage_engine))
 
2206
    res= var->value->val_str(&str);
 
2207
    if (res == NULL || res->ptr() == NULL)
2214
2208
    {
2215
 
      value= res ? res->c_ptr() : "NULL";
 
2209
      value= "NULL";
2216
2210
      goto err;
2217
2211
    }
 
2212
    else
 
2213
    {
 
2214
      const std::string engine_name(res->ptr());
 
2215
      StorageEngine *engine;
 
2216
      var->save_result.storage_engine= ha_resolve_by_name(session, engine_name);
 
2217
      if (var->save_result.storage_engine == NULL)
 
2218
      {
 
2219
        value= res->c_ptr();
 
2220
        goto err;
 
2221
      }
 
2222
      engine= var->save_result.storage_engine;
 
2223
    }
2218
2224
    return 0;
2219
2225
  }
2220
2226
  value= "unknown";