gendba.pl man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

GENDBA(1)	      User Contributed Perl Documentation	     GENDBA(1)

NAME
       gendba.pl - line mode for Genezzo database system

SYNOPSIS
       gendba [options]

       Options:

	   -help	    brief help message
	   -man		    full documentation
	   -init	    build a gnz_home installation if necessary
	   -gnz_home	    supply a directory for the gnz_home
	   -version	    print version information
	   -shutdown	    do not startup
	   -define key=val  define a configuration parameter

	   -fileheader_define key=val  define a file-specific configuration
				       parameter (not useful in general)

OPTIONS
       -help
		   Print a brief help message and exits.

       -man
		   Prints the manual page and exits.

       -init
		   Build the gnz_home dictionary and default tablespace if
		   it does not exist.

       -gnz_home
		   Supply the location for the gnz_home installation.  If
		   specified, it overrides the GNZ_HOME environment variable.

       -version
		   Print version information.

       -shutdown
		   If initializing a new database, then shutdown when
		   complete, versus continuing in interactive mode.

       -define key=value
		   Define a configuration parameter for database
		   creation and/or initialization.  Some important
		   database creation parameters are blocksize and dbsize,
		   which define the size of database blocks and
		   the size of the initial database file.  An important
		   initialization parameter is use_havok=0, which
		   disables the havok extensibility subsystem on database
		   startup. Use "gendba.pl -define help=help"
		   for more information.

       -fileheader_define key=value
		   Define a file-specific configuration parameter when the database
		   is created.	For specialized extensions which cannot use the dictionary
		   preference table.

DESCRIPTION
       Genezzo is an extensible, persistent datastore that uses a subset of
       SQL.  The gendba line-mode tool lets users interactively perform
       management tasks, as well as define and modify tables, and manipulate
       table data with updates and queries.

   Commands
       Genezzo supports some very basic SQL create/drop/alter/describe table,
       select, insert, update and delete syntax, and like standard SQL, table
       and column names are case-insensitive unless quoted.  More complex SQL
       parses, but is ignored.	The only supported functions are count(*) and
       ecount(*), a non-blocking count estimation function.  The database also
       supports commit to force changes to disk, but no rollback.  NOTE: Data
       definition (such as create table or ct) must be manually committed to
       keep the database in a consistent state.	 Uncommitted inserts and
       updates will only be block-consistent -- there is no guarantee that the
       data will get flushed to disk, and no guarantee whether the changes
       will or will not take effect.

	   rem	Some simple SELECTs
	   select * from _col1;
	   select rid, rownum, tname, colname from _col1;
	   select count(*) from _col1;
	   select ecount(*) from _col1;

	   rem	SELECTs with WHERE, perl and SQL style.
	   select * from _tab1 where tname =~ m/col/;
	   select * from _tab1 where tid < 5;
	   select * from _tab1 where numcols > 3 AND numcols < 6;

	   rem basic joins
	   select * from _tab1, _col1  where _tab1.tid = _col1.tid
	    and _tab1.tname =~ m/col/;

	   rem	Column aliases and Expressions
	   select tid as Table_ID, tname Name, (tid+1)/2 from _tab1;

	   rem	Basic INSERT
	   insert into test1 values ('a','b','c','d');
	   insert into test1(col2, col1) values ('a','b','c','d');

	   rem CREATE TABLE and INSERT...SELECT
	   create table test2(col1 char, col2 char);
	   insert into test2 (col1) select col1 from test1;

	   rem	DELETE with WHERE
	   delete from test1 where col1 < 'bravo' and col2 > 5;

	   rem	UPDATE with WHERE (no subqueries supported)
	   update test2 set col2 = 'foo' where col2 is null;

	   rem CREATE an INDEX
	   create index test1_ix on test1(col1);

	   rem ADD a CHECK CONSTRAINT
	   alter table test2 add constraint t2_cn1 check (col2 =~ m/(a|b|c|d)/x );

	   commit

       Genezzo also supports the following "short" commands: ct, dt, s, i, d,
       u

       ct - create table
		 example: ct EMP NAME=c ID=n
		 SQL equivalent: CREATE TABLE EMP (NAME CHAR(10), ID NUMBER) ;

       dt - drop table
		 example: dt EMP
		 SQL equivalent: DROP TABLE EMP ;

       s - select
		 example: s EMP *
		 SQL equivalent: SELECT * FROM EMP ;

		 example: s EMP rid rownum *
		 SQL equivalent: SELECT ROWID, ROWNUM, * FROM EMP ;

		 example: s EMP NAME
		 SQL equivalent: SELECT NAME FROM EMP ;

       i - insert
		 example: i EMP bob 1 orville 2
		 SQL equivalent:
		   INSERT INTO EMP VALUES ('bob', '1');
		   INSERT INTO EMP VALUES ('orville', '2');

       d, u - delete and update
		 DELETE and UPDATE only work by rid
		 -- you cannot specify a predicate.

		 example: d emp 1.2.3
		 SQL equivalent: DELETE FROM EMP WHERE RID='1.2.3' ;

		 example: u emp 1.2.3 wilbur 4
		 SQL equivalent: UPDATE EMP SET NAME='wilbur',
						ID='4' WHERE RID='1.2.3' ;

       Genezzo stores information in a couple of subsidiary files: the default
       install creates a file called default.dbf which contains the basic
       dictionary information.	Other data files can be added as needed.
       While the default configuration uses a single, fixed-size datafile,
       Genezzo can be configured to use datafiles that grow to some maximum
       size, and it can also be configured to automatically create new
       datafiles as necessary.

       All tables are currently created in the system tablespace by default.

       There are a couple of other useful commands:

       HELP -- give help
       DUMP -- dump out internal data structures
       DUMP TABLES - list all tables
       DUMP TS - dump tablespace information
       RELOAD - reload all Genezzo perl modules (will lose uncommited changes,
       though)
       COMMIT - force write of changes to database.  Note that even CREATE
       TABLE is transactional -- you have to commit to update the persistent
       dictionary. Forgetting to commit can cause weird behaviors, since the
       buffer cache may flush data out to the dbf file.	 Then you can have the
       condition where the tablespace reuses these "empty" blocks and they
       already have data in them.

   Environment
       GNZ_HOME: If the user does not specify a gnz_home directory using the
       '-gnz_home' option, Genezzo stores dictionary and table information in
       the location specified by this variable.	 If GNZ_HOME is undefined, the
       default location is $HOME/gnz_home.

AUTHORS
       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  US

       Address bug reports and comments to: jcohen@genezzo.com

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

perl v5.20.2			  2015-08-30			     GENDBA(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net