anchor.diff:  %%     {_, Row} = lists:foldl(F, {1, []}, Fields),
   %%     unpack_rows(Fields, T, [lists:reverse(Row)|Accum]).
   
  -unpack_rows(X) ->
  -    ?debugVal(X),
  -    X.
  +unpack_rows(Columns, RowData) ->
  +    Rows = [ lists:zip(Columns, Row) || Row <- RowData ], 
  +    ?debugVal(Rows),
  +    Rows.
  
positive.code: start_link(Config) ->
      sqerl_client:start_link(?MODULE, Config).
  
  exec_prepared_select(Name, Args, #state{cn=Cn}=State) ->
      ok = pgsql:bind(Cn, Name, Args),
      %% Note: we might get partial results here for big selects!
      case pgsql:execute(Cn, Name, Args) of
          {ok, _Count, RowData} ->
              Rows = unpack_rows(RowData),
              {{ok, Rows}, State};
          Result ->
              {{error, Result}, State}
  
negative.code: load_statements(_Connection, [], Dict) ->
      {ok, Dict};
  load_statements(Connection, [{Name, SQL}|T], Dict) ->
      case pgsql:parse(Connection, atom_to_list(Name), SQL, []) of
          {ok, Statement} ->
              {ok, {statement, _Name, Desc}} = pgsql:describe(Connection, Statement),
              Columns = [ ColName || {_,ColName, _, _, _,_} <- Desc],
              load_statements(Connection, T, dict:store(Name, {Columns, Statement}, Dict));
          Error ->
              %% TODO: Discover what errors can flow out of this, and write tests.
              Error
  