Pg views and sqlite views, patch from wreis
[dbsrgits/SQL-Translator.git] / Changes
diff --git a/Changes b/Changes
index 022f576..9dfdf9a 100644 (file)
--- a/Changes
+++ b/Changes
-2002-03-21 13:50  dlc
+# ----------------------------------------------------------
+# 
+# ----------------------------------------------------------
+* Added support for CREATE VIEW + tests in the Pg producer (wreis)
+* Added support for CREATE VIEW + tests in the sqlite producer (groditi)
+* Added proper argument parsing and documentation to MySQL Parser and Producer (ribasushi)
+* Using DROP VIEW instead of OR REPLACE clause in the Pg producer, as replace only allows replacement with same number of columns (wreis)
+* Added support for DROP VIEW and fixed CREATE VIEW statement in the sqlite producer (wreis)
+
+# ----------------------------------------------------------
+# 0.09001 2008-08-19
+# ----------------------------------------------------------
+* Added support for CREATE VIEW + tests in the mysql producer (groditi)
+* Added support for SET fields in the mysql producer + test (groditi)
+* Added support for proper booleans in the mysql producer, when a mysql version of at least 4.x is supplied
+* Added support for proper enums under pg (as of 8.3), with pg version check, and deferrable constraints
+* Added support to truncate long constraint and index names in the mysql producer, because of a change to DBIx::Class to produce such long names in some cases.
+
+# ----------------------------------------------------------
+# 0.09000 2008-02-25
+# ----------------------------------------------------------
+
+* Fix Pg produces idea of which field types need a size param (wreis)
+* Add support for COLLATE table option to MySQL parser
+* Allow DEFAULT CHARACTER SET without '=' (as produced by mysqldump)
+
+# -----------------------------------------------------------
+# 0.0899_02 2008-01-29
+# ----------------------------------------------------------
+
+* Major refactoring of SQL::Translator::Diff again:
+* Diff is no longer one huge monolithic function.                         
+* Added more tests for diff                                               
+* When producing diffs for MySQL you will (by default) get single alter statements per table
+* SQLite can also do remove columns (by creating a temp table as shown in http://sqlite.org/faq.html#q11
+* Columns can be renamed if the new schema is from a form that can have metadata (which is pretty much anything but an SQL file.) It does this by looking at renamed_from in the $field->extra                              
+* Updated Oracle and Postgres producers
+* More tests!
+
+# -----------------------------------------------------------
+# 0.0899_01 2007-10-21
+# ----------------------------------------------------------
+
+* SQL::Translator::Diff now uses the ::Producer modules to create diffs
+  This *will* break back-compatibility
+  Use sqlt-diff-old for the previous one, and fix producers!
+
+# -----------------------------------------------------------
+# 0.08001 2007-09-26
+# ----------------------------------------------------------
+
+* Patched to ignore all TT versions >= 2.15 until TT is fixed :(
+
+# -----------------------------------------------------------
+# 0.08 2006-12-07
+# -----------------------------------------------------------
+
+* Patched 18ttschema-producer.t and 33tt-table-producter.t to skip on TT 2.15, thanks Ash!
+
+# -----------------------------------------------------------
+# 0.08_04 2006-11-10
+# -----------------------------------------------------------
+
+* Patched MySQL producer to name constraints sanely, thanks Ash
+* Added patch to Producer::DB2 to avoid dependency issues with foreign keys
+* Added patch to remove single quotes for numeric default values in Producer::DB2
+* Fixed Parser::SQLite to require a semicolon after a create trigger statement
+* Added patch from avinash to add CASCADE to pg table drops
+
+# -----------------------------------------------------------
+# 0.08_03
+# -----------------------------------------------------------
+
+* Added patch to use default values for Pg timestamp fields
 
-       * BUGS, Changes, MANIFEST, MANIFEST.skip, Makefile.PL, TODO,
-       bin/sql_translator.pl, lib/SQL/Translator.pm,
-       lib/SQL/Translator/Parser.pm, lib/SQL/Translator/Producer.pm,
-       lib/SQL/Translator/Parser/MySQL.pm,
-       lib/SQL/Translator/Producer/Oracle.pm,
-       lib/SQL/Translator/Producer/XML.pm, t/01load.t, t/02mysql-parser.t,
-       t/03mysql-to-oracle.t, t/04file,fh,string.t, t/05bgep-re.t,
-       t/data/mysql/Apache-Session-MySQL.sql,
-       t/data/mysql/BGEP-RE-create.sql: Merged changes from darren-1_0 tag
-       into HEAD branch (hopefully!).
+# -----------------------------------------------------------
+# 0.08_02    2006-11-03
+# -----------------------------------------------------------
 
-2002-03-21 13:48  dlc
+* Added patch from Ash to separate DROP statements in mysql producer in list-context
+* Fixed up SQLites usage of no-comments
 
-       * MANIFEST, MANIFEST.skip, Makefile.PL: Removed in anticipation of
-       a merge.
+# -----------------------------------------------------------
+# 0.08_01    2006-07-23
+# -----------------------------------------------------------
 
-2002-03-21 13:07  dlc
+* Made Trigger check that a give table exists in on_table - castaway
+* Split some producers (DB2, MySQL, SQLite, PostgreSQL) into sub methods (others to follow) - castaway
+* Add alter_* methods to some Producers and docs to Producer.pm (for use by Diff later) - castaway
+* Made changes to allow producers to return a list of statements - castaway
+* Split sqlt-diff into script and module - castaway
+* Added quote_table_names and quote_field_names patch (omega, zamolxes) - castaway
+* Added DB2 Producer - castaway
+* Added mysql_character_set for 4.1+ -mda
+* New filters, Names and Globals. -mda
+* Added the initial work on a template based Dia UML producer. -mda
 
-       * t/: 05bgep-re.t, data/mysql/Apache-Session-MySQL.sql: Test
-       changes
+# -----------------------------------------------------------
+# 0.07    2005-06-10
+# -----------------------------------------------------------
+*   YAML parser supports extra attributes on tables.
 
-2002-03-21 12:52  dlc
+*   All schema objects now support the extra attribute, so can
+    have arbitary name/value data attached to them.
 
-       * Makefile.PL: Accidentally PREREQ_PM'ed XML::Writer instead fo
-       XML::Dumper
+*   Refactoring: Added SQL::Translator::Schema::Object - base 
+    class for all Schema objects.
 
-2002-03-21 12:48  dlc
+*   Changes to MySQL Parser (Dave Howorth)
+    - ignore INSERT statements
+    - permit ALTER TABLE ADD FOREIGN KEY
+    - allow trailing comma on last field in CREATE statements
+    - collect the database name
 
-       * t/data/mysql/Apache-Session-MySQL.sql: Re-added
+*   TTSchema Producer
+    - Can pass extra variables using tt_vars producer arg.
+    - Can pass extra config using tt_conf producer arg.
+    - Variables and config can be passed on the command line
+      with --tt-var and --tt-conf options to sqlt.
 
-2002-03-21 10:54  dlc
+*   Added schema filters.
 
-       * MANIFEST: Updated filelist
+*   MySQL Producer
+    - Added 'mysql_table_type' extra attribute on tables.
+    - Works out InnoDB tables from constraints.
+    - mysql_charset and mysql_collate extra attributes for tables and fiels.
 
-2002-03-21 10:53  dlc
 
-       * TODO: file TODO was initially added on branch darren-1_0.
+# -----------------------------------------------------------
+# 0.06    2004-05-13
+# -----------------------------------------------------------
+*   Added SQL::Translator::Manual
 
-2002-03-21 10:53  dlc
+*   Installation process now uses Module::Build
 
-       * t/01load.t: file 01load.t was initially added on branch
-       darren-1_0.
+*   Added new "Dumper" producer
 
-2002-03-21 10:53  dlc
+*   Changed the native SQL Fairy XML format to a fixed mapping.
+    *NB:* You should convert your existing XML schema. See the
+    SQL::Translator::Parser::XML::SQLFairy docs.
 
-       * t/05bgep-re.t: file 05bgep-re.t was initially added on branch
-       darren-1_0.
+*   Added producers: TT::Base and TT::Table.
 
-2002-03-21 10:53  dlc
+# -----------------------------------------------------------
+# 0.05    2004-02-27
+# -----------------------------------------------------------
+*   Added "COMMENT ON *" syntax to PostgreSQL parser
 
-       * BUGS: file BUGS was initially added on branch darren-1_0.
+*   Some fixes to Oracle parser as reported by Gail Binkley
 
-2002-03-21 10:53  dlc
+*   Added support in PostgreSQL parser for all "ALTER TABLE" statements
 
-       * BUGS, TODO, t/01load.t, t/05bgep-re.t,
-       t/data/mysql/Apache-Session-MySQL.sql: Added some basic files,
-       removed unused data file (the contents were moved into the test
-       that used the data).
+*   Now distributing sqlt-diff script as it's pretty usable
 
-2002-03-21 10:52  dlc
+*   Added new options to sqlt-graph and GraphViz producer (Dave Cash)
 
-       * t/data/mysql/BGEP-RE-create.sql: Removed comment lines (the
-       parser chokes on these, I think).  Changed DEFAULT x NOT NULL lines
-       to NOT NULL DEFAULT x, so overcompensate for a bug in the MySQL
-       parser.  Removed references to FULLTEXT indexes, because the MySQL
-       grammar doesn't know about them.
+# -----------------------------------------------------------
+# 0.04    2003-11-07
+# -----------------------------------------------------------
 
-2002-03-21 10:50  dlc
+*   Increased version of Constants module to 1.41 to avoid a problem 
+    where 0.02 has 1.4 of that file and 0.03 had 1.06 which confused
+    CPAN
 
-       * t/04file,fh,string.t: Removed warns and debugging, so this test
-       will actually pass when run as part of make test.
+*   Hard-coded all the PREREQ_PM modules in Makefile.PL (rather than
+    setting them dynamically) so that automated tests would pass
 
-2002-03-21 10:49  dlc
+# -----------------------------------------------------------
+# 0.03    2003-11-06
+# -----------------------------------------------------------
 
-       * t/03mysql-to-oracle.t: Turned off SQL::Translator::DEBUG.
+*   Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL, 
+    DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML
 
-2002-03-21 10:49  dlc
+*   Added producers: XML::SQLFairy, TTSchema, Storable, YAML
 
-       * t/02mysql-parser.t: Broke the 1 test out into 11 different tests,
-       each one of which tests a specific part of the data structure
-       returned by parse.
+*   HTML producer now uses stylesheets to allow easy customization of colors
 
-2002-03-21 10:48  dlc
+*   Many bug fixes to most every module
 
-       * lib/SQL/Translator/Producer/XML.pm: Changed name of translate
-       method to produce, to be consistant with Producer API. Added
-       __END__ token.  Updated $VERSION to be CPAN-compliant.
+*   Added "sqlt-dumper" script to help create a script for dumping
+    a database a la "mysqldump"
 
-2002-03-21 10:47  dlc
+*   Reversed the arrowheads on the graphical producers to show the 
+    relationships in a more standard way
 
-       * lib/SQL/Translator/Parser.pm: Modified POD to include a complex
-       description of the format of the data structure returned by parse. 
-       Added myself to the AUTHORS section.
+*   Changes all included script names to start with "sqlt"
 
-2002-03-21 10:45  dlc
+*   Added capturing and printing most embedded table and field comments
 
-       * Makefile.PL: Added Pod::Usage as a prerequisite
+# -----------------------------------------------------------
+# 0.02    2003-06-17
+# -----------------------------------------------------------
 
-2002-03-20 13:22  dlc
+*   Added parsers for Excel and Oracle
 
-       * Changes: Automatically generated by cvs2cl.pl
+*   Removed Sybase parser because it didn't actually work
 
-2002-03-20 11:37  dlc
+*   Added ClassDBI, Diagram, GraphViz, HTML, POD, SQLite, Sybase producers
 
-       * Makefile.PL: syncmail test.
+*   Added Schema classes to represent schema as objects
 
-2002-03-20 11:31  dlc
+*   Removed "Raw" producer in favor of the Schema classes
 
-       * Makefile.PL: This was a synmail test.
+*   Removed "Validator" class as the Schema classes validate themselves
 
-2002-03-19 08:26  dlc
+*   Improved all existing parsers and producers, expanding them to 
+    handle foreign keys much better, produce better output, etc.
 
-       * t/04file,fh,string.t: Changed some of the basic assumptions. 
-       Removed code to check filehandle reads.
+*   Added sqlt-diagram.pl and sqlt-graphviz.pl as CLI frontends to the 
+    graphical producers
 
-2002-03-18 15:39  dlc
+*   Added sql_translator.cgi as a web-form frontend to graphical producers
 
-       * Changes: Automatically generated by cvs2cl.pl
+*   Expanded test suite
 
-2002-03-18 15:39  dlc
+# -----------------------------------------------------------
+# 0.01    2003-02-27
+# -----------------------------------------------------------
 
-       * Changes: Changelog file.
+*   Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL, 
+    DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML
 
-2002-03-18 15:39  dlc
+*   Added producers: XML::SQLFairy, TTSchema, Storable, YAML
 
-       * Changes: file Changes was initially added on branch darren-1_0.
+*   HTML producer now uses stylesheets to allow easy customization of colors
 
-2002-03-18 15:35  dlc
+*   Many bug fixes to most every module
 
-       * lib/SQL/Translator.pm: Updated docs, especially detailed internal
-       API docs.  Updated default sub to return the data structure (and
-       not the SQL::Translator instance). This became an issue once the
-       subs were redefined to accept two args.  Removed the possibility to
-       pass a filehandle (or something that can getlines) as an option to
-       translate.  Added many levels of code folding markers.  Updated
-       parser to use a named class::function style of defining a function
-       to call, just like producer.
+*   Added "sqlt-dumper" script to help create a script for dumping
+    a database a la "mysqldump"
 
-2002-03-18 15:32  dlc
+*   Reversed the arrowheads on the graphical producers to show the 
+    relationships in a more standard way
 
-       * t/04file,fh,string.t: Changed many assumptions about the test. 
-       Uses the default parser and producer (which is a pass through)
-
-2002-03-18 15:30  dlc
-
-       * lib/SQL/Translator/Producer/Oracle.pm: Added note of a bug
-
-2002-03-15 15:18  dlc
-
-       * MANIFEST, MANIFEST.skip, Makefile.PL: Added files.
-
-2002-03-15 15:14  dlc
-
-       * MANIFEST: file MANIFEST was initially added on branch darren-1_0.
-
-2002-03-15 15:14  dlc
-
-       * MANIFEST, MANIFEST.skip, Makefile.PL: Added MANIFEST,
-       MANIFEST.skip, and Makefile.PL
-
-2002-03-15 15:14  dlc
-
-       * Makefile.PL: file Makefile.PL was initially added on branch
-       darren-1_0.
-
-2002-03-15 15:14  dlc
-
-       * MANIFEST.skip: file MANIFEST.skip was initially added on branch
-       darren-1_0.
-
-2002-03-15 15:13  dlc
-
-       * lib/SQL/: Translator.pm, Translator/Parser.pm,
-       Translator/Producer.pm, Translator/Parser/MySQL.pm,
-       Translator/Producer/Oracle.pm: Added copyright notices to top of
-       files.  Updated documentation to be accurate.  Updated parser and
-       producer classes to work with the modified API defined by
-       SQL::Translate.  SQL::Translator instances have data members named
-       parser_type and producer_type that can be used to determine from
-       whence the parser and producer subroutines come.  SQL::Translator
-       will accept parsers and producers in the form
-       Class::Name::function, just like mod_perl, in addition to
-       Class::Name (with the implicit function name), Name (relative to
-       SQL::Translator::{Parser,Producer}, and anonymous subroutines.
-
-2002-03-15 15:10  dlc
-
-       * t/: 02mysql-parser.t, 03mysql-to-oracle.t, 04file,fh,string.t,
-       data/mysql/Apache-Session-MySQL.sql, data/mysql/BGEP-RE-create.sql:
-       Added test data in groovy hierarchical directories.  Added some
-       basic tests, many of which don't do much yet.
-
-2002-03-15 15:10  dlc
-
-       * t/04file,fh,string.t: file 04file,fh,string.t was initially added
-       on branch darren-1_0.
-
-2002-03-15 15:10  dlc
-
-       * t/data/mysql/BGEP-RE-create.sql: file BGEP-RE-create.sql was
-       initially added on branch darren-1_0.
-
-2002-03-15 15:10  dlc
-
-       * t/03mysql-to-oracle.t: file 03mysql-to-oracle.t was initially
-       added on branch darren-1_0.
-
-2002-03-15 15:10  dlc
-
-       * t/data/mysql/Apache-Session-MySQL.sql: file
-       Apache-Session-MySQL.sql was initially added on branch darren-1_0.
-
-2002-03-15 15:10  dlc
-
-       * t/02mysql-parser.t: file 02mysql-parser.t was initially added on
-       branch darren-1_0.
-
-2002-03-15 15:09  dlc
-
-       * bin/sql_translator.pl: Updated to work with my updated API. 
-       Added license to beginning.  Updated  to be CPAN-compliant.
-
-2002-03-07 09:14  dlc
-
-       * lib/SQL/Translator.pm: Another attempt to check in a branch.
-
-2002-03-07 09:11  dlc
-
-       * lib/SQL/Translator.pm: Reverted to a version 1.1, due to botched
-       branch attempt.
-
-2002-03-07 09:06  dlc
-
-       * lib/SQL/Translator.pm: Many, many changes.  Changed the basic
-       assumptions about the module.  Parser and Producer packages no
-       longer need to be object oriented, they merely need to implement a
-       parse or translate function (respectively).
-
-2002-02-28 21:51  kycl4rk
-
-       * lib/SQL/.Translator.pm.swp: Stupid vim backup file.
-
-2002-02-28 21:26  kycl4rk
-
-       * lib/SQL/.Translator.pm.swp, bin/sql_translator.pl,
-       lib/SQL/Translator.pm, lib/SQL/Translator/Parser.pm,
-       lib/SQL/Translator/Producer.pm, lib/SQL/Translator/Parser/MySQL.pm,
-       lib/SQL/Translator/Parser/Sybase.pm,
-       lib/SQL/Translator/Producer/Oracle.pm,
-       lib/SQL/Translator/Producer/XML.pm: Initial revision
-
-2002-02-28 21:26  kycl4rk
-
-       * lib/SQL/.Translator.pm.swp, bin/sql_translator.pl,
-       lib/SQL/Translator.pm, lib/SQL/Translator/Parser.pm,
-       lib/SQL/Translator/Producer.pm, lib/SQL/Translator/Parser/MySQL.pm,
-       lib/SQL/Translator/Parser/Sybase.pm,
-       lib/SQL/Translator/Producer/Oracle.pm,
-       lib/SQL/Translator/Producer/XML.pm: Initial checkin.
+*   Changes all included script names to start with "sqlt"
 
+*   Added capturing and printing most embedded table and field comments