Changeset 31188

Show
Ignore:
Timestamp:
09.12.2016 21:24:55 (3 years ago)
Author:
ak19
Message:

This commit is related to but not specific to the upcoming commit to do with the new oaiinfo db and its directly affected files. This commit: New remove and rename (move) methods in DB package to clean up main db file and any additional db files created by any specific infodbtype. The new methods in dbutil/jdbm.pm are not called, for some reason. Requires more investigation, but committing for now.

Location:
main/trunk/greenstone2/perllib
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/DBDrivers/BaseDBDriver.pm

    r30517 r31188  
    344344 
    345345 
     346## @function rename_db_file_to(string, string) => void 
     347# 
     348sub rename_db_file_to { 
     349    my $self = shift(@_); 
     350    my ($srcpath, $destpath) = @_; 
     351 
     352    # rename basic db file 
     353    &FileUtils::moveFiles($srcpath, $destpath); 
     354 
     355    # subclass should rename any additional files that the specific dbtype creates 
     356} 
     357## rename_db_file_to(string, string) => void ## 
     358 
     359## @function remove_db_file(string) => void 
     360# 
     361sub remove_db_file { 
     362    my $self = shift(@_); 
     363    my ($db_filepath) = @_; 
     364     
     365    # remove basic db file 
     366    &FileUtils::removeFiles($db_filepath); 
     367 
     368    # subclass must rename any additional files that the specific dbtype creates (e.g. transaction log files) 
     369} 
     370## remove_db_file(string, string) => void ## 
     371 
     372 
    346373## @function supportsDatestamp(void) => integer 
    347374# 
  • main/trunk/greenstone2/perllib/DBDrivers/GDBM.pm

    r30370 r31188  
    7070# Handled by BaseDBDriver 
    7171# sub get_infodb_file_path(string, string) => string 
     72# sub rename_db_file_to(string, string) => void 
     73# sub remove_db_file(string) => void 
    7274 
    7375# Handled by 70HyphenFormat 
  • main/trunk/greenstone2/perllib/DBDrivers/JDBM.pm

    r30517 r31188  
    8383# ----------------------------------------------------------------------------- 
    8484 
    85 # When DBUtil::* is properly structured with inheritence, then 
     85# When DBUtil::* is properly structured with inheritance, then 
    8686# much of this code (along with GDBM and GDBM-TXT-GZ) can be grouped into 
    8787# a shared base class.  Really it is only the the command that needs to 
     
    9191# sub get_infodb_file_path {} 
    9292 
    93 # Handles by 70HyphenFormat 
     93# Handled by 70HyphenFormat 
    9494# sub open_infodb_write_handle(string, string?) => filehandle 
    9595# sub close_infodb_write_handle(filehandle) => void 
  • main/trunk/greenstone2/perllib/dbutil.pm

    r30517 r31188  
    564564## write_infodb_rawentry(string, *) => void ## 
    565565 
     566## @function rename_db_file_to(string, string) => void 
     567# 
     568sub rename_db_file_to { 
     569    my $infodb_type = shift(@_); 
     570    my $driver = _loadDBDriver($infodb_type); 
     571    $driver->rename_db_file_to(@_);     
     572} 
     573## rename_db_file_to(string, string) => void ## 
     574 
     575## @function remove_db_file(string) => void 
     576# 
     577sub remove_db_file { 
     578    my $infodb_type = shift(@_); 
     579    my $driver = _loadDBDriver($infodb_type); 
     580    $driver->remove_db_file(@_);     
     581} 
     582## remove_db_file(string, string) => void ## 
     583 
    5665841; 
  • main/trunk/greenstone2/perllib/dbutil/jdbm.pm

    r28395 r31188  
    306306 
    307307 
    308  
    309308sub delete_infodb_entry 
    310309{ 
     
    320319 
    321320 
    322  
    323  
     321# jdb also creates .lg log files, that don't get removed on delete or move operations 
     322# Make sure to rename them to when performing a rename operation on the main db file. 
     323# dbutil::renameTo(src,dest) already took care of renaming the main db file. 
     324sub rename_db_file_to { 
     325    my $infodb_handle = shift(@_); 
     326    my ($srcpath, $destpath) = @_; 
     327 
     328    my ($srctailname, $srcdirname, $srcsuffix) 
     329    = &File::Basename::fileparse($srcpath, "\\.[^\\.]+\$"); 
     330    my ($desttailname, $destdirname, $destsuffix) 
     331    = &File::Basename::fileparse($destpath, "\\.[^\\.]+\$"); 
     332 
     333    # add in the lg extension 
     334    my $src_log_file = &FileUtils::filenameConcatenate($srcdirname, $srctailname.".lg"); 
     335    my $dest_log_file = &FileUtils::filenameConcatenate($destdirname, $desttailname.".lg"); 
     336 
     337    # finally, move/rename any log file belonging to the src db file 
     338    if(&FileUtils::fileExists($src_log_file)) { 
     339    &FileUtils::moveFiles($src_log_file, $dest_log_file); 
     340    } 
     341} 
     342 
     343sub remove_db_file { 
     344    my $infodb_handle = shift(@_); 
     345    my ($db_filepath) = @_; 
     346 
     347    # add in the lg extension to get the log file name 
     348    my ($tailname, $dirname, $suffix) = &File::Basename::fileparse($db_filepath, "\\.[^\\.]+\$"); 
     349    my $assoc_log_file = &FileUtils::filenameConcatenate($dirname, $tailname.".lg"); 
     350 
     351    # remove any log file associated with the db file 
     352    if(&FileUtils::fileExists($assoc_log_file)) { 
     353    &FileUtils::removeFiles($assoc_log_file); 
     354    } 
     355 
     356} 
    324357 
    3253581;