Changeset 16039


Ignore:
Timestamp:
2008-06-17T15:59:02+12:00 (16 years ago)
Author:
mdewsnip
Message:

(Adding dynamic classifiers) Added a new "metadata_value_grouping_expression" parameter to the "get_metadata_values" SQL function, in preparation for adding grouping node support.

Location:
gsdl/trunk/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • gsdl/trunk/src/colservr/sqlbrowsefilter.cpp

    r15941 r16039  
    111111    text_t metadata_element_name = "";
    112112    text_t metadata_value_filter = "";
     113    text_t metadata_value_grouping_expression = "";
    113114    OptionValue_tarray::const_iterator options_iterator = request.filterOptions.begin();
    114115    while (options_iterator != request.filterOptions.end())
     
    122123    metadata_value_filter = (*options_iterator).value;
    123124      }
     125      if ((*options_iterator).name == "MetadataValueGroupExpression")
     126      {
     127    metadata_value_grouping_expression = (*options_iterator).value;
     128      }
    124129      options_iterator++;
    125130    }
    126131
    127     text_tarray metadata_values = sql_db_ptr->get_metadata_values (metadata_element_name, metadata_value_filter);
     132    text_tarray metadata_values = sql_db_ptr->get_metadata_values (metadata_element_name, metadata_value_filter, metadata_value_grouping_expression);
    128133
    129134    // Create a map from metadata value to ResultDocInfo_t, to remove duplicate values and obtain occurrence counts
  • gsdl/trunk/src/lib/sqldbclass.h

    r15941 r16039  
    4949  // returns array of values
    5050  virtual text_tarray get_metadata_values (const text_t &metadata_element_name,
    51                        const text_t &metadata_value_filter) = 0;
     51                       const text_t &metadata_value_filter,
     52                       const text_t &metadata_value_grouping_expression) = 0;
    5253};
    5354
  • gsdl/trunk/src/lib/sqlitedbclass.cpp

    r16037 r16039  
    191191// returns array of values
    192192text_tarray sqlitedbclass::get_metadata_values (const text_t &metadata_element_name,
    193                         const text_t &metadata_value_filter)
     193                        const text_t &metadata_value_filter,
     194                        const text_t &metadata_value_grouping_expression)
    194195{
    195196  text_tarray metadata_values;
  • gsdl/trunk/src/lib/sqlitedbclass.h

    r15941 r16039  
    6161  // returns array of values
    6262  text_tarray get_metadata_values (const text_t &metadata_element_name,
    63                    const text_t &metadata_value_filter);
     63                   const text_t &metadata_value_filter,
     64                   const text_t &metadata_value_grouping_expression);
    6465
    6566  // returns true on success
  • gsdl/trunk/src/protocol/recptprototools.cpp

    r16026 r16039  
    252252
    253253bool get_metadata_values (const text_t metadata_element_name, const text_t metadata_value_filter,
    254               const text_t &collection, recptproto *collectproto,
    255               FilterResponse_t &response, ostream &logout)
     254              const text_t metadata_value_grouping_expression, const text_t &collection,
     255              recptproto *collectproto, FilterResponse_t &response, ostream &logout)
    256256{
    257257  response.clear();
     
    271271  request_option.value = metadata_value_filter;
    272272  request.filterOptions.push_back (request_option);
     273  request_option.name = "MetadataValueGroupingExpression";
     274  request_option.value = metadata_value_grouping_expression;
     275  request.filterOptions.push_back (request_option);
    273276
    274277  assert (collectproto != NULL);
  • gsdl/trunk/src/protocol/recptprototools.h

    r15941 r16039  
    6969
    7070bool get_metadata_values (const text_t metadata_element_name, const text_t metadata_value_filter,
    71               const text_t &collection, recptproto *collectproto,
    72               FilterResponse_t &response, ostream &logout);
     71              const text_t metadata_value_grouping_expression, const text_t &collection,
     72              recptproto *collectproto, FilterResponse_t &response, ostream &logout);
    7373
    7474bool get_documents_with_metadata_value (const text_t metadata_element_name, const text_t metadata_value,
  • gsdl/trunk/src/recpt/dynamicclassifieraction.cpp

    r16038 r16039  
    224224  text_t metadata_element_name = classifier_options["metadata_element_name"];
    225225  FilterResponse_t metadata_values_response;
    226   bool request_success = get_metadata_values (metadata_element_name, "", args["c"], collectproto, metadata_values_response, logout);
     226  bool request_success = get_metadata_values (metadata_element_name, "", "", args["c"], collectproto, metadata_values_response, logout);
    227227
    228228  // If the request failed then it's probably because the collection isn't using an SQL infodbtype
     
    262262  text_t metadata_value_filter = classifier_node_metadata_value + "|*";
    263263  FilterResponse_t metadata_values_response;
    264   bool request_success = get_metadata_values (metadata_element_name, metadata_value_filter, args["c"], collectproto, metadata_values_response, logout);
     264  bool request_success = get_metadata_values (metadata_element_name, metadata_value_filter, "", args["c"], collectproto, metadata_values_response, logout);
    265265
    266266  // If the request failed then it's probably because the collection isn't using an SQL infodbtype
Note: See TracChangeset for help on using the changeset viewer.