anchor.diff:  decode_query_permissions(#riak_sql_v1{'FROM'=Bucket}) ->
       {"riak_kv.ts_query", Bucket}.
   
  -make_data(Rows, Cols) ->
  -    make_d2(Rows, Cols, []).
  +make_data(Rows) ->
  +    make_d2(Rows, []).
   
  -make_d2([], _Cols, Acc) ->
  +make_d2([], Acc) ->
       lists:reverse(Acc);
  -make_d2([{tsrow, Row} | T], Cols, Acc) ->
  -    make_d2(T, Cols, [make_d3(Row, Cols, []) | Acc]).
  +make_d2([{tsrow, Row} | T], Acc) ->
  +    make_d2(T, [make_d3(Row, []) | Acc]).
   
  -make_d3([], _Cols, Acc) ->
  +make_d3([], Acc) ->
       list_to_tuple(lists:reverse(Acc));
   make_d3([#tscell{binary_value    = Bin,
   		 integer_value   = undefined,
  
positive.code: 		 timestamp_value = undefined,
  		 boolean_value   = undefined,
  		 set_value       = [],
  		 map_value       = undefined} | T], Cols, Acc) ->
      make_d3(T, Cols, [Bin | Acc]);
  make_d3([#tscell{binary_value    = undefined,
  		 integer_value   = Int,
  		 numeric_value   = undefined,
  		 timestamp_value = undefined,
  		 boolean_value   = undefined,
  		 set_value       = [],
  		 map_value       = undefined} | T], Cols, Acc) ->
      make_d3(T, Cols, [Int | Acc]);
  make_d3([#tscell{binary_value    = undefined,
  		 integer_value   = undefined,
  		 numeric_value   = Num,
  		 timestamp_value = undefined,
  		 boolean_value   = undefined,
  		 set_value       = [],
  		 map_value       = undefined} | T], Cols, Acc) ->
      make_d3(T, Cols, [Num | Acc]);
  make_d3([#tscell{binary_value    = undefined,
  		 integer_value   = undefined,
  		 numeric_value   = undefined,
  		 timestamp_value = Timestamp,
  		 boolean_value   = undefined,
  		 set_value       = [],
  		 map_value       = undefined} | T], Cols, Acc) ->
      make_d3(T, Cols, [Timestamp | Acc]);
  make_d3([#tscell{binary_value    = undefined,
  		 integer_value   = undefined,
  		 numeric_value   = undefined,
  		 timestamp_value = undefined,
  		 boolean_value   = Bool,
  		 set_value       = [],
  		 map_value       = undefined} | T], Cols, Acc) ->
      make_d3(T, Cols, [Bool | Acc]);
  make_d3([#tscell{binary_value    = undefined,
  		 integer_value   = undefined,
  		 numeric_value   = undefined,
  		 timestamp_value = undefined,
  		 boolean_value   = undefined,
  		 set_value       = Set,
  		 map_value       = undefined} | T], Cols, Acc) ->
      make_d3(T, Cols, [Set | Acc]);
  make_d3([#tscell{binary_value    = undefined,
  		 integer_value   = undefined,
  		 numeric_value   = undefined,
  		 timestamp_value = undefined,
  		 boolean_value   = undefined,
  		 set_value       = [],
  		 map_value       = Map} | T], Cols, Acc) ->
      make_d3(T, Cols, [Map | Acc]).
  
negative.code: encode(Message) ->
      {ok, riak_pb_codec:encode(Message)}.
  
  process(#tsputreq{table=Table, columns=_Columns, rows=Rows}, State) ->
      Data = make_data(Rows),
      Mod = riak_ql_dd:make_module_name(Table),
      _Data2 = Mod:add_column_info(Data),
      {reply, tsputresp, State};
  process(_Ddl = #ddl_v1{}, State) ->
      {reply, #tsqueryresp{
  