~thomir-deactivatedaccount/drizzle/drizzle-fix-bug653747

« back to all changes in this revision

Viewing changes to client/drizzledump_mysql.cc

  • Committer: Brian Aker
  • Date: 2010-10-10 02:07:52 UTC
  • mfrom: (1827.2.3 staging)
  • Revision ID: brian@tangent.org-20101010020752-ktv73isay5dxtvp3
Merge in switch on table_share_instance inheritance.

Show diffs side-by-side

added added

removed removed

Lines of Context:
188
188
    field->isNull= (strcmp(row[3], "YES") == 0) ? true : false;
189
189
    if (row[2])
190
190
    {
191
 
      field->defaultValue= row[2];
 
191
      if (field->convertDateTime)
 
192
      {
 
193
        field->dateTimeConvert(row[2]);
 
194
      }
 
195
      else
 
196
        field->defaultValue= row[2];
192
197
    }
193
198
    else
194
199
     field->defaultValue= "";
195
200
 
196
 
    if (field->convertDateTime)
197
 
    {
198
 
      field->dateTimeConvert();
199
 
    }
200
 
 
201
 
 
202
201
    field->isAutoIncrement= (strcmp(row[8], "auto_increment") == 0) ? true : false;
203
202
    field->defaultIsNull= field->isNull;
204
203
    field->length= (row[4]) ? boost::lexical_cast<uint32_t>(row[4]) : 0;
214
213
}
215
214
 
216
215
 
217
 
void DrizzleDumpFieldMySQL::dateTimeConvert(void)
 
216
void DrizzleDumpFieldMySQL::dateTimeConvert(const char* oldDefault)
218
217
{
219
218
  boost::match_flag_type flags = boost::match_default;
220
219
 
221
 
  if (strcmp(defaultValue.c_str(), "CURRENT_TIMESTAMP") == 0)
 
220
  if (strcmp(oldDefault, "CURRENT_TIMESTAMP") == 0)
 
221
  {
 
222
    defaultValue= oldDefault;
222
223
    return;
 
224
  }
223
225
 
224
226
  if (type.compare("INT") == 0)
225
227
  {
226
228
    /* We were a TIME, now we are an INT */
227
 
    std::string ts(defaultValue);
 
229
    std::string ts(oldDefault);
228
230
    boost::posix_time::time_duration td(boost::posix_time::duration_from_string(ts));
229
231
    defaultValue= boost::lexical_cast<std::string>(td.total_seconds());
230
232
    return;
232
234
 
233
235
  boost::regex date_regex("(0000|-00)");
234
236
 
235
 
  if (regex_search(defaultValue, date_regex, flags))
 
237
  if (not regex_search(oldDefault, date_regex, flags))
 
238
  {
 
239
    defaultValue= oldDefault;
 
240
  }
 
241
  else
236
242
  {
237
243
    defaultIsNull= true;
238
244
    defaultValue="";