anchor.diff:  %%
   %%      As of 2015-11-05, ColumnNames parameter is ignored, the function
   %%      expects the full set of fields in each element of Data.
  +%%
  +%%      put/4 switches on the last two arguments: 
  +%%
  +%%         When these are: (column names, measurement set), put/4 uses
  +%%         the default encoding (set by
  +%%         riak_pb_socket:use_native_encoding/2)
  +%%
  +%%         When these are: (measurement set, boolean), put/4 acts just
  +%%         like put/3, but with encoding explicitly specified
  +
  +put(Pid, TableName, Measurements, true) ->
  +    put(Pid, TableName, [], Measurements, true);
  +put(Pid, TableName, Measurements, false) ->
  +    put(Pid, TableName, [], Measurements, false);
   put(Pid, TableName, ColumnNames, Measurements) ->
  -    Message = riakc_ts_put_operator:serialize(use_native_encoding(Pid), TableName, ColumnNames, Measurements),
  +    put(Pid, TableName, ColumnNames, Measurements, use_native_encoding(Pid)).
  +
  +-spec put(Pid::pid(), Table::table_name(), ColumnNames::[ts_columnname()], Data::[[ts_value()]], UseNativeEncoding::boolean()) ->
  +                 ok | {error, Reason::term()}.
  +%% @doc Make data records from Data and insert them, individually,
  +%%      into a time-series Table, using client Pid. Each record is a
  +%%      list of values of appropriate types for the complete set of
  +%%      table column names, in the order in which they appear in table's
  +%%      DDL.  On success, 'ok' is returned, else an @{error, Reason@}
  +%%      tuple.  
  +%%
  +%%      As of 2015-11-05, ColumnNames parameter is ignored, the function
  +%%      expects the full set of fields in each element of Data.
  +%%
  +%%      put/5 acts just like put/4 with column names and measurement
  +%%      set specified, but with the encoding explicitly specified
  +
  +put(Pid, TableName, ColumnNames, Measurements, UseNativeEncoding) ->
  +    Message = riakc_ts_put_operator:serialize(UseNativeEncoding, TableName, ColumnNames, Measurements),
       Response = server_call(Pid, Message),
       riakc_ts_put_operator:deserialize(Response).
   
  
positive.code: %%      first element, and a list of records, each represented as a
  %%      list of values, in the second element, or an @{error, Reason@}
  %%      tuple.
  query(Pid, QueryText) ->
      query(Pid, QueryText, []).
  
  -spec query(Pid::pid(), Query::string(), Interpolations::[{binary(), binary()}]) ->
                     {ColumnNames::[binary()], Rows::[tuple()]} | {error, term()}.
  %% @doc Execute a "SELECT ..." Query with client Pid, using
  %%      Interpolations.  The result returned is a tuple containing a
  %%      list of columns as binaries in the first element, and a list
  %%      of records, each represented as a list of values, in the
  %%      second element, or an @{error, Reason@} tuple.
  query(Pid, QueryText, Interpolations) ->
      Message = riakc_ts_query_operator:serialize(use_native_encoding(Pid), QueryText, Interpolations),
      Response = server_call(Pid, Message),
      riakc_ts_query_operator:deserialize(Response).
  
  query(Pid, QueryText, Interpolations, Cover) ->
      UseNativeEncoding = use_native_encoding(Pid),
      Message = riakc_ts_query_operator:serialize(UseNativeEncoding, QueryText, Interpolations),
      Response = get_query_response(UseNativeEncoding, Pid, Message, Cover),
      riakc_ts_query_operator:deserialize(Response).
  
  %% ------------------------------------------------------------
  %% Construct an appropriate request depending on encoding, and return
  %% the response
  %% ------------------------------------------------------------
  
  get_query_response(false, Pid, Message, Cover) ->
      server_call(Pid, Message#tsqueryreq{cover_context=Cover});
  get_query_response(true, Pid, Message, Cover) ->
      server_call(Pid, Message#tsttbqueryreq{cover_context=Cover}).
  
  %% @doc Generate a parallel coverage plan for the specified query
  get_coverage(Pid, Table, QueryText) ->
  
negative.code: -type ts_value() :: riak_pb_ts_codec:ldbvalue().
  -type ts_columnname() :: riak_pb_ts_codec:tscolumnname().
  
  %% Determine encoding type from Pid proplist stored in process dictionary
  
  use_native_encoding(Pid) ->
      use_native_encoding_from_proplist(get(Pid)).
  
  %% Extract the encoding type from a proplist
  
  use_native_encoding_from_proplist(undefined) ->
      false;
  