#!/usr/local/bin/ruby
$LOAD_PATH.unshift("..", "../../src")
require 'bdbxml'
require 'find'
Find::find('tmp') do |f|
File::unlink(f) if FileTest::file? f
end
env = BDB::Env.new("tmp", BDB::CREATE | BDB::INIT_TRANSACTION)
bdb = env.open_db(BDB::Btree, "tutu", nil, "a")
man = env.manager
doc = man.create_container("toto", BDB::XML::TRANSACTIONAL)
2.times do |i|
doc.put("#{i}", "title nb #{i}")
bdb[i] = "bdb#{i}"
end
que = man.prepare("collection('toto')/bk")
qc = man.create_query_context
man.begin(doc, bdb, que) do |txn, doc1, bdb1, que1|
2.times do |i|
bdb1[i+2] = "bdb#{i+2}"
doc1.put("#{i+2}", "title nb #{i+2}")
end
puts "=============== get ========================"
p doc1.get("2")
puts "================ each ======================"
que1.execute(qc) {|x| p x }
puts "================= bdb ======================"
bdb1.each {|k,v| p "#{k} -- #{v}" }
# implicit txn.abort
end
puts "=============== each ======================"
que.execute(qc) {|x| p x }
puts "================= bdb ====================="
bdb.each {|k,v| p "#{k} -- #{v}" }