Revision history for Perl extension Genezzo

0.57 Fri Mar 10 22:49:16 2006
        - extent management in table segments - preliminary work.
        - restrict buffer cache to 100 open files.
        - require a minimum of 4 blocks per file.

0.56 Mon Jan  2 02:41:05 2006
        - Fix "uninitialized value" for invalid column names in insert 
          (thanks, Eric)
        - Added gendba and genexp "-version" flag.
        - Block checksum utility functions.
        - DBI extension: parse_tree_prepare method - prepare a parse_tree 
                         (versus prepare a sql statement).
        - fix bigdb.sql to increase buffer cache size.

0.55 Mon Dec 12 01:17:52 2005
        - Fix "Drop Table" case-sensitivity (thanks, Andrew)
        - Util::USE_FSYNC: check for missing fsync on Win32 and autoflush
          instead

0.54 Wed Nov 30 23:58:53 2005
        - Documentation fixes
        - quiet debug info in QueryRewrite (thanks, Eric)

0.53 Sun Nov 27 20:32:23 2005
        - Documentation fixes

0.52 Fri Nov 25 18:15:16 2005
        - fix unary expression evaluation
        - use TestSetup for regress
        - extend type checking for FROM clause subqueries, set operations
        - basic join support

0.51 Sun Sep 18 00:44:17 2005
        - dictionary recursive sql support
        - CREATE TABLESPACE, add TABLESPACE support to CREATE TABLE/INDEX

0.50 Wed Sep  7 01:36:18 2005
        - add correspondence between BufCaElt and RDBlock via the
          MailBag
        - add hooks for _BCE_dirtyhook, _init_filewriteblock

0.49 Sun Aug 28 22:24:16 2005
        - Util::FileSetHeaderInfo - method to add defs to existing datafile

0.48 Fri Aug 26 23:33:21 2005
        - Consolidate all dictionary defs/prefs, see "dump prefs"

0.47 Thu Aug 25 02:03:21 2005
        - Object-Oriented SysHook
        - arbitrary user preferences (via -define) and fileheader info
          (via -fileheader_define).
        - align fileheader on blocksize boundary

0.46 Sun Aug  7 20:10:17 2005
        - more efficient update of rows that exceed small row threshold.
        - add sync (flush changes to disk without committing a transaction).

0.45 Sat Jul 23 22:26:29 2005
        - More fixes for Raw IO:
        - Util: fix FileGetHeaderInfo for Raw IO - increase buffer size
          to handle large, aligned file headers.
        - Include file header size in space calculations for file size
          and number of blocks -- don't extend past specified file size.
        - add description field to _pref1 dictionary table

0.44 Sun Jul 17 00:34:51 2005
        - Eric's fixes for my merge of Raw IO
        - Fix FSF address everywhere

0.43 Fri Jul  8 02:34:17 2005
        - Enforce case-insensitivity in table, column names.
        - Foundation work for multiple tablespaces.
        - Update address of FSF (spotted by the 
          sharp eyes of Darren Duncan!)
        - Merge Eric Rollins' support for Raw IO.
        - Fix Syshook documentation (thanks again, Eric!)

0.42 Fri Jun 17 01:31:05 2005
        - fix boolean NOT
        - Chain GZERR routines for Havok, UserExtend and other modules
        - Add genexp.pl to install
        - New parser, execution for UPDATE, CREATE 
        - retire Feeble parser

0.41 Thu May 26 00:42:38 2005
        - allow TRUE, FALSE, and NULL in SELECT lists.
        - New parser, execution for ALTER TABLE, DELETE, INSERT.
        - Fix multi-line commands from input file (@file on command line).
        - update SQL in tests to conform to standards.

0.40 Tue May 10 02:04:16 2005
        - Allow arbitrary expressions in SELECT lists.

0.39 Mon Apr 11 00:35:29 2005
        - More typechecking and analysis.
        - Phase in new parser for SELECT with the following
          pluses and minuses: 
          + understands more of SQL grammar
          + better support for perl regex comparisons
          + added primitive EXPLAIN PLAN support
          + better complex expression support
          - more restrictive on quoting conventions
          - slower
          - need to improve parser error messages/recovery
          - identifiers still case-sensitive

0.38 Sat Mar 19 01:05:06 2005
        - Add Plan and MakeAlgebra packages to support new parser
        - Allow multiline SQL statements/require semicolon terminator
        - Hook the Parse::RecDescent grammar to gnz_err.

0.37 Fri Feb 25 00:55:10 2005
        - Add Parse::RecDescent dependency -- prelude to
          new SQL parser.  
          Ship precompiled parser -- 3 meg (!) SQL.pm
          compresses to about 100K.

0.36  Mon Feb  7 22:28:28 2005
        - BufCa/bce: set fileread flag in buffercache element 
          when reading blocks in to counteract the spurious 
          dirtyflag setting when the bigbuf gets updated.
          Set filenum/blocknum *before* the fileread so GetInfo
          is up-to-date.

0.35  Tue Feb  1 22:53:00 2005
        - fix parser to give error for INSERT with no VALUES
        - fix 0.34 compatibility - syshook table changed.
        - pass additional info BCFile/BufCa on current 
          filenum/blocknum.

0.34  Sun Jan 30 01:51:21 2005
        - more SysHook support.
        - option to disable havok

0.33  Sun Jan 23 01:53:03 2005
        - genexpl.pl: export database
        - handle backslashes in single-quoted strings.
        - add rollback support.
        - havok SysHook tables for system extensions.

0.32  Sat Jan  1 00:27:35 2005
        - More error reporting (Feeble parser).
          (Tip o' the hat to Eric Rollins)
        - improve error newline formatting slightly.
        - Try to maintain dictionary/file/block format compatibility 
          between versions.

0.31  Thu Dec 30 00:39:37 2004
        - More error reporting (RSTab, SQLPrepare).
        - add attribute parameters to GenDBI::connect like
          PrintError, RaiseError, and GZERR.

0.30  Sat Dec 25 17:20:34 2004
        - support (unquoted, uppercase) NULL in insert, update.
        - More work on error reporting (GenDBI, Dict, RSTab).

0.29  Mon Dec 13 23:54:35 2004
        - Havok API change.
        - Revise error reporting mechanisms (Util, etc).

0.28  Mon Oct  4 01:09:37 2004
        - cleanup of Havok and UserExtend.  UserExtend simulates
          function import.  More pod documentation.

0.27  Tue Sep 28 23:51:23 2004
        - more metadata fixes

0.26  Tue Sep 28 01:11:09 2004
        - try to fix metadata

0.25  Mon Sep 27 01:33:50 2004
        - print text of check constraints on failure
        - trap undefined functions in WHERE clauses and CHECK constraints
        - havok/UserExtend tables for user extensibility

0.24  Sun Sep 19 01:43:13 2004
        - force sync on commit

0.23  Sat Sep 11 00:00:26 2004
        - fix uniqueness for initial primary key constraint definition 
          in Dict::_index_create
        - support multiple constraints on same table
        - Remove associated constraints and indexes when a table is 
          dropped (maybe should require CASCADE option?)
        - Cons1.t: basic constraint testing

0.22  Fri Aug 27 15:11:13 2004
        - slightly better line-mode "help"
        - remove trailing semicolons with trailing blanks
        - clarify gendba, genDBI docs
        - improve constraint support: UNIQUE and PRIMARY KEY
        - create table: convert CHAR, VARCHAR, NUMBER, NUMERIC, INT,
          DEC, SMALLINT, FLOAT, DOUBLE, REAL types to internal "c", "n"
        - Util:PackRow mutated $value array, converting undefs to 
          zero-length strings, which broke primary key/not null 
          enforcement.  

0.21  Thu Aug 12 09:31:15 2004
        - cleanup for CPAN upload

0.20  Wed Jul 28 23:20:33 2004
        - Dict changes:
           use _get_col_hash to replace hard-coded column indexes in
           Dict, Tablespace.
        - bt2 - support for non-unique indexes where rid is part of key.
        ALTER TABLE ADD CONSTRAINT support

0.19  Thu Jul 22 10:40:15 2004
        - Gnzo2.t: uncovered issue where RSFile might return 
          incorrect rid's during push -- a very serious problem
          for chained rows.  Fixes to RSFile::_get_current_chunk
        - Dict changes: 
            add ind1, ind1_cols tables for index information
            add primary key for cons1_cols, _tsfiles, ind1, ind1_cols
            dump "help" option
        - fix fetch from empty index

0.18  Mon Jul 12 22:36:04 2004
        - extensible datafiles via increase_by
        - add "increase_by" to AddFile command.  Support fixed size (bytes) 
          increase or percentage increase.  
        - Dict changes:  
            _tspace  - addfile column
            _tsfiles - increase_by column
        - add "bigdb.sql" script to reset database to acquire multiple, 
          auto-extending datafiles
        - fix month in iso-8601 dates
        - insert select: check if table exists first
        - add SHOW command with version, license
        - convert to GPL

0.17  Sat Jul  3 15:18:54 2004
        - Gnzo2.t: fixes for long row splitting and updating.  Make sure
          to write row status bit changes (versus just updating in memory).
          Always insert the new row pieces first so if run out of
          space, the original row value is preserved.

0.16  Thu Jul  1 14:48:44 2004
        - IdxTab filter fixes
        - btHash Index fetch (fetching from index as a "table") 
          filter fixes.
        - Dict changes: 
            core table "creationdate" columns in iso-8601 format
            (YYYY-MM-DDtHH:MI:SS) because numeric date "epoch" 
            not portable.
            _tab1    - otype to object_type, 
            _tsfiles - add initial_size, calc_increase
        - pass filename, size arguments for AddFile
        - datafile portability: only store relative paths for file names
          in _tsfiles so can move gnz_home directory
        - default increase_by=50% for extent allocation
        - Extensible datafiles via increase_by (in progress)
        - Gnzo2.t: fixes for long row splitting and updating (still broken)

0.15  Mon Jun 21 21:32:43 2004
        - Create Index <index_name> on <table_name> (col1 [,...<col_n>])
        - Use primary key index lookup for equality predicates 
          (WHERE index_col = "literal")
        - INDEX object type
        - core table "creationdate" column as number (not char)
        - estimation for rsidx/bthash - (placeholder - just straight count)
        - fixes for primary key constraints
        - Internal: bt2 - fix SQLFetch to match RSTab api
                    Dict - define and load primary key indexes in 2 phases
        - fix "select count(*) from ggg" when ggg is an idxtab

0.14  Thu Jun 17 19:47:13 2004
        - btree support for unique key (duplicate detection)
          on insert, added key_type argument to simplify btree
          api, start_key/stop_key support in index SQLPrepare,
          IOT's with multiple value columns, WHERE clause support
          for startkey/stopkey for (=, <, >) operations.
        - Handle "nearest" start/stopkey, versus an exact match.
        - Internal: start transitioning to object_id vs tablename
          in dictionary, space mgmt, row sources
        - primary key constraints for dictionary tables
        - primary key index support

0.13  Fri Jun  4 02:24:31 2004
        - index enhancement to support multicolumn keys,
          index persistent space management, 
          fix rowcount on insert failure, index count support,
          index-only table support via "ct <tabname> index <col=value>...", 
          limited WHERE clause support for equality keys

0.12  Fri May 21 01:40:43 2004
        - change packrow - don't need separate len for null bitvec,
          parameterize numeric pack types to support BER ints.  
          Add -define parameter to pass key=value pairs for db
          initialization (e.g. blocksize=2k).  
          Fix rowcount in DBI fetch (GenDBI::SelectFetch).
          Cleanup Tablespace handling of filearr,used/unused to match
          Dict _tsfiles fileidx.
          Use Util::UNPACK_TEMPL_ARR to cache common unpacking templates
          to speed up UnPackRow.
          bt2: faster insertion

0.11  Tue Mar 30 23:14:54 2004
        - change col1 and pref1 column names so not reserved words,
          fix bufcache creation to get size from prefs, use all free 
          blocks before checking pin status, parse IS [NOT] NULL 
          predicates

0.10  Fri Mar 19 23:59:46 2004
        - describe table, better string parsing of relop tokens 
          (e.g. =, <, > ...), primitive sql update (basically single
          row update column=value, no subqueries), slight fixes on
          RSFile/SMFile nextblock improve row packing density, remove
          surrounding quotes on insert/update values, return undef's in 
          SelectFetch (versus the string "<undef>"), quiet undef warnings
          for WHERE filters, simple sql create/drop table, deprecate use
          of pack Z template in fileheader to stay compatible with
          perl 5.6.  

0.09  Tue Mar  9 20:59:04 2004
        - metadata support functions, DBI-style interfaces, 
          column aliases, basic WHERE clause support, sql DELETE,
          dbi_example.pl script
        - insert select, additional fileheader fields and checksum,
          fixes for RSTab row splitting, HCount/ECount fetch

0.08  Tue Feb 10 08:11:20 2004 
        - row chaining/splitting, block labelling and checksums, 
          count estimation, variable fileheader with versioning, 
          HSuck, multiple file support via AddFile

0.07  Sun Nov 02 07:28:33 2003
        - null handling in blocks, improve parser

0.06  Sat Oct 18 07:53:53 2003
        - remove SQL::Statement dependency - use Feeble parser, 
          btree index prototyping, block (vs row) interface: make_new_block

0.05  Wed Oct 01 07:42:33 2003
        - Dictionary restructure for true tids vs rids

0.04  Tue Sep  2 21:28:29 2003
        - more comments, testing, configuration, automatic install,
          single file database with self-describing dictionary

0.03  Experimental
0.02  Experimental

0.01  Wed Mar 26 11:52:41 2003
	- original version; created by h2xs 1.20 with options
		-X Genezzo

