anchor.diff:  
   
   compile(_Mod, {error, Err}) ->
  -    {error, decoder_parse_error_resp(Err)};
  +    {error, make_decoder_error_response(Err)};
   compile(_Mod, {'EXIT', {Err, _}}) ->
  -    {error, decoder_parse_error_resp(Err)};
  +    {error, make_decoder_error_response(Err)};
   compile(Mod, {ok, SQL}) ->
       case (catch Mod:get_ddl()) of
           {_, {undef, _}} ->
  
positive.code:     Msg = riak_pb_codec:decode(Code, Bin),
      case Msg of
          #tsqueryreq{query = Q, cover_context = Cover} ->
              case catch decode_query(Q, Cover) of
                  {ok, DecodedQuery} ->
                      PermAndTarget = decode_query_permissions(DecodedQuery),
                      {ok, DecodedQuery, PermAndTarget};
                  {error, Error} ->
                      {error, decoder_parse_error_resp(Error)};
                  {'EXIT', {Error, _}} ->
                      {error, decoder_parse_error_resp(Error)}
              end;
          #tsgetreq{table = Table}->
              {ok, Msg, {"riak_kv.ts_get", Table}};
  
negative.code:     [#tscolumndescription{name = Name, type = riak_pb_ts_codec:encode_field_type(Type)}
       || {Name, Type} <- lists:zip(ColumnNames, ColumnTypes)].
  
  make_decoder_error_response({LineNo, riak_ql_parser, Msg}) when is_integer(LineNo) ->
      make_rpberrresp(?E_PARSE_ERROR, flat_format("~ts", [Msg]));
  make_decoder_error_response({Token, riak_ql_parser, _}) when is_binary(Token) ->
      make_rpberrresp(?E_PARSE_ERROR, flat_format("Unexpected token '~s'", [Token]));
  make_decoder_error_response({Token, riak_ql_parser, _}) ->
      make_rpberrresp(?E_PARSE_ERROR, flat_format("Unexpected token '~p'", [Token]));
  make_decoder_error_response(Error) ->
      Error.
  
  flat_format(Format, Args) ->
      lists:flatten(io_lib:format(Format, Args)).
  
  -ifdef(TEST).
  -include_lib("eunit/include/eunit.hrl").
  