Thanks for clarifying this.
I will update the README.
Thanks,
Ovidiu
On Mon, Feb 24, 2014 at 4:04 PM, Daniel-Constantin Mierla
<miconda(a)gmail.com> wrote:
On 24/02/14 21:58, Ovidiu Sas wrote:
Yeah, I started to re-read the module, and yes, something is there,
but not easy to understand on a first read.
Maybe we need to enhance the readme with a small example :)
Let's say, we have table 'test' with an array key with the following
values:
key[0] with val 'zero'
key[1] with val 'one'
key[2] with val 'two'
and key::size set to 3
If we delete key[1], the we are left with:
key[0] with val 'zero'
key[2] with val 'two'
and key::size set to 2
Now if we add a new key like this:
kamcmd htable.sets test key three
What will be the new key set?
key[0] with val 'zero'
key[2] with val 'two'
key[3] with val 'three'
and key::size set to 3
Is this correct?
No. The 'so-called-array-here' is built only at the time of loading from db
-- it is practically constructing a new key from the value loaded from the
database concatenated with '[', plus the number of items with same db key
value that were added before, plus ']'.
Then, at runtime, if you remove/add items with x[N] format, you need to
adjust the x::size. The module doesn't do it. If anyone is willing to add a
patch, all is welcome.
Cheers,
Daniel
Thanks,
Ovidiu
On Mon, Feb 24, 2014 at 3:49 PM, Daniel-Constantin Mierla
<miconda(a)gmail.com> wrote:
Hello,
iirc, the overview says something about this not-real-array emulation.
The size suffix (::size) is actually a module parameter, it is not
something
embedded.
So, everything here is more a conceptual approach, could have been very
easy
something different instead of [ ] to build keys based on an incremented
value.
Again, what so ever you have as 'xyz[n]' is just seen as a string by
htable
module, it is effectively the key in the hash table, you can add, remove,
get, etc..
Cheers,
Daniel
On 24/02/14 21:40, Ovidiu Sas wrote:
Hello Daniel,
The readme file or the cookboks don't say anything about this.
Can you please enhance the readme?
- the indexing: key_name[n]
- the array size: key_name::size
Question: can the following syntax be used to delete a specific
element in an array key?
kamcmd htable.get students anna[2]
kamcmd htable.get students anna[0]
Regards,
Ovidiu Sas
On Mon, Feb 24, 2014 at 2:52 PM, Daniel-Constantin Mierla
<miconda(a)gmail.com> wrote:
>
> Hello,
>
>
> On 22/02/14 22:29, Juha Heinanen wrote:
>>
>> Ovidiu Sas writes:
>>
>>> I moved the discussion here, in a separate thread.
>>> It seems that what are you looking for is not there ... not
>>> implemented.
>>
>> yes, that is way is asked about it.
>>
>>> If you have the same key_name with different values in the table, the
>>> last value will be the one loaded in memory.
>>> You can't have an array of values for the same keys.
>>
>>
>>> Also, there's no syntax to access a particular value in an array.
>>> Maybe that's why there's no option to provide the value.
>>
>> see this:
>>
>> o key type - the type of the key
>>
>> 0 - simple key - the key is added as 'key_name'.
>>
>> 1 - array key - the key is added as 'key_name[n]'. n is
>> incremented
>> for each key with this name to build an array in hash table.
>
>
> for clarifications, this is still a single key item in memory, just its
> format is made 'key_name[n]'. Hash tables by definition work with
> unique
> key
> indexing.
>
> So adding such items in the hash table should be like:
>
> kamctl mi sht_add ht0 'abc[0]' v0
> kamctl mi sht_add ht0 'abc[1]' v1
> kamctl mi sht_add ht0 'abc::size' 2
>
> Cheers,
> Daniel
>
>> for example:
>>
>> $var(size) = $sht(htable=>$var(key)::size);
>> $var(i) = 0;
>> while ($var(i) < $var(size)) {
>> $var(value) = $sht(htable=>$var(key)[$var(i)]);
>> ...
>>
>> -- juha
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev(a)lists.sip-router.org
>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>
> --
> Daniel-Constantin Mierla -
http://www.asipto.com
>
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
>
--
Daniel-Constantin Mierla -
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
--
Daniel-Constantin Mierla -
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
--
VoIP Embedded, Inc.