Liquibase changelog generation can add linefeed to defaultValueComputed if last column

Description

When liquibase generates an XML changelog for a table and the last column has a "DATA_DEFAULT" defined, liquibase will append an extra character to the defaultValueComputed in the XML.

This character can be a space or a '&10;' (Linefeed).

In particular if you use the following SQL to create a table in SQL developer:

Then the output from liquibase changelog generation looks like this:

It is important that the table is created exactly as specified as it seems that this is in part an Oracle bug. If there is no linefeed after the SYSDATE word in the original SQL used to create the table, then there will be no &10; in the output SQL either.

For example:

Will translate to:

If a linefeed is there as part of the XML, that linefeed will be copied into any generated SQL files even if that SQL file is a CRLF file.

In either case, the space that follows "SYSDATE" should not be there.

Environment

windows, cygwin, oracle 10g

Status

Reporter

James Henderson

Components

Fix versions

Affects versions

Priority

Major
Configure