~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to client/drizzledump_mysql.cc

  • Committer: lbieber
  • Date: 2010-10-05 22:23:12 UTC
  • mfrom: (1813.1.4 build)
  • Revision ID: lbieber@orisndriz08-20101005222312-weuq0ardk3gcryau
Merge Travis - 621861 - convert structs to classes
Merge Billy - 621331 - Replace use of stringstream with boost::lexical_cast
Merge Travis - 621861 = To change C structs to C++ classes in Drizzle
Merge Andrew - fix bug 653300 - Syntax error on inport of a SQL file produced by drizzledump

Show diffs side-by-side

added added

removed removed

Lines of Context:
185
185
    field->convertDateTime= false;
186
186
    /* Also sets collation */
187
187
    field->setType(row[1], row[8]);
 
188
    field->isNull= (strcmp(row[3], "YES") == 0) ? true : false;
188
189
    if (row[2])
189
190
    {
190
191
      if (field->convertDateTime)
197
198
    else
198
199
     field->defaultValue= "";
199
200
 
200
 
    field->isNull= (strcmp(row[3], "YES") == 0) ? true : false;
201
201
    field->isAutoIncrement= (strcmp(row[8], "auto_increment") == 0) ? true : false;
202
202
    field->defaultIsNull= field->isNull;
203
203
    field->length= (row[4]) ? boost::lexical_cast<uint32_t>(row[4]) : 0;
232
232
    return;
233
233
  }
234
234
 
235
 
  boost::regex date_regex("([0-9]{3}[1-9]-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]))");
 
235
  boost::regex date_regex("(0000|-00)");
236
236
 
237
 
  if (regex_search(oldDefault, date_regex, flags))
 
237
  if (not regex_search(oldDefault, date_regex, flags))
238
238
  {
239
239
    defaultValue= oldDefault;
240
240
  }
243
243
    defaultIsNull= true;
244
244
    defaultValue="";
245
245
  }
 
246
  isNull= true;
246
247
}
247
248
 
248
249
 
481
482
{
482
483
  boost::match_flag_type flags = boost::match_default;
483
484
  std::string output;
484
 
  boost::regex date_regex("([0-9]{3}[1-9]-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]))");
 
485
  boost::regex date_regex("(0000|-00)");
485
486
 
486
 
  if (regex_search(oldDate, date_regex, flags))
 
487
  if (not regex_search(oldDate, date_regex, flags))
487
488
  {
488
489
    output.push_back('\'');
489
490
    output.append(oldDate);
495
496
  return output;
496
497
}
497
498
 
498
 
std::ostream& DrizzleDumpDataMySQL::checkDateTime(std::ostream &os, const char* item, uint32_t field) const
 
499
std::string DrizzleDumpDataMySQL::checkDateTime(const char* item, uint32_t field) const
499
500
{
 
501
  std::string ret;
 
502
 
500
503
  if (table->fields[field]->convertDateTime)
501
504
  {
502
505
    if (table->fields[field]->type.compare("INT") == 0)
503
 
      os << convertTime(item);
 
506
      ret= boost::lexical_cast<std::string>(convertTime(item));
504
507
    else
505
 
      os << convertDate(item);
 
508
      ret= convertDate(item);
506
509
  }
507
 
  return os;
 
510
  return ret;
508
511
}
509
512