Jeffrey Cohen
and 1 contributors

NAME - an extensible database with SQL and DBI


  # Basic line-mode usage
  use Genezzo::GenDBI; # see

  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, <>
  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,


perl(1), -man, perldoc DBI,

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
    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:

For more information, please visit the Genezzo homepage at