Hello,
the Method AbstractDatabase.escapeColumnName() incorrectly assumes that column names that contain an opening parenthesis should not be quoted. I just tried to create a changelog from a SQL Server database that (for some very weird reasons) have a column named “Remote (flag)”.
Now in the method JdbcDatabaseSnapshotGenerator.isColumnAutoIncrement() the following SELECT statement will be created:
- SELECT Remote (flag)
- FROM FooTable
- WHERE 1=0
which obviously fails as there is no function called “Remote”. The column should have been fully quoted instead:
- SELECT "Remote (flag)"
- FROM FooTable
- WHERE 1=0
Liquibase 1.9 can generate a changeLog from that database. This only happens with 2.0.x