~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/filesystem_engine/filesystem_engine.cc

  • Committer: Joseph Daly
  • Date: 2010-09-28 01:43:36 UTC
  • mfrom: (1799 staging)
  • mto: (1799.1.1 build)
  • mto: This revision was merged to the branch mainline in revision 1800.
  • Revision ID: jdaly@rx7-20100928014336-wxjexq5c8js3cs8v
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
317
317
  // then columns of this table are added dynamically here.
318
318
  FormatInfo format;
319
319
  format.parseFromTable(&table_proto);
320
 
  if (!format.isTagFormat() || !format.isFileGiven())
 
320
  if (!format.isTagFormat() || !format.isFileGiven()) {
 
321
    close(fd);
321
322
    return EEXIST;
 
323
  }
322
324
 
323
325
  vector< map<string, string> > vm;
324
 
  if (parseTaggedFile(format, vm) != 0)
325
 
    return EEXIST;
326
 
  if (vm.size() == 0)
327
 
    return EEXIST;
 
326
  if (parseTaggedFile(format, vm) != 0) {
 
327
    close(fd);
 
328
 
 
329
    return EEXIST;
 
330
  }
 
331
  if (vm.size() == 0) {
 
332
    close(fd);
 
333
    return EEXIST;
 
334
  }
328
335
 
329
336
  // we don't care what user provides, just clear them all
330
337
  table_proto.clear_field();
341
348
    message::Table::Field::StringFieldOptions *stringoption= field->mutable_string_options();
342
349
    stringoption->set_length(iter->second.length() + 1);
343
350
  }
 
351
 
 
352
  close(fd);
344
353
  return EEXIST;
345
354
}
346
355
 
748
757
      file_buffer_start= file_buff->read_next();
749
758
  }
750
759
  // close update file
751
 
  if (::fsync(update_file_desc) ||
 
760
  if (::fsync(update_file_desc) || 
752
761
      ::close(update_file_desc))
753
762
    goto error;
754
763
  share->update_file_opened= false;
759
768
  if (::rename(update_file_name.c_str(), share->format.getFileName().c_str()))
760
769
    goto error;
761
770
 
762
 
  // reopen the data file
763
 
  file_desc= ::open(share->format.getFileName().c_str(), O_RDONLY);
764
771
  share->needs_reopen= true;
765
 
  if (file_desc < 0)
766
 
    goto error;
767
 
  err= 0;
 
772
 
768
773
error:
769
774
  err= errno;
770
775
  pthread_mutex_unlock(&share->mutex);
771
776
 
772
777
  if (thread_locked)
773
778
    critical_section_exit();
 
779
 
774
780
  return err;
775
781
}
776
782