Genezzo::Index::btHash - btree Hash tied hash class. Makes a persistent btree based upon Genezzo::Block::RDBlock look like a conventional hash.
use Genezzo::Index::btHash; my %tied_hash = (); my $tie_val = tie %tied_hash, 'Genezzo::Index::btHash';
btHash is a wrapper for Genezzo::Index::bt2, a btree class based upon Genezzo::Block::RDBlock. The tied hash is functionally complete, but not particularly efficient in some cases due to the "impedance mismatch" between the hash, btree and underlying RDBlock implementation.
- figure out whether should be a pushhash, hash, or rowsource
- SQLPrepare/Execute/Fetch: clean up. Shouldn't need to manage a distinction between using btHash as a row source and the old bt2 api. bt2 is wrong - should only have one Fetch style. Should be able to use the index start/stop key vs filtering.
- NEXTKEY: broken in "dump tsidx" for case where create 2 tables, insert some rows, then drop the first table (and don't COMMIT) and call dump tsidx. Loops in NEXTKEY - never terminates for allfileused index.
- Add ReadOnly mode so can view indexes, but not insert/update/delete.
Jeffrey I. Cohen, email@example.com
Copyright (c) 2003, 2004 Jeffrey I Cohen. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Address bug reports and comments to: firstname.lastname@example.org
For more information, please visit the Genezzo homepage at http://www.genezzo.com