[Date Prev][Date Next] [Chronological] [Thread] [Top]

Question about LibLmdb MDB_GET_BOTH_RANGE and MDB_SET_RANGE



I am trying to figure out how these calls work. The SET_RANGE works as expected but I was expecting different behavior fro GET_BOTH_RANGE.

I have the following code in my spec file.

txn.put(db, "1", "1")
 txn.put(db, "1", "1.1")
 txn.put(db, "1", "1.2")
 txn.put(db, "1", "1.3")
 txn.put(db, "2", "2")
 txn.put(db, "2.1", "2.1")
 txn.put(db, "2.2", "2.2")

Then I do a seek like this

  cur.find_ge(".") #this uses SET_RANGE
   cur.find_ge(".", "1.2")  #this uses GET_BOTH_RANGE

The result of the first call is "1", "1" 
but the second call results in a MDB_NOTFOUND

Seems like I am missing something here.

Thanks.