More notes on the database abstraction layer: 
  
 I did point out that the API isn't totally frozen  :) 
  
 For database cursors, we were keeping cursor variables around 
per-thread-per-table,
which requires putting Berkeley DB specific stuff in server/threads.h , and
that's got to go. 
  
 Therefore I am changing the API so that cdb_rewind() returns a cursor, and
cdb_next_item() must be passed that cursor with every call.  As always, the
caller is expected to keep reading until the end, at which point the cursor
is de-allocated by the backend.  The data type of the cursor is `void *` and
the backend is expected to cast it to its own native type. 
 

Reply via email to