顶部序列函数
除了下面列出的静态 C 序列函数之外,对于包含一个或多个序列字段的每个类,都会生成一个名为 classname_primary_key_name_top()
的函数。该函数具有以下原型:
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
)
以下静态函数接受一个 input 序列和标量整数 top 参数,并生成与下表中描述的相同 TYPE 的输出序列:
top_max
mco_seq_top_max_TYPE()
按顺序返回相同 TYPE 的前 N 个最大值的结果。
MCO_RET mco_seq_top_max_TYPE(
mco_seq_iterator_h result,
mco_seq_iterator_h input,
mco_size_t top)
;
top_min
mco_seq_top_min_TYPE()
按顺序返回相同 TYPE 的前 N 个最小值的结果。
MCO_RET mco_seq_top_min_TYPE(
mco_seq_iterator_h result,
mco_seq_iterator_h input,
mco_size_t top
);
top_pos_max
mco_seq_top_pos_max_TYPE()
返回整数序列中最大的 N 个值的位置结果。
MCO_RET mco_seq_top_pos_max_TYPE(
mco_seq_iterator_h result,
mco_seq_iterator_h input,
mco_size_t top
);
top_pos_min
mco_seq_top_pos_min_TYPE()
返回整数序列中最小的 N 个值的位置结果。
MCO_RET mco_seq_top_pos_min_TYPE(
mco_seq_iterator_h result,
mco_seq_iterator_h input,
mco_size_t top
);
示例
以下是演示这些函数之一的示例代码片段:
{
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);
...
}
...
}