Jeffrey Cohen
and 1 contributors

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

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.

AUTHOR

Jeffrey I. Cohen, jcohen@genezzo.com

SEE ALSO

perl(1), gendba.pl -man, perldoc DBI, http://dbi.perl.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: jcohen@genezzo.com

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