anchor.diff:                           [Col#column{format = pgsql_wire:format(
                                                   Col#column.type)}
                             || Col <- Columns],
  -                     reply(State,
  -                           {ok, State#state.statement#statement{
  -                                              columns = Columns2}});
  +                     State2 = State#state{columns = Columns2},
  +                     reply(State2, {ok, make_statement(State2)});
                    describe_portal ->
                        reply(State, {ok, Columns})
                end,
  -    {noreply, State2};
  +    {noreply, State3};
   
   %% NoData
   on_message({$n, <<>>}, State) ->
       State2 = case command_tag(State) of
                    C when C == parse; C == describe_statement ->
  -                     reply(State,
  -                           {ok, State#state.statement#statement{columns= []}});
  +                     reply(State, {ok, make_statement(State)});
                    describe_portal ->
                        reply(State, {ok, []})
                end,
  
positive.code:         {_, {squery, _}} ->
              Columns
      end.
  
  sync_required(#state{queue = Q} = State) ->
      case queue:is_empty(Q) of
  
negative.code: 
  %% ParameterDescription
  on_message({$t, <<_Count:?int16, Bin/binary>>}, State) ->
      Types = [pgsql_types:oid2type(Oid) || <<Oid:?int32>> <= Bin],
      {noreply, State#state{types = Types}};
  
  %% RowDescription
  on_message({$T, <<Count:?int16, Bin/binary>>}, State) ->
      Columns = pgsql_wire:decode_columns(Count, Bin),
      State3 = case command_tag(State) of
                   squery ->
                       State#state{columns = Columns};
                   C when C == parse; C == describe_statement ->
  