Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 465 lines (376 sloc) 20.411 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464

* Correctly create and parse FK constraints in SQLite
* Correct postgis geography type insertion and linebreak fix for multiple geometry/geography columns
* made PostgreSQL producer consistent with other producers in terms of
  quoting and allowing functions in constraints and indices
* Add distinction of autoinc and regular primary keys to the GraphViz producer
* Fix odd invocation of Test::More::pass() in t/36-filters.t (RT#64728)
* Quote everything in SQL Server
* Turn off constraints before dropping tables in SQL Server
* Make true unique constraints if needed in SQL Server
* Fixed Producer::PostgresSQL to output array type after type size,
  i.e. varchar(64)[] rather than varchar[](64)

# ----------------------------------------------------------
# 0.11007 2010-11-30
# ----------------------------------------------------------

* Fix POD typo in SQL/Translator/Schema/Trigger.pm
* Add explicit Scalar::Util to the deplist for really old perls
* Add support for PostGIS Geometry and Geography data types in the Pg producer
* Some minor fixes to squash warnings on new perls
* Support a custom_type_name hint when creating enum types in PostgreSQL
* Fix sqlt options/pod mismatch (RT#58318)
* Oracle Producer multicolumn constraint support
* Add support for triggers in the MySQL producer
* Fix unstable order of View's in MySQL parser

# ----------------------------------------------------------
# 0.11006 2010-06-03
# ----------------------------------------------------------
* Fix Producer::Oracle varchar2 without size def (ORA-00906: missing right
  parenthesis)
* Fix Producer::Oracle translate float and double to float instead of number
* Fix Producer::Oracle generation of too long unique constraint names
* Fix Producer::SQLite when generating VIEWs with add_drop_table => 1
* Fix Producer::MySQL not quoting index names when requested (RT#56173)
* Fix Producer::MySQL wrapping extra ()s around VIEW SELECT-ors (RT#56419)
* Fix Field::default_value to behave like a real accessor (allow undef as
  an unsetting argument)
* Fix Mysql/Pg/SQLite/MSSQL producers to properly *not* quote numeric default
  values (RT#57059)
* Producer::Oracle tests now use Test::Differences
* Prettify output of SQLite producer (less bogus newlines)
* Augment SQLite and Pg producers to accept a perl-formatted (%d.%03d%03d)
  and regular no-leading-zero (X.X.X) *_version producer args

# ----------------------------------------------------------
# 0.11005 2010-02-24
# ----------------------------------------------------------
* Fix Parser::DBI::Oracle reading too many tables (RT#49413)
* Fix Parser::MySQL tripping up on PRIMARY KEY ... USING (currently value is ignored) (RT#50468)
* Fix runaway debug trace (RT#52276)
* Fix Parser::PostgreSQL choking on commit; statements in DDL (#RT52277)
* Producer::Oracle now respects quote_field|table_names, and
  no longer does name munging of reserved table names
* Producer::Oracle now correctly outputs databse-unique index names

# ----------------------------------------------------------
# 0.11004 2010-02-14
# ----------------------------------------------------------
* Fix PG producer numeric precision regression (RT#49301)
* Add DB2 producer numeric/decimal precision output
* Fix Oracle producer creating numeric precision statements that the test case expects (no whitespace)
* Add Oracle producer creating drop view statements like PG producer does
* Fix SQL::Translator::Diff to use producer_args instead of producer_options

# ----------------------------------------------------------
# 0.11003 2009-09-28
# ----------------------------------------------------------
* Pg parser fixes to deal properly with MATCH <type>
* Pg parser fixes to parse timestamp attributes correctly
* Fix broken default detection in script/sqlt (RT#27438)
* Fix dependency issues with LibXML and TT

# ----------------------------------------------------------
# 0.11002 2009-08-30
# ----------------------------------------------------------
* Depend on fixed Parse::RecDescent
* Added skip-tables and skip-tables-like options to Diagram

# ----------------------------------------------------------
# 0.11001 2009-08-18
# ----------------------------------------------------------
* Removed last use of Readonly
* Adjusted YAML dependency

# ----------------------------------------------------------
# 0.11000 2009-08-18
# ----------------------------------------------------------
* Re-add version numbers to files, else cpan's "upgrade" gets very confused
* Replaced code using Readonly, since most of the rest uses constant, and thats already a dep
* Moved YAML and XML::LibXML back to recommends, the tests for both now skip if not installed
* Bumped to 0.11000 to supercede 0.10 which has incorrect numbering scheme

# ----------------------------------------------------------
# 0.10 2009-08-13
# ----------------------------------------------------------
* Resolved the following RT bugs (thanks to everyone for reporting!):
25791 does not recognize PostgreSQL ON_ERROR_STOP
29265 sqlt-diagram: --natural-join needs Graph::Directed
37814 SQLite translator failing to parse schema
42548 Producer::PostgreSQL incorrectly inserts the size in
        'time(stamp)? with(out) time zone' fields
43173 SQL::Translator::Parser without versionnumber - will install
        old 0.09002
46805 (No subject)
47026 META.yml is not packaged due to MANIFEST.SKIP (easyfix)
32130 Move from XML::XPath to XML::LibXML::XPathContext
22261 MySQL parse
13915 missing optional prerequisite cause make test to fail
8847 Diagram.pm: BINMODE missing in printing of graphic file.
21065 GraphViz producer fails on tables named 'node'
35448 Producer::PostgreSQL types without size
22026 sqlt-diagram uses -f arg twice
47897 [PATCH] Fix uninitialized value within @_ in (uc|lc)
47668 Mysql Parser doesn't recognize key types
46448 sqlt-graph errors out on MySQL DDL with btree keys
47176 Add Foreign Key support to Parser::DBI::PostgreSQL.pm
48025 MySQL Producer: Case inconsistency between elements in
        @no_length_attr and $data_type
48569 sqlt-diagram fails to load SQLite schema
48596 SQL::Translator::Diff::schema_diff should produce a list in
        list context
44907 SQL::Translator::Producer::PostgreSQL produce() in list context
        should return a list of statements

# ----------------------------------------------------------
# 0.09007 2009-06-25
# ----------------------------------------------------------
* Fixed Pg parser - caching the compiled P::RD schema is a *very*
  bad idea
* Fix MSSQL handling of ON UPDATE/DELETE RESTRICT
* Delay MSSQL FK constraint deployment until after all CREATE TABLE
  statements
* Coerce other engine's bytea/blob/clob datatypes to VarBinary

# ----------------------------------------------------------
# 0.09006 2009-06-10
# ----------------------------------------------------------
* Multiple test and dependency adhustments to make smokers happy
* Fix YAML producer wrt extra attribute
* Added support for "time(stamp) (p) with time zone" for Pg producer (mo)

# ----------------------------------------------------------
# 0.09005 2009-06-08
# ----------------------------------------------------------
* Add parser support for MySQL default values with a single quote
* Properly quote absolute table names in the MySQL producer
* Added CREATE VIEW subrules for mysql parser (wreis)
* Many fixes to code and tests for trigger's "database_events"
* Added semi-colon for (DROP|CREATE) TYPE statements in the Pg producer (wreis)
* ALTER TABLE/ALTER COLUMN/DROP DEFAULT support in Pg producer (mo)
* XML parser support for multi-event triggers
* SQLite producer support for multi-event triggers
* XML parser switched from XML::XPath to XML::LibXML
* Pg producer ALTER TABLE/COLUMN and DROP DEFAULT support
* MySQL producer skips length attribute for columns which do not support that
  attribute. Currently following column types are added to that list:
  date time timestamp datetime year
* Switch to Module::Install (mandates minimum perl 5.005)
* Major cleanup of GraphViz proucer
* Massive amount of fixes to SQLite/Pg/Mysql/MSSQL parsers/producers
  Fix most of the problems uncovered by the roundtrip test framework
  Some highlights:
    - Rewind exhausted globs before attempting a read
    - Do not add xml comment header if no_comments is set
    - table/field counts are held per schema object, not globally
    - no more variable table and column names in SQLite and MSSQL
    - VIEW support for Pg parser, also some cleanups
    - The way we generate Pg create view statements was not standards compliant
      (per RhodiumToad in #postgresql)
    - Disable MSSQL view/procedure production - they never worked in the first place
    - SQLite/MSSQL improvements:
      - Support parsing of all DROP clauses
      - Support parsing of field-level comments
      - When producing do not append table names to constraint/index names

# ----------------------------------------------------------
# 0.09004 2009-02-13
# ----------------------------------------------------------
* Add support for temporary tables in Pg (nachos)
* Create Trigger support for SQLite
* GraphViz producer improvements

# ----------------------------------------------------------
# 0.09003 2009-02-07
# ----------------------------------------------------------
  <BORKED RELEASE DELETED OFF CPAN>

# ----------------------------------------------------------
# 0.09002 2008-12-05
# ----------------------------------------------------------
* parsing MySQL CURRENT_TIMESTAMP as scalar ref so it can be produced without
  quotes (jgoulah)
* Add ignore_opts parser arg (to ignore table options) in Parser::MySQL (jgoulah)
* Skip tests for buggy Spreadsheet::ParseExcel versions (rbo)
* Add support for skip tables parser arg in Parser::DBI::MySQL (jgoulah)
* Changed behaviour of ::Producer::Oracle when returning an array of statements
  to make it compatible to DBI->do()
* Fixed a few bugs in ::Producer::Oracle
* Applied patch from jgoulah to support mysql's MERGE option
* Applied patch from rbo to add support of multiple database events on a trigger
* Applied patch from lukes to allow drop if exists in sqlite producer, with
  version >= 3.3
* Applied patch from rjbs with minor changes, now we support scalar refs in
  default values!
* Fixed SQLite producer to end index statements in newlines, in scalar context
* Decreed that all list context statements shall not end in ; or ;\n
* Fixed SQLite, Diff and MySQL producers to agree with Decree.
* 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 identical set of columns (wreis)
* Added support for DROP VIEW and fixed CREATE VIEW statement in the sqlite
  producer (wreis)
* Removed source_db and target_db accessors from Diff (throwback to old version,
  only output_db is used)


* Support for longer varchar fields in MySQL

# ----------------------------------------------------------
# 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

# -----------------------------------------------------------
# 0.08_02 2006-11-03
# -----------------------------------------------------------

* Added patch from Ash to separate DROP statements in mysql producer in
  list-context
* Fixed up SQLites usage of no-comments

# -----------------------------------------------------------
# 0.08_01 2006-07-23
# -----------------------------------------------------------

* 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

# -----------------------------------------------------------
# 0.07 2005-06-10
# -----------------------------------------------------------
* YAML parser supports extra attributes on tables.

* All schema objects now support the extra attribute, so can
    have arbitary name/value data attached to them.

* Refactoring: Added SQL::Translator::Schema::Object - base
    class for all Schema objects.

* 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

* 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.

* Added schema filters.

* 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.


# -----------------------------------------------------------
# 0.06 2004-05-13
# -----------------------------------------------------------
* Added SQL::Translator::Manual

* Installation process now uses Module::Build

* Added new "Dumper" producer

* 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.

* Added producers: TT::Base and TT::Table.

# -----------------------------------------------------------
# 0.05 2004-02-27
# -----------------------------------------------------------
* Added "COMMENT ON *" syntax to PostgreSQL parser

* Some fixes to Oracle parser as reported by Gail Binkley

* Added support in PostgreSQL parser for all "ALTER TABLE" statements

* Now distributing sqlt-diff script as it's pretty usable

* Added new options to sqlt-graph and GraphViz producer (Dave Cash)

# -----------------------------------------------------------
# 0.04 2003-11-07
# -----------------------------------------------------------

* 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

* Hard-coded all the PREREQ_PM modules in Makefile.PL (rather than
    setting them dynamically) so that automated tests would pass

# -----------------------------------------------------------
# 0.03 2003-11-06
# -----------------------------------------------------------

* Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL,
    DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML

* Added producers: XML::SQLFairy, TTSchema, Storable, YAML

* HTML producer now uses stylesheets to allow easy customization of colors

* Many bug fixes to most every module

* Added "sqlt-dumper" script to help create a script for dumping
    a database a la "mysqldump"

* Reversed the arrowheads on the graphical producers to show the
    relationships in a more standard way

* Changes all included script names to start with "sqlt"

* Added capturing and printing most embedded table and field comments

# -----------------------------------------------------------
# 0.02 2003-06-17
# -----------------------------------------------------------

* Added parsers for Excel and Oracle

* Removed Sybase parser because it didn't actually work

* Added ClassDBI, Diagram, GraphViz, HTML, POD, SQLite, Sybase producers

* Added Schema classes to represent schema as objects

* Removed "Raw" producer in favor of the Schema classes

* Removed "Validator" class as the Schema classes validate themselves

* Improved all existing parsers and producers, expanding them to
    handle foreign keys much better, produce better output, etc.

* Added sqlt-diagram.pl and sqlt-graphviz.pl as CLI frontends to the
    graphical producers

* Added sql_translator.cgi as a web-form frontend to graphical producers

* Expanded test suite

# -----------------------------------------------------------
# 0.01 2003-02-27
# -----------------------------------------------------------

* Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL,
    DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML

* Added producers: XML::SQLFairy, TTSchema, Storable, YAML

* HTML producer now uses stylesheets to allow easy customization of colors

* Many bug fixes to most every module

* Added "sqlt-dumper" script to help create a script for dumping
    a database a la "mysqldump"

* Reversed the arrowheads on the graphical producers to show the
    relationships in a more standard way

* Changes all included script names to start with "sqlt"

* Added capturing and printing most embedded table and field comments
Something went wrong with that request. Please try again.