anchor.diff:  
   -spec exec_prepared_statement(atom(), [], any()) -> {{ok, integer()} | {error, any()}, state()}.
   exec_prepared_statement(Name, Args, #state{cn=Cn, statements=Statements}=State) ->
  -    {_Columns, Stmt} = dict:fetch(Name, Statements),
  +    PrepStmt = dict:fetch(Name, Statements),
  +    Stmt = PrepStmt#prepared_statement.stmt,
       NArgs = input_transforms(Args, State),
  -    ok = pgsql:bind(Cn, Stmt, NArgs),
  +    ok = pgsql:bind(Cn, PrepStmt#prepared_statement.stmt, NArgs),
       %% Note: we might get partial results here for big selects!
       Rv =
           try 
  
positive.code: 
  -spec exec_prepared_select(atom(), [], state()) -> {{ok, [[tuple()]]} | {error, any()}, state()}.
  exec_prepared_select(Name, Args, #state{cn=Cn, statements=Statements, ctrans=CTrans}=State) ->
      {Columns, Stmt} = dict:fetch(Name, Statements),
      NArgs = input_transforms(Args,State),
      ok = pgsql:bind(Cn, Stmt, NArgs),
      %% Note: we might get partial results here for big selects!
      Result = pgsql:execute(Cn, Stmt),
      case Result of
          {ok, RowData} ->
              Rows = unpack_rows(Columns, RowData),
              TRows = sqerl_transformers:by_column_name(Rows, CTrans),
              {{ok, TRows}, State};
          Result ->
  
negative.code: %% up into a list containing all the converted rows for
  %% a given query result.
  
  -spec unpack_rows(any(), [[any()]]) -> [[{any(), any()}]].
  unpack_rows(#prepared_statement{input_types=ColumnData}, RowData) ->
      Columns = [C || {C,_} <- ColumnData],
      [ lists:zip(Columns, tuple_to_list(Row)) || Row <- RowData ].
  
  transform({datetime, X}) ->
  