runMany = async (
  table_id,
  viewname,
  { columns, layout },
  state,
  extra,
  { runManyQuery }
) => {
  const tbl = Table.findOne({ id: table_id });
  const rows = await runManyQuery(state, {
    where: extra.where,
    joinFieldsExtra: extra.joinFields,
    limit: extra.limit,
    offset: extra.offset,
    orderBy: extra.orderBy,
    orderDesc: extra.orderDesc,
  });
  const rendered = await renderRows(
    tbl,
    viewname,
    { columns, layout },
    extra,
    rows,
    state
  );

  return rendered.map((html, ix) => ({ html, row: rows[ix] }));
}
@param {number} table_id
@param {string} viewname
@param {object} opts
@param {object[]} opts.columns
@param {object} opts.layout
@param {object} state
@param {object} extra
@returns {Promise<object[]>}