Must the keys and values in a Berkeley DB on Ruby be strings, not int, float, or any other type?

StackOverflow https://stackoverflow.com/questions/1802756

  •  05-07-2019
  •  | 
  •  

Question

It seems that if I use Berkeley DB (DBM) on Ruby, the hash's keys and values must be strings? Can they be other data type?

require 'dbm'

d = DBM.open('test1')

d[1] = 2
d[123] = 456
d[2] = 2.34
d['wa'] = Time.now.to_f

p d.keys
p d.values

Result:

C:\>ruby test_dbm.rb
["wa", "2", "1", "123"]
["1259229787.686", "2.34", "2", "456"]
Was it helpful?

Solution

Yes, they do store key values as arbitrary byte strings that can be fixed-length or variable-length. I also realised that recently when I had to use bdb in one of our projects.

And you can see the key values on command line by typing

strings full/bdb/file/path

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top