Changeset 21544

Show
Ignore:
Timestamp:
20.01.2010 15:46:19 (9 years ago)
Author:
mdewsnip
Message:

Changed dbutil.pm so instead of doing "use dbutil::gdbm", "use dbutil::sqlite" etc. at the top of the file, the sub-modules are "require"d as necessary when they are used. This means only the modules that are used will be loaded, and the whole thing doesn't fall over if some of the sub-modules don't exist (e.g for gs2-core).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/dbutil.pm

    r21411 r21544  
    2929 
    3030 
    31 use dbutil::gdbmtxtgz; 
    32 use dbutil::gdbm; 
    33 use dbutil::jdbm; 
    34 use dbutil::sqlite; 
    35 use dbutil::mssql; 
    36  
    3731sub open_infodb_write_handle 
    3832{ 
     
    4236  if ($infodb_type eq "sqlite")  
    4337  { 
     38    require dbutil::sqlite; 
    4439    return &dbutil::sqlite::open_infodb_write_handle($infodb_file_path); 
    4540  }  
    4641  elsif ($infodb_type eq "gdbm-txtgz")  
    4742  { 
     43    require dbutil::gdbmtxtgz; 
    4844    return &dbutil::gdbmtxtgz::open_infodb_write_handle($infodb_file_path); 
    4945  }  
    5046  elsif ($infodb_type eq "jdbm")  
    5147  { 
     48    require dbutil::jdbm; 
    5249    return &dbutil::jdbm::open_infodb_write_handle($infodb_file_path); 
    5350  }  
    5451  elsif ($infodb_type eq "mssql")  
    5552  { 
     53    require dbutil::mssql; 
    5654    return &dbutil::mssql::open_infodb_write_handle($infodb_file_path); 
    5755  }  
    5856 
    5957  # Use GDBM if the infodb type is empty or not one of the values above 
     58  require dbutil::gdbm; 
    6059  return &dbutil::gdbm::open_infodb_write_handle($infodb_file_path); 
    6160} 
     
    6968  if ($infodb_type eq "sqlite") 
    7069  { 
     70    require dbutil::sqlite; 
    7171    return &dbutil::sqlite::close_infodb_write_handle($infodb_handle); 
    7272  } 
    7373  elsif ($infodb_type eq "gdbm-txtgz") 
    7474  { 
     75    require dbutil::gdbmtxtgz; 
    7576    return &dbutil::gdbmtxtgz::close_infodb_write_handle($infodb_handle); 
    7677  } 
    7778  elsif ($infodb_type eq "jdbm") 
    7879  { 
     80    require dbutil::jdbm; 
    7981    return &dbutil::jdbm::close_infodb_write_handle($infodb_handle); 
    8082  } 
    8183  elsif ($infodb_type eq "mssql") 
    8284  { 
     85    require dbutil::mssql; 
    8386    return &dbutil::mssql::close_infodb_write_handle($infodb_handle); 
    8487  } 
    8588     
    8689  # Use GDBM if the infodb type is empty or not one of the values above 
     90  require dbutil::gdbm; 
    8791  return &dbutil::gdbm::close_infodb_write_handle($infodb_handle); 
    8892} 
     
    105109  if ($infodb_type eq "sqlite") 
    106110  { 
     111    require dbutil::sqlite; 
    107112    return &dbutil::sqlite::get_infodb_file_path($collection_name, $infodb_directory_path); 
    108113  } 
    109114  elsif ($infodb_type eq "gdbm-txtgz") 
    110115  { 
     116    require dbutil::gdbmtxtgz; 
    111117    return &dbutil::gdbmtxtgz::get_infodb_file_path($collection_name, $infodb_directory_path); 
    112118  } 
    113119  elsif ($infodb_type eq "jdbm") 
    114120  { 
     121    require dbutil::jdbm; 
    115122    return &dbutil::jdbm::get_infodb_file_path($collection_name, $infodb_directory_path); 
    116123  } 
     
    128135    # the this might need some tidy up sometime. 
    129136    #==================================================================================================# 
     137    require dbutil::mssql; 
    130138    return &dbutil::mssql::get_infodb_file_path($collection_name, $infodb_directory_path);  
    131139  } 
    132140   
    133141  # Use GDBM if the infodb type is empty or not one of the values above 
     142  require dbutil::gdbm; 
    134143  return &dbutil::gdbm::get_infodb_file_path($collection_name, $infodb_directory_path); 
    135144} 
     
    144153  if ($infodb_type eq "sqlite") 
    145154  { 
     155    require dbutil::sqlite; 
    146156    return &dbutil::sqlite::read_infodb_file($infodb_file_path, $infodb_map); 
    147157  } 
    148158  elsif ($infodb_type eq "gdbm-txtgz") 
    149159  { 
     160    require dbutil::gdbmtxtgz; 
    150161    return &dbutil::gdbmtxtgz::read_infodb_file($infodb_file_path, $infodb_map); 
    151162  } 
    152163  elsif ($infodb_type eq "jdbm") 
    153164  { 
     165    require dbutil::jdbm; 
    154166    return &dbutil::jdbm::read_infodb_file($infodb_file_path, $infodb_map); 
    155167  } 
    156168  elsif ($infodb_type eq "mssql") 
    157169  { 
     170    require dbutil::mssql; 
    158171    return &dbutil::mssql::read_infodb_file($infodb_file_path, $infodb_map); 
    159172  } 
    160173   
    161174  # Use GDBM if the infodb type is empty or not one of the values above 
     175  require dbutil::gdbm; 
    162176  return &dbutil::gdbm::read_infodb_file($infodb_file_path, $infodb_map); 
    163177} 
     
    173187  if ($infodb_type eq "sqlite") 
    174188  { 
     189    require dbutil::sqlite; 
    175190    return &dbutil::sqlite::write_infodb_entry($infodb_handle, $infodb_key, $infodb_map); 
    176191  } 
    177192  elsif ($infodb_type eq "gdbm-txtgz") 
    178193  { 
     194    require dbutil::gdbmtxtgz; 
    179195    return &dbutil::gdbmtxtgz::write_infodb_entry($infodb_handle, $infodb_key, $infodb_map); 
    180196  } 
    181197  elsif ($infodb_type eq "jdbm") 
    182198  { 
     199    require dbutil::jdbm; 
    183200    return &dbutil::jdbm::write_infodb_entry($infodb_handle, $infodb_key, $infodb_map); 
    184201  } 
    185202  elsif ($infodb_type eq "mssql") 
    186203  { 
     204    require dbutil::mssql; 
    187205    return &dbutil::mssql::write_infodb_entry($infodb_handle, $infodb_key, $infodb_map); 
    188206  } 
    189207 
    190208  # Use GDBM if the infodb type is empty or not one of the values above 
     209  require dbutil::gdbm; 
    191210  return &dbutil::gdbm::write_infodb_entry($infodb_handle, $infodb_key, $infodb_map); 
    192211} 
     
    201220  if ($infodb_type eq "sqlite") 
    202221  { 
     222    require dbutil::sqlite; 
    203223    return &dbutil::sqlite::delete_infodb_entry($infodb_handle, $infodb_key); 
    204224  } 
    205225  elsif ($infodb_type eq "gdbm-txtgz") 
    206226  { 
     227    require dbutil::gdbmtxtgz; 
    207228    return &dbutil::gdbmtxtgz::delete_infodb_entry($infodb_handle, $infodb_key); 
    208229  } 
    209230  elsif ($infodb_type eq "jdbm") 
    210231  { 
     232    require dbutil::jdbm; 
    211233    return &dbutil::jdbm::delete_infodb_entry($infodb_handle, $infodb_key); 
    212234  } 
    213235  elsif ($infodb_type eq "mssql") 
    214236  { 
     237    require dbutil::mssql; 
    215238    return &dbutil::mssql::delete_infodb_entry($infodb_handle, $infodb_key); 
    216239  } 
    217240 
    218241  # Use GDBM if the infodb type is empty or not one of the values above 
     242  require dbutil::gdbm; 
    219243  return &dbutil::gdbm::delete_infodb_entry($infodb_handle, $infodb_key); 
    220244}