In addition to the static C functions listed below, for each class that contains one or more sequence fields, a classname_primary_key_name_top() functions is generated. The function has the following prototype:
MCO_RET classname_primary_key_name_top ( mco_trans_h t, /*IN*/ mco_cursor_h cursor, /*IN-OUT*/mco_size_t* n, /*OUT*/char keys[][21], /*OUT*/double* aggregates, MCO_RET (*aggregate)(mco_trans_h t, Quote* handle, /*OUT*/double* result, void* ctx), MCO_RET (*filter)(mco_trans_h t, mco_cursor_h cursor, void* ctx), void* ctx) {
The following static C functions take an input sequence and scalar integer top arguments and produce result sequences of the same TYPE as described in the table below:
mco_seq_top_max_TYPE() Return in sequence result of the same TYPE the top N maximum values
MCO_RET mco_seq_top_max_TYPE(mco_seq_iterator_h result, mco_seq_iterator_h input, mco_size_t top);mco_seq_top_min_TYPE() Return in sequence result of the same TYPE the top N minimum values
MCO_RET mco_seq_top_min_TYPE(mco_seq_iterator_h result, mco_seq_iterator_h input, mco_size_t top);mco_seq_top_pos_max_TYPE() Return in integer sequence result the positions of the top N maximum values
MCO_RET mco_seq_top_pos_max_TYPE(mco_seq_iterator_h result, mco_seq_iterator_h input, mco_size_t top);mco_seq_top_pos_min_TYPE() Return in integer sequence result the positions of the top N minimum values
MCO_RET mco_seq_top_pos_min_TYPE(mco_seq_iterator_h result, mco_seq_iterator_h input, mco_size_t top);Example
Following is an example code snippet demonstrating one of these functions:
{ mco_trans_h trans; mco_cursor_t quote_cursor; Quote quote; mco_seq_iterator_t high_iterator, result_iterator; MCO_RET rc; ... for (rc = mco_cursor_first(trans, "e_cursor); rc != MCO_S_CURSOR_END; rc = mco_cursor_next(trans, "e_cursor)) { Quote_from_cursor(trans, "e_cursor, "e); Quote_high_iterator("e, &high_iterator); ... rc = mco_seq_top_max_float(&result_iterator, &high_iterator, 20); ... } ... }