[elephant-devel] Problem with Elephant and BTree access

Waldo Rubinstein waldo at trianet.net
Fri Jan 6 06:59:01 UTC 2006


After reading your script, I tried it again in OpenMCL and it worked.  
See below (but please see further below):

Welcome to OpenMCL Version 1.0 (DarwinPPC32)!
? (in-package :ele)
#<Package "ELEPHANT">
? (open-store "testdb")
#<BDB-STORE-CONTROLLER #x89CF54E>
? (setq bt (make-btree))
#<BDB-BTREE #x89CD506>
? (add-to-root "EDI-834-TAPES" bt)
#<BDB-BTREE #x89CD506>
? (close-store)
NIL
? (setq bt nil)
NIL
? (open-store "testdb")
#<BDB-STORE-CONTROLLER #x89CC55E>
? (setq bt (get-from-root "EDI-834-TAPES"))
#<BDB-BTREE #x89CBADE>
? (get-value 1234 bt)
NIL
NIL
? (setf (get-value 1234 bt) "My test")
;Compiler warnings :
;   Undeclared free variable BT, in an anonymous lambda form.
"My test"
? (close-store)
NIL
? (setq bt nil)
NIL
? (open-store "testdb")
#<BDB-STORE-CONTROLLER #x89C9E36>
? (get-value 1234 (get-from-root "EDI-834-TAPES"))
"My test"
T
? (close-store)
NIL

However, when I try it using the format used in the Tutorial, it  
fails. See below:

? (open-store "testdb")
#<BDB-STORE-CONTROLLER #x89C8DEE>
? (setq bt (make-instance 'btree))
#<BTREE #x89C851E>
? (add-to-root "EDI-834-TAPES" bt)
#<BTREE #x89C851E>
? (close-store)
NIL
? (setq bt nil)
NIL
? (open-store "testdb")
#<BDB-STORE-CONTROLLER #x89C7BAE>
? (setq bt (get-from-root "EDI-834-TAPES"))
#<BTREE #x89C7256>
? (get-value 1234 bt)
 > Error in process listener(1): No applicable method for args:
 >                                (1234 #<BTREE #x89C7256>)
 >                                to #<STANDARD-GENERIC-FUNCTION GET- 
VALUE #x84146AE>
 > While executing: #<CCL::STANDARD-KERNEL-METHOD NO-APPLICABLE- 
METHOD (T)>
 > Type :POP to abort.
Type :? for other options.
1 >

The main difference is the way the BTree class is created. In the  
tutorial, it says to use (make-instance 'btree). In your script,  
which worked, you suggest to use (make-btree). Apparently, these are  
two different CLOS classes. I believe that the tutorial is then  
somehow inaccurate.

Thanks,
Waldo

On Jan 5, 2006, at 9:40 PM, Robert L. Read wrote:

> This works for me under SBCL; please see the attached typescript.
>
> I can't conjecture what the problem might be; is the script you  
> show below everything?
> Are the packages changes somehow done in a visual environment and  
> there for not showing?
> Try running through my script and let me know what the results are,  
> if this is still a problem for you.
>
<snip>





More information about the elephant-devel mailing list