vector<string>
database::retrieve_column_titles(const binomen &table) const {
    const session s = get_session();

    const unique_ptr<dialect_sql> cmd = make_dialect_sql();
    cmd->write_retrieve_metadata(table);
    const result_stream stream = s->exec_with_stream_output(*cmd, 1);

    vector<string> result;
    while (unique_ptr<row> r = s->next_output(stream)) {
        string name;
        r->get("name", name);
        string type;
        r->get("type", type);
        result.push_back("\"" + name + "\" " + type);
    }
    return result;
}