Lots of cleanup, removal of "foo" variables which are opaque.
[dbsrgits/SQL-Translator.git] / Changes
1 # ----------------------------------------------------------
2 # x.xxxxx xxxx-xx-xx
3 # ----------------------------------------------------------
4 * Properly quote absolute table names in the MySQL producer
5 * Added semi-colon for (DROP|CREATE) TYPE statements in the Pg producer (wreis)
6
7 # ----------------------------------------------------------
8 # 0.09004 2009-02-13
9 # ----------------------------------------------------------
10 * Add support for temporary tables in Pg (nachos)
11 * Create Trigger support for SQLite
12 * GraphViz producer improvements
13
14 # ----------------------------------------------------------
15 # 0.09003 2009-02-07
16 # ----------------------------------------------------------
17   <BORKED RELEASE DELETED OFF CPAN>
18
19 # ----------------------------------------------------------
20 # 0.09002 2008-12-05
21 # ----------------------------------------------------------
22 * parsing MySQL CURRENT_TIMESTAMP as scalar ref so it can be produced without 
23   quotes (jgoulah)
24 * Add ignore_opts parser arg (to ignore table options) in Parser::MySQL (jgoulah)
25 * Skip tests for buggy Spreadsheet::ParseExcel versions (rbo)
26 * Add support for skip tables parser arg in Parser::DBI::MySQL (jgoulah)
27 * Changed behaviour of ::Producer::Oracle when returning an array of statements 
28   to make it compatible to DBI->do()
29 * Fixed a few bugs in ::Producer::Oracle
30 * Applied patch from jgoulah to support mysql's MERGE option
31 * Applied patch from rbo to add support of multiple database events on a trigger
32 * Applied patch from lukes to allow drop if exists in sqlite producer, with 
33   version >= 3.3
34 * Applied patch from rjbs with minor changes, now we support scalar refs in 
35   default values!
36 * Fixed SQLite producer to end index statements in newlines, in scalar context
37 * Decreed that all list context statements shall not end in ; or ;\n
38 * Fixed SQLite, Diff and MySQL producers to agree with Decree.
39 * Added support for CREATE VIEW + tests in the Pg producer (wreis)
40 * Added support for CREATE VIEW + tests in the sqlite producer (groditi)
41 * Added proper argument parsing and documentation to MySQL Parser and 
42   Producer (ribasushi)
43 * Using DROP VIEW instead of OR REPLACE clause in the Pg producer, as replace 
44   only allows replacement with identical set of columns (wreis)
45 * Added support for DROP VIEW and fixed CREATE VIEW statement in the sqlite 
46   producer (wreis)
47 * Removed source_db and target_db accessors from Diff (throwback to old version, 
48   only output_db is used)
49
50
51 * Support for longer varchar fields in MySQL
52
53 # ----------------------------------------------------------
54 # 0.09001 2008-08-19
55 # ----------------------------------------------------------
56 * Added support for CREATE VIEW + tests in the mysql producer (groditi)
57 * Added support for SET fields in the mysql producer + test (groditi)
58 * Added support for proper booleans in the mysql producer, when a mysql version 
59   of at least 4.x is supplied
60 * Added support for proper enums under pg (as of 8.3), with pg version check, 
61   and deferrable constraints
62 * Added support to truncate long constraint and index names in the mysql 
63   producer, because of a change to DBIx::Class to produce such long names in 
64   some cases.
65
66 # ----------------------------------------------------------
67 # 0.09000 2008-02-25
68 # ----------------------------------------------------------
69
70 * Fix Pg produces idea of which field types need a size param (wreis)
71 * Add support for COLLATE table option to MySQL parser
72 * Allow DEFAULT CHARACTER SET without '=' (as produced by mysqldump)
73
74 # -----------------------------------------------------------
75 # 0.0899_02 2008-01-29
76 # ----------------------------------------------------------
77
78 * Major refactoring of SQL::Translator::Diff again:
79 * Diff is no longer one huge monolithic function.                         
80 * Added more tests for diff                                               
81 * When producing diffs for MySQL you will (by default) get single alter 
82   statements per table
83 * SQLite can also do remove columns (by creating a temp table as shown in 
84   http://sqlite.org/faq.html#q11
85 * Columns can be renamed if the new schema is from a form that can have metadata
86   (which is pretty much anything but an SQL file.) It does this by looking at 
87   renamed_from in the $field->extra                              
88 * Updated Oracle and Postgres producers
89 * More tests!
90
91 # -----------------------------------------------------------
92 # 0.0899_01 2007-10-21
93 # ----------------------------------------------------------
94
95 * SQL::Translator::Diff now uses the ::Producer modules to create diffs
96   This *will* break back-compatibility
97   Use sqlt-diff-old for the previous one, and fix producers!
98
99 # -----------------------------------------------------------
100 # 0.08001 2007-09-26
101 # ----------------------------------------------------------
102
103 * Patched to ignore all TT versions >= 2.15 until TT is fixed :(
104
105 # -----------------------------------------------------------
106 # 0.08 2006-12-07
107 # -----------------------------------------------------------
108
109 * Patched 18ttschema-producer.t and 33tt-table-producter.t to skip on TT 2.15, 
110   thanks Ash!
111
112 # -----------------------------------------------------------
113 # 0.08_04 2006-11-10
114 # -----------------------------------------------------------
115
116 * Patched MySQL producer to name constraints sanely, thanks Ash
117 * Added patch to Producer::DB2 to avoid dependency issues with foreign keys
118 * Added patch to remove single quotes for numeric default values in Producer::DB2
119 * Fixed Parser::SQLite to require a semicolon after a create trigger statement
120 * Added patch from avinash to add CASCADE to pg table drops
121
122 # -----------------------------------------------------------
123 # 0.08_03
124 # -----------------------------------------------------------
125
126 * Added patch to use default values for Pg timestamp fields
127
128 # -----------------------------------------------------------
129 # 0.08_02    2006-11-03
130 # -----------------------------------------------------------
131
132 * Added patch from Ash to separate DROP statements in mysql producer in 
133   list-context
134 * Fixed up SQLites usage of no-comments
135
136 # -----------------------------------------------------------
137 # 0.08_01    2006-07-23
138 # -----------------------------------------------------------
139
140 * Made Trigger check that a give table exists in on_table - castaway
141 * Split some producers (DB2, MySQL, SQLite, PostgreSQL) into sub methods (others
142   to follow) - castaway
143 * Add alter_* methods to some Producers and docs to Producer.pm (for use by Diff
144   later) - castaway
145 * Made changes to allow producers to return a list of statements - castaway
146 * Split sqlt-diff into script and module - castaway
147 * Added quote_table_names and quote_field_names patch (omega, zamolxes) - castaway
148 * Added DB2 Producer - castaway
149 * Added mysql_character_set for 4.1+ -mda
150 * New filters, Names and Globals. -mda
151 * Added the initial work on a template based Dia UML producer. -mda
152
153 # -----------------------------------------------------------
154 # 0.07    2005-06-10
155 # -----------------------------------------------------------
156 *   YAML parser supports extra attributes on tables.
157
158 *   All schema objects now support the extra attribute, so can
159     have arbitary name/value data attached to them.
160
161 *   Refactoring: Added SQL::Translator::Schema::Object - base 
162     class for all Schema objects.
163
164 *   Changes to MySQL Parser (Dave Howorth)
165     - ignore INSERT statements
166     - permit ALTER TABLE ADD FOREIGN KEY
167     - allow trailing comma on last field in CREATE statements
168     - collect the database name
169
170 *   TTSchema Producer
171     - Can pass extra variables using tt_vars producer arg.
172     - Can pass extra config using tt_conf producer arg.
173     - Variables and config can be passed on the command line
174       with --tt-var and --tt-conf options to sqlt.
175
176 *   Added schema filters.
177
178 *   MySQL Producer
179     - Added 'mysql_table_type' extra attribute on tables.
180     - Works out InnoDB tables from constraints.
181     - mysql_charset and mysql_collate extra attributes for tables and fiels.
182
183
184 # -----------------------------------------------------------
185 # 0.06    2004-05-13
186 # -----------------------------------------------------------
187 *   Added SQL::Translator::Manual
188
189 *   Installation process now uses Module::Build
190
191 *   Added new "Dumper" producer
192
193 *   Changed the native SQL Fairy XML format to a fixed mapping.
194     *NB:* You should convert your existing XML schema. See the
195     SQL::Translator::Parser::XML::SQLFairy docs.
196
197 *   Added producers: TT::Base and TT::Table.
198
199 # -----------------------------------------------------------
200 # 0.05    2004-02-27
201 # -----------------------------------------------------------
202 *   Added "COMMENT ON *" syntax to PostgreSQL parser
203
204 *   Some fixes to Oracle parser as reported by Gail Binkley
205
206 *   Added support in PostgreSQL parser for all "ALTER TABLE" statements
207
208 *   Now distributing sqlt-diff script as it's pretty usable
209
210 *   Added new options to sqlt-graph and GraphViz producer (Dave Cash)
211
212 # -----------------------------------------------------------
213 # 0.04    2003-11-07
214 # -----------------------------------------------------------
215
216 *   Increased version of Constants module to 1.41 to avoid a problem 
217     where 0.02 has 1.4 of that file and 0.03 had 1.06 which confused
218     CPAN
219
220 *   Hard-coded all the PREREQ_PM modules in Makefile.PL (rather than
221     setting them dynamically) so that automated tests would pass
222
223 # -----------------------------------------------------------
224 # 0.03    2003-11-06
225 # -----------------------------------------------------------
226
227 *   Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL, 
228     DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML
229
230 *   Added producers: XML::SQLFairy, TTSchema, Storable, YAML
231
232 *   HTML producer now uses stylesheets to allow easy customization of colors
233
234 *   Many bug fixes to most every module
235
236 *   Added "sqlt-dumper" script to help create a script for dumping
237     a database a la "mysqldump"
238
239 *   Reversed the arrowheads on the graphical producers to show the 
240     relationships in a more standard way
241
242 *   Changes all included script names to start with "sqlt"
243
244 *   Added capturing and printing most embedded table and field comments
245
246 # -----------------------------------------------------------
247 # 0.02    2003-06-17
248 # -----------------------------------------------------------
249
250 *   Added parsers for Excel and Oracle
251
252 *   Removed Sybase parser because it didn't actually work
253
254 *   Added ClassDBI, Diagram, GraphViz, HTML, POD, SQLite, Sybase producers
255
256 *   Added Schema classes to represent schema as objects
257
258 *   Removed "Raw" producer in favor of the Schema classes
259
260 *   Removed "Validator" class as the Schema classes validate themselves
261
262 *   Improved all existing parsers and producers, expanding them to 
263     handle foreign keys much better, produce better output, etc.
264
265 *   Added sqlt-diagram.pl and sqlt-graphviz.pl as CLI frontends to the 
266     graphical producers
267
268 *   Added sql_translator.cgi as a web-form frontend to graphical producers
269
270 *   Expanded test suite
271
272 # -----------------------------------------------------------
273 # 0.01    2003-02-27
274 # -----------------------------------------------------------
275
276 *   Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL, 
277     DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML
278
279 *   Added producers: XML::SQLFairy, TTSchema, Storable, YAML
280
281 *   HTML producer now uses stylesheets to allow easy customization of colors
282
283 *   Many bug fixes to most every module
284
285 *   Added "sqlt-dumper" script to help create a script for dumping
286     a database a la "mysqldump"
287
288 *   Reversed the arrowheads on the graphical producers to show the 
289     relationships in a more standard way
290
291 *   Changes all included script names to start with "sqlt"
292
293 *   Added capturing and printing most embedded table and field comments