greenstone.org greenstone wiki greenstone trac planet greenstone

Changeset 16041

Show
Ignore:
Timestamp:
2008-06-17 17:09:38 (5 months ago)
Author:
mdewsnip
Message:

(Adding dynamic classifiers) Implemented the necessary code for the metadata value grouping expression.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gsdl/trunk/src/lib/sqlitedbclass.cpp

    r16039 r16041  
    202202  } 
    203203 
     204  // Get the raw "value" field unless a grouping expression was provided (in this case an edited value is returned) 
     205  text_t value_select_expression = "value"; 
     206  if (metadata_value_grouping_expression != "") 
     207  { 
     208    value_select_expression = metadata_value_grouping_expression; 
     209  } 
     210 
    204211  // Get the entries in the "document_metadata" table where the element matches that specified 
    205   text_t sql_cmd = "SELECT DISTINCT docOID,value FROM document_metadata WHERE element='" + sqlite_safe(metadata_element_name) + "'"; 
     212  text_t sql_cmd = "SELECT DISTINCT docOID," + value_select_expression + " FROM document_metadata WHERE element='" + sqlite_safe(metadata_element_name) + "'"; 
    206213 
    207214  // Add value filter, if one has been defined 
     
    211218  } 
    212219 
     220  // Perform the SQL request 
    213221  vector<text_tmap> sql_results; 
    214222  if (!sqlgetarray(sql_cmd, sql_results) || sql_results.size() == 0) 
     
    222230  { 
    223231    text_tmap sql_result = (*sql_results_iterator); 
    224     metadata_values.push_back(sql_result["value"]); 
     232    metadata_values.push_back(sql_result[value_select_expression]); 
    225233    sql_results_iterator++; 
    226234  }