commit 8e631ac2a8917f17221abefc2f6cdadacdcc6ba0 Author: Mark Lawrence Date: Wed Sep 2 14:16:21 2009 +0200 CPAN: Uploaded as v0.18. commit 2a67b0c189161b75586f11ba6613694c22bbb348 Author: Mark Lawrence Date: Wed Sep 2 14:11:02 2009 +0200 t/13-blob.t: Check value of returned blob. commit 3cc0cd6842b85a1adb9ca9830c4b531cd3f8d21f Author: Mark Lawrence Date: Sun Aug 30 12:09:18 2009 +0200 SQL::DB::Schema::Expr: New concat() method for SQL '||'. commit f6f09bae6db6d1909edef1abd7b6c6b69bebe238 Author: Mark Lawrence Date: Sun Aug 23 14:27:58 2009 +0200 New introspection method: $db->table($table)->ref_by Identify which tables have foreign keys pointing to another table. commit c4aab88657591fb453feae977bcbd3706223451d Author: Mark Lawrence Date: Sun Aug 23 14:19:53 2009 +0200 SQL::DB::Schema::ARow: New _join_columns method. commit 86ebfebab80ba85bd6a9850292d793881098ae49 Author: Mark Lawrence Date: Thu Aug 20 13:17:44 2009 +0200 SQL::DB::Schema::Table - First version of trigger support This actually allows any kind of custom SQL to be run after table and index creation statements. It uses a hashref to specify different SQL for different DBDs, which I actually like better than the 'type_pg' style keys for the column specifications. commit 93798681d9f93feed844c75cb0e54e4d648c1958 Author: Mark Lawrence Date: Thu Aug 20 08:54:48 2009 +0200 Makefile.PL: Remove all dependencies on Test::Pod* modules The POD tests will run if they are installed, but there is no reason to make everyone install those. commit 05c67e91081d7116d60db770c9566c15770c3388 Author: Mark Lawrence Date: Thu Aug 20 08:46:21 2009 +0200 SQL::DB::Row - confess on uneven number of arguments to new() commit 5e0930206682ab524c7be14e4030d72d9d9d2f19 Author: Mark Lawrence Date: Wed Aug 12 22:49:32 2009 +0200 SQL::DB - Croak & Exit properly from object methods on failure. This is a definate bugfix: Exiting a subroutine with a 'next' statement is just wrong. commit cab73b234f6697c174c4dbf3577021ef0f88f726 Author: Mark Lawrence Date: Wed Aug 12 08:30:31 2009 +0200 SQL::DB::Schema::Query: Allow undef WHERE statements This is half a reversion of c0379413d407500a5f809451dfceaa226a38d43f. I think it makes more sense that callers can pass in an undefined value instead of having to test themselves with horrible contortions like "$where ? (where => $where ) : ()". commit 3c08dc14216da08c891e2b031f2ce3093f86c56f Author: Mark Lawrence Date: Fri Jul 31 12:10:46 2009 +0200 SQL::DB::Schema::ARow - New '_join' method based on FK relationships. commit c0379413d407500a5f809451dfceaa226a38d43f Author: Mark Lawrence Date: Fri Jul 31 09:30:18 2009 +0200 SQL::DB::Schema::Query - confess when WHERE is given as undefined commit 4f6a381f8a109753f0f5a7467d8ce7c1219a67bf Author: Mark Lawrence Date: Sun Jul 19 17:41:40 2009 +0200 Removed multiple-update feature from SQL::DB::Row objects. This feature should probably never have been implemented. For the case where an object is based on a single table row, there was no way to know the true result of a $db->update($obj) or $db->delete($obj). Those SQL::DB methods on objects now return the underlying driver return value. commit 9f327764681d908607dbd22184c7585f7b837f4d Author: Mark Lawrence Date: Tue Jul 14 10:21:55 2009 +0200 SQL::DB::Schema::Table - set 'primary' flag on multiple columns. commit 0021e2409ce60f5f1fd8e1b62abe5dbe9667d9fa Author: Mark Lawrence Date: Tue Jul 14 10:19:59 2009 +0200 Make SQL::DB::Row->q_update work with multiple primary keys. commit ec6f81f4b1b92aff072c8c20d17c3334ddc263fd Author: Mark Lawrence Date: Thu Nov 20 20:41:40 2008 +0100 CPAN - Uploaded as v0.17. commit e2f9818aa308d4048447464566094872ce1ee749 Author: Mark Lawrence Date: Tue Nov 18 08:32:08 2008 +0100 Make sure that set_*() triggers see all of the incoming values. When an SQL::DB::Row object is created with the new($hashref) method the set_col() method is called for each incoming key in the $hashref. We preset the object with these values in case one of the set_* methods triggers a subroutine which expects the incoming values to exist in the object. commit bc45b8289d1d18185c75dfd9850da97a6934b350 Author: Mark Lawrence Date: Tue Nov 18 08:21:01 2008 +0100 SQL::DB::Row->set should actually croak/die on error. We were previously running the set_*() triggers inside an eval, but this is wrong. If something breaks we should know about it and fix it. Not hide it behind some warning. And often this could be called inside a transaction anyway. commit 8c7819b25e50f818a049bcc678b5a89cabafd9e8 Author: Mark Lawrence Date: Mon Nov 17 23:01:39 2008 +0100 Reworked & simplified the SQL::DB::Row->new() method. commit ddb9c742727330027a7c8662ca125a792d67a1e4 Author: Mark Lawrence Date: Mon Nov 17 13:48:00 2008 +0100 Added set_* trigger support. Triggers are defined by the 'set' attributed in column definitions. The definitions must be CODE-refs and are stored in the SQL::DB::Schema::Column::set getter/setter. commit 3c321cc392666267f79e1a896ebd7c4bd969cd24 Author: Mark Lawrence Date: Wed Nov 12 13:21:30 2008 +0100 SQL::DB - Improve error message for long deployment calculation. commit 82dcefdd17c239641951e5384a775dd3fc1b776e Author: Mark Lawrence Date: Wed Nov 5 10:08:53 2008 +0100 SQL::DB::Schema::Column Added DEFERRABLE constraint. SQL::DB Improved error reporting in _drop_tables() commit f5a48055a56644a4c7b1f582f0ea5c9c9ecada1d Author: Mark Lawrence Date: Tue Nov 4 13:01:14 2008 +0100 SQL::DB::Schema::Column - type_pg becomes type_Pg everywhere in line with new dbd() method. commit 31aeba16d0cf55f8038a82038e5c29bf559737c2 Author: Mark Lawrence Date: Tue Nov 4 12:49:19 2008 +0100 SQL::DB - Use IF EXISTS on DROP TABLE. Various debugging cleanups. commit 603e77bbfd746e5076e5b5f122a5461719f25084 Author: Mark Lawrence Date: Mon Nov 3 21:33:59 2008 +0100 SQL::DB - Also set $self->{sqldb_dbd} for connect_cached(). commit 2e8932b568c92a42b8e83354a7ffce9e299e96e0 Author: Mark Lawrence Date: Mon Nov 3 21:12:57 2008 +0100 SQL::DB Changed all documentation and internal references of 'dbi' to 'dsn'. New dbd() method returns the DBD driver type for the connection. commit b43236628cb53cf8c68c098f7e80a46bc72e2c33 Author: Mark Lawrence Date: Sun Nov 2 13:20:08 2008 +0100 SQL::DB - Warn if update() called with no primary keys available. commit 0cd52e5fb387f3a31872adffecaa940b2c3e0ad4 Author: Mark Lawrence Date: Sun Nov 2 13:19:26 2008 +0100 SQL::DB::Schema::Expr - Added is_null() and is_not_null(). commit 3675caac7e7823634cd9c2cf17e5acfb9c9f9bf3 Author: Mark Lawrence Date: Wed Oct 29 10:33:31 2008 +0100 SQL::DB - Check table exists before DROP commit 4acf06798f6812627f39c79c3de7aa6e299dc062 Author: Mark Lawrence Date: Wed Oct 22 21:17:27 2008 +0200 SQL::DB::Schema::Column - type_mysql support. commit 492133b340d0b27d40368ff1206c3e6dfeda3ccf Author: Mark Lawrence Date: Wed Oct 22 16:17:39 2008 +0200 SQL::DB - Split deploy() into _create_tables - Split _undeploy() into _drop_tables - New user methods create_table() and drop_table() commit a929c2b3c355c2acec0eedd3c45edac4851c08fc Author: Mark Lawrence Date: Sat Oct 11 10:02:40 2008 +0200 CPAN - Uploaded as v0.16. commit 5b95d8c3655ba5a276de5dc31ebd42e281e5b42c Author: Mark Lawrence Date: Sat Oct 11 09:59:51 2008 +0200 t/12.txn.t - Properly skip tests when DBD::SQLite < 1.15 commit 87b93607437547f175313bffc1fba310cb694713 Author: Mark Lawrence Date: Fri Oct 10 09:50:48 2008 +0200 CPAN - Uploaded as v0.15 - Try to stop t/12-txn.t failing everywhere due to bug 30558 in DBD::SQLite 1.14. commit b2e8ecddcb53c11a5de33475a35517668ef43dc1 Author: Mark Lawrence Date: Thu Oct 9 17:56:04 2008 +0200 SQL::DB - Fixed undefined string issue in query_as_string() commit dc32e647e7c00e0cfadc21899cf98f1f44e867fd Author: Mark Lawrence Date: Thu Oct 9 17:28:42 2008 +0200 SQL::API Improved error reporting - use of confess instead of croak. Makefile.PL build_requires PadWalker ./debian Removed from git control. dh-make-perl is your friend. CPAN Uploaded as v0.14. commit 86fef784bddb8adbf20d51b30be514cf98c48960 Author: Mark Lawrence Date: Fri Oct 3 20:12:47 2008 +0200 SQL::DB - txn() now always returns a Return::Value. commit 59ca4afa4105c80a6a2c57cedc6244b9b5083afc Author: Mark Lawrence Date: Fri Oct 3 19:56:19 2008 +0200 SQL::DB::Schema - Added the LENGTH function. commit 1a0de3b801473be9e2c39271383c903e30f12362 Author: Mark Lawrence Date: Fri Oct 3 19:53:44 2008 +0200 SQL::DB - Added some clucking and confessing to help with errors. - Extra debugging statements during deployment order calculation. commit 651753004fcc39f47f93a77bc81748b65073fc10 Author: Mark Lawrence Date: Thu Sep 18 10:32:18 2008 +0200 SQL::DB - check for self->{sqldb_debug} existence before comparing. commit 7e76b61950b831178ef840c2459d1ba7bf9dd515 Author: Mark Lawrence Date: Thu Sep 18 10:30:01 2008 +0200 SQL::DB - only debug bind statements when debug > 1 commit 6203dbb5e7089d3ea8e6f47d718cb690620797e1 Author: Mark Lawrence Date: Thu Sep 18 10:28:25 2008 +0200 SQL::DB::Schema::Table - use confess instead of croak on failures commit e574577b32acfb5016c6fea61b422106ab310062 Author: Mark Lawrence Date: Wed Sep 17 03:41:08 2008 +0200 SQL::DB - Removed documentation reference to old $DEBUG. commit fda3e9daa283a7fce9b972cac8c4d86458be5717 Author: Mark Lawrence Date: Fri Sep 12 17:07:27 2008 +0200 SQL::DB::Schema::Table - hide warning about variable 'used only once' commit 0980b10cf29572b46a3393c5810309c0be12eff7 Author: Mark Lawrence Date: Fri Sep 5 10:14:13 2008 +0200 SQL::DB Removed the global $SQL::DB::DEBUG variable in favour of per-object $self->{sqldb_debug} variables. commit 024d506ce0a6adf840d068107597245461103987 Author: Mark Lawrence Date: Tue Jul 1 11:29:05 2008 +0200 SQL::DB Rewrote _deploy_order for clarity. commit c2416914671b30959433b7afd92b8339b8559ba4 Author: Mark Lawrence Date: Mon Jun 9 10:43:27 2008 +0200 SQL::DB Make create_seq() check for existence before attempting to create, so that multiple calls to deploy() (perhaps with new tables in the schema) succeed. commit 426659eb123226076b270919357e816e7cc59edf Author: Mark Lawrence Date: Sun Jun 8 14:12:18 2008 +0200 SQL::DB::Schema::Expr Added $expr->and() and $expr->or() methods. commit cd34fb0c3405804ea59ac0aa5f49316b49214897 Author: Mark Lawrence Date: Wed Jun 4 22:15:07 2008 +0200 SQL::DB::Schema::Expr Add support for array references as arguments for $expr->in() and $expr->not_in(). Check required number of arguments for $expr->(not_)between(). commit e099b75cd393b2470fc74f11195ce6feeaf29684 Author: Mark Lawrence Date: Wed Jun 4 22:07:33 2008 +0200 t/07-subquery.t New test for sub queries. SQL::DB Broke out new sub _deploy_order() and deploy_sql() from deploy(). Check for being connected to the database in all fetch* do* methods. SQL::DB::ARow Table identifiers now start at "1" instead of "0". commit 6960cbedfce42a471837b0897f7a96fb66f4532c Author: Mark Lawrence Date: Tue May 27 23:40:18 2008 +0200 SQL::DB::Schema::Expr New method: like(). Fixed up brackets generation for multiple binary operators. commit 78c5f4654f587563e9584d81785cada3c4c92e86 Author: Mark Lawrence Date: Wed Apr 2 20:57:30 2008 +0200 SQL::DB Added some minor error checking and reporting inside txn(). t/12-txn.t Skip all tests for non-Debian systems with DBD::SQLite <= 1.14 due to bug http://rt.cpan.org/Ticket/Display.html?id=30558. commit 0e0810750985101b76e7be7217b5c0850e21def9 Author: Mark Lawrence Date: Tue Apr 1 23:55:51 2008 +0200 Makefile, debian/control Require DBD::SQLite version 1.14 as it seems earlier versions have a problem resulting in errors along the lines of "underlying database changed". SQL::DB Unset dbh->{PrintError} and set dbh->{RaiseError} on connect(). All sequences are now created in a separate transaction to the table creation, as PostreSQL doesn't think the tables exist until the transaction is committed. Fixed some style issues located with 'perlcritic'. New private method _undeploy() (does a DROP TABLE ...) for use with the tests. t/* New library t/lib/SQLDBTest.pm to allow all tests to be run the same for different DBD backends. There is also now a "make testpg" target - for local (to me) testing. commit a2768bc36bb2cd9d04f16e459efed52a4f5c5c62 Author: Mark Lawrence Date: Fri Mar 28 15:53:40 2008 +0100 SQL::DB Replace the horrible txn() return type (a two-item list) by a single Return::Value object. Should prevent people (ie me in t/12-txn.t) from doing silly things like "if ($db->txn(...)) { }" which of course is always true. If only DBI had used something like this... Makefile.PL, debian/control Require Return::Value. CPAN Uploaded as v0.13. commit 144bb351757686fba990de5cee6be65024bb7bc3 Author: Mark Lawrence Date: Fri Mar 28 15:12:03 2008 +0100 t/* Moved the database population routines from live.t into TestList.pm commit 08a40dffd0da43ad4a5bc969a4bf55a22381cce3 Author: Mark Lawrence Date: Tue Mar 25 23:50:19 2008 +0100 SQL::DB deploy() now run as a transaction. _nopc (no prepare_cached) methods created for do(), fetch() and fetch1(). The original methods now all use prepare_cached by default. Call $sth->finish on do() and fetch1() methods. Should get rid of the "Statement handle still Active" messages which caused v0.11 to fail for every CPAN tester. I can't reproduce the problem locally so this is a bit of a guess. SQL::DB::Cursor New internal method "_finish()" to allow SQL::DB->fetch1() to finish off the statement handle after the first row is retrieved. All Copyright for 2008. CPAN Uploaded as v0.12. commit 918fe71acbe5553379cda9140cf13b133e11136c Author: Mark Lawrence Date: Tue Mar 25 11:50:48 2008 +0100 SQL::DB Reduced fetch1() down to a simple fetch()->next. commit a7376604a334c9721c42ef1319d3ac82dcd52f3c Author: Mark Lawrence Date: Fri Mar 21 09:38:46 2008 +0100 SQL::DB Added support for recursive (from Perl's point of view) transactions. SQL::DB::Query Fixed a regular expression issue that wasn't removing the table alias/prefix for non-select statements. CPAN Uploaded as v0.11. commit 62f08702983970abfaa83d2b0ba55483ad31a802 Author: Mark Lawrence Date: Mon Nov 12 19:24:09 2007 +0100 SQL::DB::Row new_from_array() and new() now properly set the original and modified flags on column values. New method: _column_names() returns a list. SQL::DB::Schema New EXISTS() function, maps straight to the SQL EXISTS. Is uppercase to avoid conflicting with the Perl 'exists'. SQL::DB::Schema::AColumn New is_not_null() method, maps to SQL 'IS NOT NULL'. SQL::DB::Schema::ARow Abstract rows IDs (t0, t1 etc) are now prefixed with the table name, not 't'. Makes the statements much clearer when debugging. The id is now tied to the object and is reused after the object is destroyed. So now statements will generally always have the same query text (provided the query is the same) which is important when wanting to make use of DBI's prepare_cached() method. SQL::DB::Schema::Expr New '*' and '/' overloads. New not_between() 'NOT BETWEEN' method. Bugfix: Now properly produce statements in the correct order for all operators for which order matters. Eg: - / > >= < <= commit 38f8cad4482e1f105faddaaac897a444f224f1a7 Author: Mark Lawrence Date: Mon Nov 12 19:03:05 2007 +0100 New SQL::DB::quickrows() method for dumping object/row values as a table. commit d6e8f9fef3f9f8eee58e4bfb880dd0dac95ac6b1 Author: Mark Lawrence Date: Mon Nov 5 02:23:48 2007 +0100 SQL::DB::Row Bugfix: _hashref() was working it's way through the known columns list, not the method list, generating a hash with missing keys or overwritten values. Bugfix: q_update() was previously unaware of the relationship between columns and ARows. So if you fetched a self join then q_update would not produce the correct updates. commit a450055fd2c3cce34f63ff43ff10b2307a0eb5b1 Author: Mark Lawrence Date: Sun Nov 4 20:26:34 2007 +0100 SQL::DB Sequence rows now automatically created in 'sqldb' for every table. SQL::DB::Row Added support for Expr-based columns to be used for the row definition, in a similar way to AColumns. New _hashref() and _hashref_modified() methods which return key/value versions of the row object. New quickdump() utility method for printing out the object. SQL::DB::Schema New acol() method to generate Expr-based objects. Will probably get renamed shortly to expr()... CASE ... WHEN ... THEN ... ELSE support via the case() function. SQL::DB::Schema::Query New _alias() method, which is in support of Query objects being used in nested selects. Ie SELECT ... FROM ($query) now sets AS properly. commit 4171b4f319267bdd75fa246584fafefb8c276351 Author: Mark Lawrence Date: Thu Nov 1 13:19:37 2007 +0100 Column reference loop detection. When column in table A references table B, and a column in table B also references table A then the tables are undeployable. SQL::DB->deploy() now croaks after too many iterations through the deployment order calculation. commit ea1f8320148a8b64413d220040d73e193463a015 Author: Mark Lawrence Date: Wed Oct 31 21:31:24 2007 +0100 Added new tests for BLOB columns. Some of them currently fail due to what I think is a bug in SQLite. Even when data inserted is bound as SQL_BLOB DBD::SQLite still sets utf8 flag when $dbh->{unicode} is set to true. commit cd9e5ee33e94369786f2eed8840782a331e58112 Author: Mark Lawrence Date: Tue Oct 30 15:29:54 2007 +0100 SQL::DB Simplification of the table deployment order logic. There may have been a bug in the old code (which I couldn't find) but things definately work correctly now. commit a3467da8edd44c5ac18af10fa477d21835ebfc95 Author: Mark Lawrence Date: Mon Oct 29 12:58:56 2007 +0100 SQL::DB Added transaction support via the txn() method. Removed unecessary begin/commit statements from seq(). SQL::DB::Query Added select_distinct command. commit 7f4e409b243bbc9d7f031f97bfc62ebdf408aa19 Author: Mark Lawrence Date: Thu Oct 18 11:20:24 2007 +0200 SQL::DB Fixed a bind parameters bug which was resulting in the very strange message from DBI "insufficient data in message" in certain cases. Fixed fetch1() to properly detect and report failure. SQL::DB::Row Trivial cleanup of some internal _inflate/_deflate method names. CPAN Uploaded as v0.10. commit 0a4d4a41c92b5fe5bfe06aace9642bf1e6a56f0a Author: Mark Lawrence Date: Tue Oct 16 11:17:51 2007 +0200 Change testing infrastructure to use File::Temp for secure tempory file creation and deletion. Fixes the bug reported by Andreas König at http://rt.cpan.org/Ticket/Display.html?id=30019 commit 1a5494d772da8bb82379d3cc71c4afc384452e4e Author: Mark Lawrence Date: Mon Oct 15 13:47:59 2007 +0200 SQL::DB::Row * New _modified() method for classes derived from Row. * Don't inflate/deflate undefined columns. * New q_delete() method. * Check for NULL primary columns in q_* methods. SQL::DB::Schema SQL functions: LOWER & UPPER SQL::DB::Column New 'type_pg' and 'bind_type_pg' values for postgres specific definitions. SQL::DB::Table New db_type() method for supporting changes in Column. CPAN Uploaded as version 0.09. commit 7d8778e984d3588acbc59caed7651bdbdf083509 Author: Mark Lawrence Date: Fri Oct 12 18:53:22 2007 +0200 SQL::DB::Cursor New package. Makefile.PL Added DBD::SQLite to the build requirements. SQL::DB Return a Cursor object when fetch() is called in scalar context. Proper binding of values with their bind-types in fetch(). t/pod-coverage.t Trust undocumented methods from parent classes. commit a120998139a271cb79e35378c739512f26c62fa7 Author: Mark Lawrence Date: Wed Oct 10 19:01:00 2007 +0200 t/09-db.t Fixed number of tests to be run. CPAN Uploaded as v0.08. Kind of forced due to MySpam dependency on this version. commit 8c44023f11628335ef6bdc32c98fed31ec957b75 Author: Mark Lawrence Date: Wed Oct 10 17:33:01 2007 +0200 * Preliminary support Multi-faceted Table/Column Definitions. The idea behind this is that certain definitions have a 'normal' and a 'database' specific setting, and the right one gets automatically used at runtime. For example, say we have a binary column which under SQLite and MySQL the 'BLOB' type works fine, but under PostgreSQL we have to use 'BYTEA'. Our column definition can now be like this: [ name => 'bincol', type => 'BLOB', type_pg => 'BYTEA' ] Internally SQL::DB at connect() time tells the tables what kind of database we have (based on the dbi: connection string) and the table objects know which definition to use. 'type_pg' for postgres and 'type' for everything else. So far only implemented for things like the default character set and the mysql ENGINE statement. SQL::DB Next sequence is now seq($name, $count) and the optional $count will increment by that amount and return a list of ($count) unique ids. Now set table database type at connect() time. SQL::DB::Row Detect and croak() if caller attempt to create a class with duplicate column names. SQL::DB::Schema::Table Multifaced definition support for 'type', 'engine', 'default_charset' and 'tablespace'. commit 54c4bab43480306ad7cd9951f4e49e7014853f0e Author: Mark Lawrence Date: Wed Oct 10 12:53:58 2007 +0200 * Small documentation update to SQL::DB. * Removed useless SQL::DB::Schema::Query::push_bind_values(). CPAN Uploaded as v0.07. commit d3755e22be896a8d4ac9bbb988636708c227f5ae Author: Mark Lawrence Date: Wed Oct 10 12:08:44 2007 +0200 Fixed circular-reference memory leak between ARows and AColumns. Makefile.PL, debian/control Added dependency on Test::Memory::Cycle and libtest-memory-cycle-perl. t/* Test most objects for circular references. commit f06f0e329930c7a9055acfd60937e035e7893e92 Author: Mark Lawrence Date: Wed Oct 10 09:32:38 2007 +0200 SQL::DB::Schema Schema objects are no longer responsible for define()ing tables. $obj->define() has been replaced by the class subroutine define_tables(). This fixes the issue of persisent (or other) environments unecessarily redefining the schema each time an object is created. The new() method now takes an (optional) list of table names and takes the definition from the class as needed. SQL::DB deploy() now calculates the table order based on sql REFERENCES values so that referenced tables exists before the referring column/table is created.. commit 8b8eae32cf673bcc85525c8411b10fc0a4c3a9a2 Author: Mark Lawrence Date: Mon Oct 8 23:51:08 2007 +0200 Added support for DBI bind types. Each column can now have a 'bind_type' definition which will be used for INSERT and UPDATE queries. The reason it got implemented this way at the moment is because I needed an SQL_BLOB column with SQLite and they were the only query types that caused me issues. Should it be standard for all query types? commit 92a496ef78c40cb8cf808869c555f0872a270281 Author: Mark Lawrence Date: Mon Oct 8 17:52:50 2007 +0200 SQL::DB In query_as_string() only quote values that are printable, otherwise insert the string *BINARY DATA* into the output. SQL::DB::Row Bugfix: sub new() now correctly set column status as ORIGINAL or MODIFIED based on the initial values. No longer calls new_from_arrayref(). Moved _inflate() and _deflate() into the classes themselves. Row is now 'invisible' (ie no in the inheritance tree) although that is not the goal. Bugfix: sub q_insert() now correctly handles multiple-column primary keys. commit 56d452512d4ca1d5d12f092a783871e950c6f0b1 Author: Mark Lawrence Date: Mon Oct 8 13:46:00 2007 +0200 SQL::DB::Row Moved new_from_arrayref() directly into the classes instead of being inherited in order to ensure the STATUS condition exists for every column of a new object. SQL::DB::Schema::Column "default" values (or methods) are now set at object instantiation. SQL::DB::Table Use SQL::DB::Row instead of SQL::DB::Object for base of table classes. SQL::DB::Object. Removed. commit 0e69c4f7a0c9f954a9a2be9bfe1239693c272ea8 Author: Mark Lawrence Date: Mon Oct 8 12:02:21 2007 +0200 SQL::DB::Row Bugfix: Now correctly check for inflate condition when defining _deflate() method; new() method renamed to new_from_arrayref(). Each class now gets a new() method that takes either a hashref or a list of key/value pairs and in turn calls new_from_arrayref(). Each class now gets a q_insert() method (similar to q_update()). commit 7ee91556aeef08c37b3db405655183b44f9aeb3c Author: Mark Lawrence Date: Sun Oct 7 16:17:32 2007 +0200 SQL::DB Documentation cleanup. commit 3cfe21630f03a77ba6bd6c6f1a3c7ca7ad4e63f2 Author: Mark Lawrence Date: Sun Oct 7 14:19:30 2007 +0200 Added tests for POD coverage. SQL::DB Removed execute(),objects(),fetcho() & fetcho1() methods. commit 5c3708a19e77ca5cbd7ce918d236cc57d578fb65 Author: Mark Lawrence Date: Sat Oct 6 12:38:05 2007 +0200 SQL::DB All $self->{sqldb_dbh} access is now $self->dbh for better override behaviour. Moved all of SQL::DB::Schema::Functions into SQL::DB::Schema. commit 3356d7dd17c1294638e19c32ced1876d30db1349 Author: Mark Lawrence Date: Fri Oct 5 16:48:25 2007 +0200 Moved AColumn, ARow, Column, Table, Function and Query all underneath the SQL::DB::Schema namespace. Added outline documentation to all modules. commit 8a652f903b734c08d9d1906b467771c914597d40 Author: Mark Lawrence Date: Thu Oct 4 18:32:15 2007 +0200 Uploaded to CPAN as v0.06 commit 34bcbe5cc9bdc0428b5c637442bfbb9899716e72 Author: Mark Lawrence Date: Thu Oct 4 17:24:10 2007 +0200 SQL::DB * Deal with broken MySQL table_info filtering * seq(): LOCK both 'sqldb' and the alias. Added missing UNLOCK commit 854055f98cdc556e3947f5ea00386ddb6a7068ee Author: Mark Lawrence Date: Wed Oct 3 19:05:50 2007 +0200 SQL::DB Make update(), insert(), delete() return true if successful. commit 4f45a93491a59dae8a097148139e7194d6df32fc Author: Mark Lawrence Date: Mon Oct 1 17:00:30 2007 +0200 Moved SQL::DB::Intro back to SQL::DB::Tutorial. Still incomplete... commit 15e27509cf684c3bb911c9de93c417458f94009d Author: Mark Lawrence Date: Mon Oct 1 16:09:14 2007 +0200 SQL::DB LOCK TABLES command for MySQL sequence emulation. commit 2667ea0ea84ed5d272c382809dabfe958e0dcb1c Author: Mark Lawrence Date: Mon Oct 1 15:44:59 2007 +0200 SQL::DB Improved the debugging output to show a real SQL statement with the bind values actually quoted inline. This means you can now cut and paste the text into an SQL session in order to see the actual result. commit 556a0de835016f472e6db3de3cc435bc4beb34e5 Author: Mark Lawrence Date: Thu Sep 27 19:47:19 2007 +0200 SQL::DB Fixed sequence support to actually check that an update occurs when incrementing the value. Aparently MySQL SELECT .. FOR UPDATE doesn't actually lock rows (MySQL bug?) SQL::DB::Query Added INTERSECT operator. commit 09b3ac307a1a2fdc0be6f831f7946b68aa88f88f Author: Mark Lawrence Date: Wed Sep 19 09:54:29 2007 +0200 General New: Inflation of columns upon SELECT. Deflation in the works. All _new() methods have become new() to be more standard. SQL::DB Clearer error messages on some failure/error conditions. Fixed position of FOR UPDATE in the internal sequence support. fetch()/fetch1() adjusted to the new SQL::DB::Row implementation. Documentation cleanup. SQL::DB::Row Complete rewrite to be a more intelligent object. Now keeps track of: a) the SQL::DB::Columns associated with the query / class; and b) the columns that have been modified. So now we can call q_update() and get a list of statements for each table to update the modified columns. SQL::DB::Expr New utility methods val() and set_val() for use by parent classes (abstracts away the internals which AColumn had been using). New between() (SQL BETWEEN) method. Just realised should be in AColumn. SQL::DB::Function New SQL functions: CAST, NOW Big cleanup / refactoring. SQL::DB::Query Removed the unused column_names() method. SQL::DB::Schema, SQL::DB::Table Moved the guts of the arow() method from Schema to Table where it belongs. Thinking about renaming it atable() as that is what it looks like it is when writing queries. SQL::DB::AColumn as_string(), _clone() and _as() all moved/removed into the parent SQL::DB::Expr class as they are more general methods than just AColumn. SQL::DB::Column New "inflate" and "deflate" definitions to for modifying column data between the database and the SQL::DB::Row objects. "default" definition now accepts a subref as well scalars. SQL::DB::Object Runs the "default" method for a column if it is a CODE ref, when creating objects. commit 26a1fab79ebd6f23e1d563056bfdbf9f8625bfe7 Author: Mark Lawrence Date: Sat Sep 15 11:38:00 2007 +0200 SQL::DB::Object Fixed up q_* methods that were still using the old ->arow. SQL::DB Fixed up broken query count reporting. Properly removed the simple object support. SQL::DB::Query Removed 'selecto' option (not very SQL'ish). commit 888d13f9f4bb1547f35c682ba1003eed2903f53b Author: Mark Lawrence Date: Fri Sep 14 15:43:59 2007 +0200 Syntax changes: Abstract rows are now associated with table names only and must be obtained via $db->arow($tablename). The old "Artist->arow" or "Artist::Abstract->new" are gone. SQL::DB::Table Abstract classes are now named SQL::DB::ARow:: SQL::DB::Row New module providing lightweight ARRAY-based objects. This functionality has been removed from SQL::DB. I should be able to replace this with something from CPAN but couldn't find the right thing yet. SQL::DB fetch() and fetch1() now use the most efficient DBI calls to obtain data. New methods fetcho() and fetcho1() for retrieving full objects. These should eventually moved out of SQL::DB entirely? SQL::DBO? Documentation cleanup. SQL::DB::Function Added PostgreSQL nextval(), currval() and setval() functions. SQL::DB::Object Removed arow() method. SQL::DB::Object should be completely decoupled from anything else. SQL::DB::Schema New arow() method. t/* Various additions and cleanups. commit 5cc2c48074503df92da8f2eb04e1bfad33dafd61 Author: Mark Lawrence Date: Fri Sep 14 10:04:38 2007 +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 Date: Fri Sep 14 01:49:17 2007 +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 Date: Wed Sep 12 21:23:17 2007 +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 Date: Wed Sep 12 18:22:16 2007 +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 Date: Tue Sep 11 22:44:38 2007 +0200 SQL::DB::Functions and t/functions.t added. commit 1cdb044cb1e13e4d678c3fe94e04232de42523c4 Author: Mark Lawrence Date: Mon Sep 10 10:17:38 2007 +0200 SQL::DB::Table: simplified 'setup_columns' to use 'setup_column' commit 295650d9f006a81f2fd74ba4ada7d0267e2a4af9 Author: Mark Lawrence Date: Sun Sep 9 21:50:46 2007 +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 Date: Sat Sep 8 21:04:57 2007 +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 Date: Sat Sep 8 19:58:07 2007 +0200 Added a fetch1() method to return a single value. commit 96859c4215b51866166cd4433f3373807de533da Author: Mark Lawrence Date: Sat Sep 8 19:44:54 2007 +0200 Fixed a Query bug where not all table aliases were removed in non-SELECT statements. commit a8ec7eb4dec4168e3f817d98c874fe995c450fa9 Author: Mark Lawrence Date: Thu Sep 6 16:44:04 2007 +0200 Added MySQL table ENGINE|TYPE. Added unique_index as a shortcut for index => [unique => 1, ...] commit 4a5cde2bef168ddc6ed18d62c84807cbccea41d1 Author: Mark Lawrence Date: Thu Sep 6 14:38:16 2007 +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 Date: Wed Sep 5 14:43:21 2007 +0200 VERSION to 0.05 commit c2ed27063c0348ba3750221a3a1f5423ed09590a Author: Mark Lawrence Date: Wed Sep 5 13:50:54 2007 +0200 Debian control description and changes update. Released to CPAN as version 0.04. commit 011f261861eae7d691705f407aed9def3159e02c Author: Mark Lawrence Date: Wed Sep 5 13:42:51 2007 +0200 README updates. commit b2b8c4b54ac10be771adb3c3326925bdf641e01a Author: Mark Lawrence Date: Wed Sep 5 13:37:44 2007 +0200 Added a test to extract and run the SYNOPSIS code. commit d0a72e93800d22b937e91a452375bec782ea3667 Author: Mark Lawrence Date: Wed Sep 5 13:18:58 2007 +0200 The SYNOPSIS from SQL::DB is now a fully working example. commit bdf5b8ddb467544bdf94e2eae653aafc4e83aaca Author: Mark Lawrence Date: Wed Sep 5 13:18:19 2007 +0200 Fixed "index" to allow just the column name as well as an ARRAY ref. commit d0a6f5870ff8b5e751ff9555b9a4c8ccc7a651d1 Author: Mark Lawrence Date: Wed Sep 5 13:17:18 2007 +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 Date: Wed Sep 5 13:16:26 2007 +0200 Fixed ASC and DESC to be returned as SQL::DB::Expr objects. commit 51e6cc803244b946695c9c13c5995eb7a474726a Author: Mark Lawrence Date: Wed Sep 5 13:13:49 2007 +0200 Added "ref" as an alias for "references" when defining columns. commit a473e84314dceffc5c066e0960f97609ad522113 Author: Mark Lawrence Date: Wed Sep 5 11:12:55 2007 +0200 Added "column" definition support (singular version of "columns") to the SQL::DB::Table creation syntax. commit 180cc3d582ea98caf43ea82aa7cd9f64bb4cdc00 Author: Mark Lawrence Date: Wed Sep 5 10:49:59 2007 +0200 t/live updated to test recent changes. commit 9490c507a90a37f1a580d71e63c02625b245c6d1 Author: Mark Lawrence Date: Wed Sep 5 10:49:04 2007 +0200 Added the start of a SQL::DB::Tutorial. commit a05fac56794211c87e845dd9332e60ad3b04845d Author: Mark Lawrence Date: Wed Sep 5 10:48:34 2007 +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 Date: Wed Sep 5 10:39:06 2007 +0200 SQL::DB::Expr: New Expressions: <=, >=, + commit 7a2308396da2a587eb7683d8185dedfdbb95f492 Author: Mark Lawrence Date: Wed Sep 5 10:36:39 2007 +0200 Minor documentation edits to SQL::DB::Schema. commit f08e45dda5356e4afa8352ed1cc4edbb50c91e3a Author: Mark Lawrence Date: Wed Sep 5 10:35:27 2007 +0200 SQL::DB::Object: Fixes to "columns changed?" related methods. commit 8ab138d050aa899b369fa837fc0a17426378d79a Author: Mark Lawrence Date: Wed Sep 5 10:33:22 2007 +0200 Added SQL::DB::Query->wantobjects, ->arows, "selecto" methods. commit 96ab59b7dce96fd0fca7bfab8273d03fcee22fe3 Author: Mark Lawrence Date: Wed Sep 5 10:28:53 2007 +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 Date: Wed Aug 22 19:02:04 2007 +0200 Added method SQL::DB::Table->primary_column_names() commit f60a61b53ff54dd1f118d1944fd14df429a24ca1 Author: Mark Lawrence Date: Tue Aug 21 17:03:55 2007 +0200 Added 'bases' (inherit from class) support to SQL::DB::Table commit 12db827f6ea8843c8bb6dacdcc52401c3c3d3eb3 Author: Mark Lawrence Date: Tue Aug 21 11:36:29 2007 +0200 Tests & Cleanups commit d4179cd7ff8e466e8defcd8719861b300e28c9fc Author: Mark Lawrence Date: Mon Aug 20 23:41:54 2007 +0200 Removed old t/02-abstract.t commit 2dfe862c919b7bdb0d95afae3427cebabe3ee176 Author: Mark Lawrence Date: Mon Aug 20 23:00:45 2007 +0200 New Schema for tests. commit 47ce13fc4969ec12ad5728509040ebfc3c870188 Author: Mark Lawrence Date: Mon Aug 20 22:59:20 2007 +0200 Removed old t/Column.t commit ebc942ba1bddee2810ab3823051038aed8ab655c Author: Mark Lawrence Date: Mon Aug 20 22:55:00 2007 +0200 Added test for SQL::DB::Table commit 9774e98a7f15546f8392ec6eb2f0799a27beaf5d Author: Mark Lawrence Date: Mon Aug 20 22:33:47 2007 +0200 Added test for SQL::DB::Column commit f1ba432caee86da98aafe9cecf626b09d8a667d6 Author: Mark Lawrence Date: Sun Aug 19 23:37:03 2007 +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 Date: Sun Aug 19 23:35:25 2007 +0200 Added q_delete to SQL::DB::Object. commit b35ed20f6514909de86a8d1067fe92ae798f9dbb Author: Mark Lawrence Date: Sun Aug 19 23:34:51 2007 +0200 Minor cleanups to SQL::DB::Query commit 0c185ee934a41f166c133417f0bb35b8a0842037 Author: Mark Lawrence Date: Sun Aug 19 11:09:15 2007 +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 Date: Sun Aug 19 11:07:32 2007 +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 Date: Sun Aug 19 11:06:07 2007 +0200 SQL::DB::Table now automatically creates the Class, and the Abstract Class for each table. commit d24d6cc202ca4e911ce7532f732c3e5a97f0fd18 Author: Mark Lawrence Date: Sun Aug 19 11:03:58 2007 +0200 Cleanup and simplification of functions in SQL::DB::Column. commit d70c4bff4d80dc269c59cb0b1faa39099bfb9dfc Author: Mark Lawrence Date: Sun Aug 19 11:01:43 2007 +0200 Removed inc/Module/Install from git/cogito control. commit df8970faa8b913035c3353f2f28164c5f776b687 Author: Mark Lawrence Date: Sat Aug 18 20:32:52 2007 +0200 Cleanup and Documentation for SQL::DB::Table commit cb014d11455950c14c391b449546386ee04b307a Author: Mark Lawrence Date: Sat Aug 18 17:51:52 2007 +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 Date: Sat Aug 18 17:46:40 2007 +0200 Less verbose debugging in SQL::DB::ARow commit 29973dbca9bfda6232de6d36b75e798f0bc06138 Author: Mark Lawrence Date: Sat Aug 18 17:37:41 2007 +0200 Added basic AS support to SQL::DB::AColumn commit f99f286dc7554b2d132042300b34ccd4964c4eff Author: Mark Lawrence Date: Sat Aug 18 17:08:54 2007 +0200 SQL::DB::Schema now has only query() method. select(), update() etc are gone. commit ddc54037393f5ada7beeffc2e60f3d13bf4c815e Author: Mark Lawrence Date: Sat Aug 18 17:08:02 2007 +0200 Added not equals '!=' expression type to SQL::DB::Expr. commit de5034cbb93d4e6591aed5fadd79f58a9ddfaebb Author: Mark Lawrence Date: Sat Aug 18 17:01:05 2007 +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 Date: Sat Aug 18 16:50:29 2007 +0200 SQL::DB::Table now creates object classes based on SQL::DB::Object. commit 4a79e6c2ffeb6f8e6f07bdfebdb60dab77df3ed3 Author: Mark Lawrence Date: Sat Aug 18 16:49:27 2007 +0200 Added new SQL::DB::Object class. commit f6e3b2f5136537d232e86d13b4b4fd8e3a803e47 Author: Mark Lawrence Date: Tue Jun 26 15:10:07 2007 +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 Date: Fri Jun 22 01:59:29 2007 +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 Date: Thu Jun 21 10:58:17 2007 +0200 Added GROUP BY support. commit 38c5a95ca67ccd5179425a8f6d820359df3525a1 Author: Mark Lawrence Date: Wed Jun 20 14:47:53 2007 +0200 Converted SQL::DB::sth_to_simple_objects from Class::Struct => Class::Accessor::Fast. Removed dependency on Class::Struct. commit ba606fbbb6acf8db66ba47f2b2ed48e5f482ffc4 Author: Mark Lawrence Date: Wed Jun 20 13:59:17 2007 +0200 Converted SQL::DB::Column from Class::Struct to Class::Accessor::Fast New dependency on Class::Accessor commit 593ba883145ce1cf4bd429041b9679f14f43c0e6 Author: Mark Lawrence Date: Wed Jun 20 13:16:41 2007 +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 Date: Wed Jun 20 13:13:32 2007 +0200 Test Schema: Moved table unique and index command to be multiple ARRAYREFs commit 61c1a014cdc150e0dfc61ca8542199704d3d645f Author: Mark Lawrence Date: Wed Jun 20 00:25:19 2007 +0200 Added brackets to UNION statements commit 799bf0fbd52d92b4efbd2f9e80d23c0c2af504a5 Author: Mark Lawrence Date: Tue Jun 19 23:33:26 2007 +0200 Support for arbitrary database functions (count, max, min, etc) commit 7638cfb9b0e9f1d26925bcfe74538233aa72ab31 Author: Mark Lawrence Date: Tue Jun 19 21:26:39 2007 +0200 Fixed a rather broken SQL::DB->schema method. commit d723d3798029834d6642ab9b98d36beff3f784c0 Author: Mark Lawrence Date: Tue Jun 19 20:48:09 2007 +0200 Module::Install::Build no longer necessary and removed. commit 7fb60ce1932cdf7cd0fa1cacc16460dc74e3cf3a Author: Mark Lawrence Date: Tue Jun 19 20:22:24 2007 +0200 SELECT UNION Support. commit 60cff74c7679104eb4ed73967c71a85e372cd05f Author: Mark Lawrence Date: Tue Jun 19 19:04:33 2007 +0200 Added vim defaults to every module: # vim: set tabstop=4 expandtab: commit a6f49bf880862def54c6b3ef0faf96af7299663a Author: Mark Lawrence Date: Tue Jun 19 18:16:18 2007 +0200 Column.pm: Make Class::Struct class definition at compile time. commit b5161ad74522bb17481f39c827fe744fd94293a0 Author: Mark Lawrence Date: Tue Jun 19 18:05:00 2007 +0200 Change references to SQL::Builder => SQL::Abstract since Builder is almost invisible - ie not on CPAN. commit ab78471a6657bbbadf71d6992a132a58da6e46bf Author: Mark Lawrence Date: Tue Jun 19 17:58:15 2007 +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 Date: Tue Jun 19 17:07:38 2007 +0200 Moved Insert.pm, Select.pm... to Query/Insert.pm, Query/Select.pm. commit 6ffd03a8805a131a387bcf10c4dc1b8a81367529 Author: Mark Lawrence Date: Tue Jun 19 16:44:22 2007 +0200 * Removed 'Changes' file from cogito/git control. * INSERT, SELECT, UPDATE, DELETE all do something! commit c760740570c2f8a5ceb4b1d602228512061df917 Author: Mark Lawrence Date: Mon Jun 18 16:38:18 2007 +0200 VERSION to 0.02 commit 0643a835dc2413e843a041019e41199a4dff04a0 Author: Mark Lawrence Date: Mon Jun 18 16:34:48 2007 +0200 New class SQL::DB to glue SQL::DB::Schema with DBI. Fully documented. commit 85567556ec241b35b60903eb6670e6f716f596bc Author: Mark Lawrence Date: Mon Jun 18 16:31:13 2007 +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 Date: Fri Jun 15 18:50:24 2007 +0200 * SQL::API::* renamed to SQL::DB::* * SQL::API.pm renamed to SQL::DB::Schema.pm commit c2f52970463af8d00abed84602cf25941a07b7c0 Author: Mark Lawrence Date: Fri Jun 15 18:29:43 2007 +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 Date: Sat Jun 9 23:50:08 2007 +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 Date: Fri Jun 8 01:51:04 2007 +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 Date: Thu Jun 7 15:51:17 2007 +0200 Big simplification of the api. INSERT and SELECT working. WHERE statements automatically produce correct FROM table aliases. commit 523be54f484c31a53de1e0bdf36e158db2343bcc Author: Mark Lawrence Date: Sat Jun 2 23:19:28 2007 +0200 Table and Column classes now handle UNIQUE and FOREIGN KEY statements. commit 179815c9e7013668d99bd075b186db86cb65ddeb Author: Mark Lawrence Date: Sat Jun 2 18:04:18 2007 +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 Date: Fri Jun 1 22:29:13 2007 +0200 Support for SELECT statements (incomplete) First test program (test.pl) commit 7e447fb263acc1c747acb36c0e7a1f37f3f68cb0 Author: Mark Lawrence Date: Fri Jun 1 15:38:46 2007 +0200 Initial Commit.