anchor.diff:    { Node, _ } = get_node_info(),
     RowData = search_rows(Node, Channel, list_to_integer(RowsBack), Pattern),
     row_renderer(RowData, Req),
  -  log_rt("Search", Ctime)
  +  log_rt("Search (channel:" ++ Channel ++ " back:" ++ RowsBack ++ " pattern:" ++ Pattern ++ ")", Ctime)
     ;
   handle('GET', [Static], Req) ->
     Req:file("web/"++Static).
  
positive.code:   { Node, _ } = get_node_info(),
    RowData = fetch_rows(Node, Channel, User, list_to_integer(LastRow), list_to_integer(RowsBack)),
    row_renderer(RowData, Req),
    log_rt("Fetch rows", Ctime)
    ;
  handle('POST', ["searchrows"], Req) ->
    Ctime = now(),
  
negative.code: % Transactional wrapper for conducting a channel search.
  
  search_rows(Node, Channel, RowsBack, SearchString) ->
    Transaction=fun() ->
      get_search_results(Node, Channel, RowsBack, SearchString)
    end,
  