NAME

Genezzo::GenDBI.pm - an extensible database with SQL and DBI

SYNOPSIS

# 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");

DESCRIPTION

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.

EXPORT

VERSION, RELSTATUS, RELDATE: version, release status, and release date

TODO

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, CREATE TABLESPACE, etc.

AUTHOR

Jeffrey I. Cohen, jcohen@genezzo.com

SEE ALSO

perl(1), gendba.pl -man, perldoc DBI, http://dbi.perl.org/

Copyright (c) 2003, 2004, 2005 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: jcohen@genezzo.com

For more information, please visit the Genezzo homepage at http://www.genezzo.com