I was trying the current trunk version of liquibase with an old change log we have based on the 1.9 version and ran into a problem using change set preconditions. In the previous version I could define a changeset like this:
Running this changeset on MS SQL with 2.0rc7-snapshot results in the error message
1 changes have validation failures
createSequence is not supported on mssql, path/changelog::1::testAuthor::(Checksum: 2:17699b538d82105bd31ebd971af86136)
Running the same on Liquibase 1.9.5 just marks the change set as run an continues. I did some checking on this because it might be one of the undocumented changes for Liquibase 2 (it is not on the Upgrade Guide). Attached is a unit test checking the precondition, the problem might be in the DatabaseChangeLog.validate() method, this one already fails, but checking the precondition itself just validates.
I am not completly sure what the task of validate is. Does it need to check if all change set descriptions (addColumn, addTable, createPrimaryKey) can be executed on the datatabase or must it also validate the preconditions, for preconditions that HALT the operation?
Can you please verify the test case and the problem described?