Genezzo::GenDBI.pm - an extensible database with SQL and DBI
# Basic line-mode usage use Genezzo::GenDBI; # see gendba.pl my $fb = Genezzo::GenDBI->new(exe => $0, gnz_home => $mygnz_home, dbinit => $do_init); $fb->Parseall($myquery); # process a statement $fb->Interactive(); # invoke line mode # DBI-style usage - see perldoc DBI, <http://dbi.perl.org/> my $dbh = Genezzo::GenDBI->connect($mygnz_home); my $rv = Genezzo::GenDBI->do("startup"); my @row_ary = $dbh->selectrow_array($statement); my $ary_ref = $dbh->selectrow_arrayref($statement); my $hash_ref = $dbh->selectrow_hashref($statement); my $sth = $dbh->prepare($statement); $rv = $sth->execute; @row_ary = $sth->fetchrow_array; $ary_ref = $sth->fetchrow_arrayref; $hash_ref = $sth->fetchrow_hashref; $rv = $sth->rows; $rv = Genezzo::GenDBI->do("commit"); $rv = Genezzo::GenDBI->do("shutdown");
The Genezzo modules implement a hierarchy of persistent hashes using a fixed amount of memory and disk. This system is designed to be easily configured and extended with custom functions, persistent storage representations, and novel data access methods. In its current incarnation it supports a subset of SQL and a partial DBI interface.
VERSION, RELSTATUS, RELDATE: version, release status, and release date
- SPOOL: options to remove "prompt> " from output files
- Feeble/SQL: fix DESCribe to handle quoted identifiers.
- TABLESPACE: alter, drop, online, offline, more testing...
- This module is a bit of a catch-all, since it contains a DBI-style interface, an interactive loop with an interpreter and some presentation code, plus some expression evaluation and query planning logic. It needs to get split up.
- SQLselprep_Algebra: move to XEval
- SQLAlter: need And purity check
- SQLUpdate: cleanup - avoid generating new SELECT. Allow regexp update.
- SQLCreate: need to handle CREATE TABLE AS SELECT, table/column constraints, etc.
Jeffrey I. Cohen, firstname.lastname@example.org
Copyright (c) 2003-2007 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: email@example.com
For more information, please visit the Genezzo homepage at http://www.genezzo.com