Commit: 5cc2c48074503df92da8f2eb04e1bfad33dafd61 
Author: Mark Lawrence <nomad@null.net> Fri, 14 Sep 2007 10:04:38 +0200 

    General:
        What is it with UNIVERSAL qw(isa) not letting me use 'isa()' on its
        own?
    SQL::DB::Query
        Removed st_columns (old alias for st_select) as it doesn't look like
        anything SQL.
    CPAN
        Uploaded as 0.05.

Commit: 68422f5b3549d0cb1f0f7387d884641a6e31bf08 
Author: Mark Lawrence <nomad@null.net> Fri, 14 Sep 2007 01:49:17 +0200 

    New syntax for UPDATE:
        update => [$table->set_column($value)]
        # or
        update => [$table->column->set($value)]
    SQL::DB::Expr
        Minor cleanup of "" overloading methods.
    SQL::DB::AColumn
        Reworked internals based on SQL::DB::Expr changes in previous commit.
    SQL::DB::Table
        Added dynamically generated "set_column" methods to ARows for new
        UPDATE syntax.
    SQL::DB::Query
        Removed the "set => [...]" syntax.
        Less duplication of parent class (Expr) methods.
    Tests
        A few more added to the mix.

Commit: 06b5561cef4479dff30ddb676620bfd4d5853437 
Author: Mark Lawrence <nomad@null.net> Wed, 12 Sep 2007 21:23:17 +0200 

    SQL::DB::Functions
        Renamed to SQL::DB::Function.
        Big cleanup/rewrite with new support for MAX, MIN, COUNT & SUM.
        Tests for all functions.
    
    SQL::DB::Expr
        Added missing tests to git.
    
    SQL::DB::Schema
        Now exports on request the Functions subroutines.
    
    SQL::DB
        Now exports on request the Functions subroutines.
        Added example function use to the SYNOPSIS.

Commit: 3256dd399dffe0481f71d500f980e69e3677c7db 
Author: Mark Lawrence <nomad@null.net> Wed, 12 Sep 2007 18:22:16 +0200 

    SQL::DB::Expr
        Complete cleanup and factoring of code, with tests. Looks like this
        class now does what it should.

Commit: ea8813c18ccfc8fba1f696bd7bfd6a86632f5f20 
Author: Mark Lawrence <nomad@null.net> Tue, 11 Sep 2007 22:44:38 +0200 

    SQL::DB::Functions and t/functions.t added.

Commit: 1cdb044cb1e13e4d678c3fe94e04232de42523c4 
Author: Mark Lawrence <nomad@null.net> Mon, 10 Sep 2007 10:17:38 +0200 

    SQL::DB::Table: simplified 'setup_columns' to use 'setup_column'

Commit: 295650d9f006a81f2fd74ba4ada7d0267e2a4af9 
Author: Mark Lawrence <nomad@null.net> Sun, 09 Sep 2007 21:50:46 +0200 

    * Built-in sequences support.
    * All internal hash keys now prefixed by 'sqldb_'.
    * New SQL::DB::Functions package. First function 'coalesce' created.

Commit: 912f076f80903d94edc60d2e430dd918549a0c89 
Author: Mark Lawrence <nomad@null.net> Sat, 08 Sep 2007 21:04:57 +0200 

    SQL::DB now inherits directly from SQL::DB::Schema. Hence schema() method
    removed and define() and query() come directly from parent class.
    Fixed up bug in t/synopsis.t and cleaned up SYNOPSIS to actually run.
    Documentation for above updated.
    New sql_create(), sql_create_table() and sql_create_indexes() methods for
    SQL::DB::Table. t/02-table.t updated to test for these.

Commit: 40b94121a45e3a5bac08bab01bf9d4be2bb8a4f4 
Author: Mark Lawrence <nomad@null.net> Sat, 08 Sep 2007 19:58:07 +0200 

    Added a fetch1() method to return a single value.

Commit: 96859c4215b51866166cd4433f3373807de533da 
Author: Mark Lawrence <nomad@null.net> Sat, 08 Sep 2007 19:44:54 +0200 

    Fixed a Query bug where not all table aliases were removed in non-SELECT
    statements.

Commit: a8ec7eb4dec4168e3f817d98c874fe995c450fa9 
Author: Mark Lawrence <nomad@null.net> Thu, 06 Sep 2007 16:44:04 +0200 

    Added MySQL table ENGINE|TYPE.
    Added unique_index as a shortcut for index => [unique => 1, ...]

Commit: 4a5cde2bef168ddc6ed18d62c84807cbccea41d1 
Author: Mark Lawrence <nomad@null.net> Thu, 06 Sep 2007 14:38:16 +0200 

    Removed requirement for Perl 5.8. Not sure why it was set in the first
    place - maybe to do with Scalar::Util::weaken support?

Commit: e59dac4fd11d854760b4556f238ef548dd639937 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 14:43:21 +0200 

    VERSION to 0.05

Commit: c2ed27063c0348ba3750221a3a1f5423ed09590a 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:50:54 +0200 

    Debian control description and changes update.
    Released to CPAN as version 0.04.

Commit: 011f261861eae7d691705f407aed9def3159e02c 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:42:51 +0200 

    README updates.

Commit: b2b8c4b54ac10be771adb3c3326925bdf641e01a 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:37:44 +0200 

    Added a test to extract and run the SYNOPSIS code.

Commit: d0a72e93800d22b937e91a452375bec782ea3667 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:18:58 +0200 

    The SYNOPSIS from SQL::DB is now a fully working example.

Commit: bdf5b8ddb467544bdf94e2eae653aafc4e83aaca 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:18:19 +0200 

    Fixed "index" to allow just the column name as well as an ARRAY ref.

Commit: d0a6f5870ff8b5e751ff9555b9a4c8ccc7a651d1 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:17:18 +0200 

    Make new() and alias for _new() in SQL::DB::ARow. Not yet decided what
    the final api should be.

Commit: 379073cc98768bd2fc38df76b6d077099a7791cf 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:16:26 +0200 

    Fixed ASC and DESC to be returned as SQL::DB::Expr objects.

Commit: 51e6cc803244b946695c9c13c5995eb7a474726a 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 13:13:49 +0200 

    Added "ref" as an alias for "references" when defining columns.

Commit: a473e84314dceffc5c066e0960f97609ad522113 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 11:12:55 +0200 

    Added "column" definition support (singular version of "columns") to
    the SQL::DB::Table creation syntax.

Commit: 180cc3d582ea98caf43ea82aa7cd9f64bb4cdc00 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:49:59 +0200 

    t/live updated to test recent changes.

Commit: 9490c507a90a37f1a580d71e63c02625b245c6d1 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:49:04 +0200 

    Added the start of a SQL::DB::Tutorial.

Commit: a05fac56794211c87e845dd9332e60ad3b04845d 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:48:34 +0200 

    Added temporary set() function to SQL::DB::AColumn so that one can
    write "set => [$arow->acolumn->set($val)]" statements. Considering using
    the modifiable subroutine lvalue (Experimental) support in perl so that
    we can write "set => [$arow->acolumn = $val]" instead, which is much
    more SQL-like.

Commit: 483dcdb6322a38cbcc1bf34f9c5cac154314d026 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:39:06 +0200 

    SQL::DB::Expr: New Expressions: <=, >=, +

Commit: 7a2308396da2a587eb7683d8185dedfdbb95f492 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:36:39 +0200 

    Minor documentation edits to SQL::DB::Schema.

Commit: f08e45dda5356e4afa8352ed1cc4edbb50c91e3a 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:35:27 +0200 

    SQL::DB::Object: Fixes to "columns changed?" related methods.

Commit: 8ab138d050aa899b369fa837fc0a17426378d79a 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:33:22 +0200 

    Added SQL::DB::Query->wantobjects, ->arows, "selecto" methods.

Commit: 96ab59b7dce96fd0fca7bfab8273d03fcee22fe3 
Author: Mark Lawrence <nomad@null.net> Wed, 05 Sep 2007 10:28:53 +0200 

    Major API change and cleanup of DB.pm
     * Objects now created with new()
     * New methods: define(), connect_cached(), qcount(), fetch()
     * Removed: do_query(), so()
     * Removed Tutorial - will go into new SQL::DB::Tutorial.pod
     * Documentation matches code.

Commit: 7258a65796db7c15ff566f4fd367e17540ecb8ef 
Author: Mark Lawrence <nomad@null.net> Wed, 22 Aug 2007 19:02:04 +0200 

    Added method SQL::DB::Table->primary_column_names()

Commit: f60a61b53ff54dd1f118d1944fd14df429a24ca1 
Author: Mark Lawrence <nomad@null.net> Tue, 21 Aug 2007 17:03:55 +0200 

    Added 'bases' (inherit from class) support to SQL::DB::Table

Commit: 12db827f6ea8843c8bb6dacdcc52401c3c3d3eb3 
Author: Mark Lawrence <nomad@null.net> Tue, 21 Aug 2007 11:36:29 +0200 

    Tests & Cleanups

Commit: d4179cd7ff8e466e8defcd8719861b300e28c9fc 
Author: Mark Lawrence <nomad@null.net> Mon, 20 Aug 2007 23:41:54 +0200 

    Removed old t/02-abstract.t

Commit: 2dfe862c919b7bdb0d95afae3427cebabe3ee176 
Author: Mark Lawrence <nomad@null.net> Mon, 20 Aug 2007 23:00:45 +0200 

    New Schema for tests.

Commit: 47ce13fc4969ec12ad5728509040ebfc3c870188 
Author: Mark Lawrence <nomad@null.net> Mon, 20 Aug 2007 22:59:20 +0200 

    Removed old t/Column.t

Commit: ebc942ba1bddee2810ab3823051038aed8ab655c 
Author: Mark Lawrence <nomad@null.net> Mon, 20 Aug 2007 22:55:00 +0200 

    Added test for SQL::DB::Table

Commit: 9774e98a7f15546f8392ec6eb2f0799a27beaf5d 
Author: Mark Lawrence <nomad@null.net> Mon, 20 Aug 2007 22:33:47 +0200 

    Added test for SQL::DB::Column

Commit: f1ba432caee86da98aafe9cecf626b09d8a667d6 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 23:37:03 +0200 

    Big simplification and cleanup of SQL::DB::AColumn. SQL::DB::AColumn::Func
    has been removed as the func() method now clones and returns a new AColumn.

Commit: 548d34cd429a35ed6a9f87ac5cfd8a96897f9752 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 23:35:25 +0200 

    Added q_delete to SQL::DB::Object.

Commit: b35ed20f6514909de86a8d1067fe92ae798f9dbb 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 23:34:51 +0200 

    Minor cleanups to SQL::DB::Query

Commit: 0c185ee934a41f166c133417f0bb35b8a0842037 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 11:09:15 +0200 

    Can no longer call SQL::DB::Schema->arow. User code must now call
    Class->arow, or Class::Abstract->new directly.

Commit: cf84b62b77e4033bacdf0886fb5bdc67f13ccbf8 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 11:07:32 +0200 

    SQL::DB::ARow is no longer responsible for creating the Abstract classes -
    this is now handled by SQL::DB::Table.
    Also includes a simplification - Removed all 'reference' code.

Commit: 8c254779201404d12e9f44afce6d419628db3f7a 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 11:06:07 +0200 

    SQL::DB::Table now automatically creates the Class, and the Abstract Class
    for each table.

Commit: d24d6cc202ca4e911ce7532f732c3e5a97f0fd18 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 11:03:58 +0200 

    Cleanup and simplification of functions in SQL::DB::Column.

Commit: d70c4bff4d80dc269c59cb0b1faa39099bfb9dfc 
Author: Mark Lawrence <nomad@null.net> Sun, 19 Aug 2007 11:01:43 +0200 

    Removed inc/Module/Install from git/cogito control.

Commit: df8970faa8b913035c3353f2f28164c5f776b687 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 20:32:52 +0200 

    Cleanup and Documentation for SQL::DB::Table

Commit: cb014d11455950c14c391b449546386ee04b307a 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 17:51:52 +0200 

    Turned SQL::DB::Column->references() into a lazy inflation function. This
    means we don't care about the order in which tables are defined, although
    it is still important because the database (eg PostgreSQL) still cares.

Commit: fba17d2a2364e49f874e3e233d3a523940b40c65 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 17:46:40 +0200 

    Less verbose debugging in SQL::DB::ARow

Commit: 29973dbca9bfda6232de6d36b75e798f0bc06138 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 17:37:41 +0200 

    Added basic AS support to SQL::DB::AColumn

Commit: f99f286dc7554b2d132042300b34ccd4964c4eff 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 17:08:54 +0200 

    SQL::DB::Schema now has only query() method. select(), update() etc are
    gone.

Commit: ddc54037393f5ada7beeffc2e60f3d13bf4c815e 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 17:08:02 +0200 

    Added not equals '!=' expression type to SQL::DB::Expr.

Commit: de5034cbb93d4e6591aed5fadd79f58a9ddfaebb 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 17:01:05 +0200 

    Folded SQL::DB::Query::* into SQL::DB::Query. SQL::DB has basic support for
    retrieving on-demand objects and SQL::DB::Object-based objects.

Commit: f4685ed0b44928b1ff6fbb8e88720e00981a6bc2 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 16:50:29 +0200 

    SQL::DB::Table now creates object classes based on SQL::DB::Object.

Commit: 4a79e6c2ffeb6f8e6f07bdfebdb60dab77df3ed3 
Author: Mark Lawrence <nomad@null.net> Sat, 18 Aug 2007 16:49:27 +0200 

    Added new SQL::DB::Object class.

Commit: f6e3b2f5136537d232e86d13b4b4fd8e3a803e47 
Author: Mark Lawrence <nomad@null.net> Tue, 26 Jun 2007 15:10:07 +0200 

    * Added Fans (of which an Artist has many) Link-table to the test schema
    * Added hard dependency on DBI

Commit: 40e77ac1ec09887be04509ad2ebef45c7f0d81b5 
Author: Mark Lawrence <nomad@null.net> Fri, 22 Jun 2007 01:59:29 +0200 

    * Properly implement ->func: now works for multiple function calls on
    the same column.
    * Removed one "weaken" too many in ARow.pm.

Commit: 25bc634ba5847284998f1cd9cc6cfa97017dc62a 
Author: Mark Lawrence <nomad@null.net> Thu, 21 Jun 2007 10:58:17 +0200 

    Added GROUP BY support.

Commit: 38c5a95ca67ccd5179425a8f6d820359df3525a1 
Author: Mark Lawrence <nomad@null.net> Wed, 20 Jun 2007 14:47:53 +0200 

    Converted SQL::DB::sth_to_simple_objects from Class::Struct =>
    Class::Accessor::Fast. Removed dependency on Class::Struct.

Commit: ba606fbbb6acf8db66ba47f2b2ed48e5f482ffc4 
Author: Mark Lawrence <nomad@null.net> Wed, 20 Jun 2007 13:59:17 +0200 

    Converted SQL::DB::Column from Class::Struct to Class::Accessor::Fast
    New dependency on Class::Accessor

Commit: 593ba883145ce1cf4bd429041b9679f14f43c0e6 
Author: Mark Lawrence <nomad@null.net> Wed, 20 Jun 2007 13:16:41 +0200 

    * Support for multiple 'unique' or 'index' statements in table definition.
    This makes the schema definition syntax much cleaner as it does away with
    some of the array refs.
    * Fixed a PRIMARY KEY bug in CREATE TABLE statements.

Commit: 77651e8b419f067feabdc4692ed056b184e70f29 
Author: Mark Lawrence <nomad@null.net> Wed, 20 Jun 2007 13:13:32 +0200 

    Test Schema: Moved table unique and index command to be multiple ARRAYREFs

Commit: 61c1a014cdc150e0dfc61ca8542199704d3d645f 
Author: Mark Lawrence <nomad@null.net> Wed, 20 Jun 2007 00:25:19 +0200 

    Added brackets to UNION statements

Commit: 799bf0fbd52d92b4efbd2f9e80d23c0c2af504a5 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 23:33:26 +0200 

    Support for arbitrary database functions (count, max, min, etc)

Commit: 7638cfb9b0e9f1d26925bcfe74538233aa72ab31 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 21:26:39 +0200 

    Fixed a rather broken SQL::DB->schema method.

Commit: d723d3798029834d6642ab9b98d36beff3f784c0 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 20:48:09 +0200 

    Module::Install::Build no longer necessary and removed.

Commit: 7fb60ce1932cdf7cd0fa1cacc16460dc74e3cf3a 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 20:22:24 +0200 

    SELECT UNION Support.

Commit: 60cff74c7679104eb4ed73967c71a85e372cd05f 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 19:04:33 +0200 

    Added vim defaults to every module: # vim: set tabstop=4 expandtab:

Commit: a6f49bf880862def54c6b3ef0faf96af7299663a 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 18:16:18 +0200 

    Column.pm: Make Class::Struct class definition at compile time.

Commit: b5161ad74522bb17481f39c827fe744fd94293a0 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 18:05:00 +0200 

    Change references to SQL::Builder => SQL::Abstract since Builder is almost
    invisible - ie not on CPAN.

Commit: ab78471a6657bbbadf71d6992a132a58da6e46bf 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 17:58:15 +0200 

    * Removed META.yml from git/cogito control
    * Added t/live.t that uses a real database. First working example.

Commit: 62fd440d223a3e561d74f88cea43810468d7c8d6 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 17:07:38 +0200 

    Moved Insert.pm, Select.pm... to Query/Insert.pm, Query/Select.pm.

Commit: 6ffd03a8805a131a387bcf10c4dc1b8a81367529 
Author: Mark Lawrence <nomad@null.net> Tue, 19 Jun 2007 16:44:22 +0200 

    * Removed 'Changes' file from cogito/git control.
    * INSERT, SELECT, UPDATE, DELETE all do something!

Commit: c760740570c2f8a5ceb4b1d602228512061df917 
Author: Mark Lawrence <nomad@null.net> Mon, 18 Jun 2007 16:38:18 +0200 

    VERSION to 0.02

Commit: 0643a835dc2413e843a041019e41199a4dff04a0 
Author: Mark Lawrence <nomad@null.net> Mon, 18 Jun 2007 16:34:48 +0200 

    New class SQL::DB to glue SQL::DB::Schema with DBI. Fully documented.

Commit: 85567556ec241b35b60903eb6670e6f716f596bc 
Author: Mark Lawrence <nomad@null.net> Mon, 18 Jun 2007 16:31:13 +0200 

    * Column.pm now based on Class::Struct which removed some lines.
    * Schema definition is now completely based on ARRAY REFs.
    * new test: t/Column.t
    * new 'NOT IN' expression method
    * Queries now all use 'columns' method, better inheritance.
    * new 'EXISTS' method for query objects.
    * Schema.pm: row() has become arow() 'any', 'abstact', 'a' row.
    * Schema.pm: query() replaced by select(), insert(), delete(), update()

Commit: 3832282a9e4c32bba39215e612127321890d9f3c 
Author: Mark Lawrence <nomad@null.net> Fri, 15 Jun 2007 18:50:24 +0200 

    * SQL::API::* renamed to SQL::DB::*
    * SQL::API.pm renamed to SQL::DB::Schema.pm

Commit: c2f52970463af8d00abed84602cf25941a07b7c0 
Author: Mark Lawrence <nomad@null.net> Fri, 15 Jun 2007 18:29:43 +0200 

    * Lots of cleanups.
    * Avoid memory leaks from circular references using Scalar::Util::weaken
      in the right places.
    * SELECT .... LIMIT
    * Stringifcation for pretty printing/debugging.

Commit: 9b6517b3eb74d356cc3b061c8a7dc4c020b7bc86 
Author: Mark Lawrence <nomad@null.net> Sat, 09 Jun 2007 23:50:08 +0200 

    Now have automatic joins (matching up reference keys with primary columns)
    INSERT and SELECT probably good for 90% of queries.

Commit: 667303900595982625b062f3af20bbbac1804da7 
Author: Mark Lawrence <nomad@null.net> Fri, 08 Jun 2007 01:51:04 +0200 

    Big documentation write-up for SQL::API.
    Testing of the SQL::API interface almost complete. No tests yet
    for any of the subclasses.

Commit: 1ccf41060a623a7c8c1652f4c0c740b337d56abc 
Author: Mark Lawrence <nomad@null.net> Thu, 07 Jun 2007 15:51:17 +0200 

    Big simplification of the api.
    INSERT and SELECT working.
    WHERE statements automatically produce correct FROM table aliases.

Commit: 523be54f484c31a53de1e0bdf36e158db2343bcc 
Author: Mark Lawrence <nomad@null.net> Sat, 02 Jun 2007 23:19:28 +0200 

    Table and Column classes now handle UNIQUE and FOREIGN KEY statements.

Commit: 179815c9e7013668d99bd075b186db86cb65ddeb 
Author: Mark Lawrence <nomad@null.net> Sat, 02 Jun 2007 18:04:18 +0200 

    Table and Column classes can produce CREATE TABLE statements.
    SELECT statements are broken due to new Table/Column classes.

Commit: 6dddb63569b272f4dc79f490c09af7d6b0eb31fc 
Author: Mark Lawrence <nomad@null.net> Fri, 01 Jun 2007 22:29:13 +0200 

    Support for SELECT statements (incomplete)
    First test program (test.pl)

Commit: 7e447fb263acc1c747acb36c0e7a1f37f3f68cb0 
Author: Mark Lawrence <nomad@null.net> Fri, 01 Jun 2007 15:38:46 +0200 

    Initial Commit.

