>From what I understand, this is a limitation of that particular client
(what language is that, by the way?). Feel free to open an issue on Github
for it.
The HTTP API, at least, does distinguish between a non-existent counter and
a counter whose value happens to be 0.
For example, here's the result of trying to access an existing key (with a
value set to 0):
curl
http://localhost:8098/types/counters/buckets/room_occupancy/datatypes/room-215
{"type":"counter","value":0}
And here's the result of retrieving the value of a non-existent key:
curl
http://localhost:8098/types/counters/buckets/room_occupancy/datatypes/non-existent-room
{"type":"counter","error":"notfound"}
There's a workaround you can do with your existing client, however (until
the issue with the FetchCounter request gets fixed).
You can issue a regular Fetch Object operation (preferably setting the
'HEAD only' option to true) for that counter. A Riak counter (or any other
data type) still exists as a regular object, and you can issue a HEAD
request to it (as opposed to a Fetch Counter or whatever), and it'll return
a 404 as expected.
On Wed, Aug 19, 2015 at 8:59 PM, Timur Fayruzov
wrote:
> Hello,
>
> It seems that Riak Datatype API does not allow to distinguish between
> non-existing keys and default values. For example, if I query for
> non-existing key as follows:
>
> val fetchOp = new FetchCounter.Builder(key).build()
> val c = client.execute(fetchOp).getDatatype
>
> I'll get a counter that holds 0. Now, if I put counter with value 0 at
> this key and run the query, I get the same result. Is there any way to
> distinguish between these two different states?
>
> Note: when working with sets there is a context that I can check. If I
> fetch a set and the context is null, it means that the set does not exist
> under this key. This trick does not work for counters though, as they do
> not maintain context. Is it a valid trick to use though?
>
> I posted this to StackOverflow a while ago, but no luck:
> http://stackoverflow.com/questions/31845164/riak-dataypes-default-values-vs-non-existing-keys
>
> Thanks,
>
> Timur
>
> ___
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
___
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com