Liquibase doesn't support precision

Hi Nathan.
I noticed that when I try to use CreateTable tag to create new table, I’ve got problem with ColumnType attribute. When ColumnType value is for example: NUMBER(10) I’ve got following error:

    liquibase.exception.UnexpectedLiquibaseException: Type class liquibase.database.structure.type.NumberType doesn't support precision but precision was specified: NUMBER(10) at liquibase.database.typeconversion.core.AbstractTypeConverter.getColumnType(AbstractTypeConverter.java:216) at liquibase.sqlgenerator.core.CreateTableGenerator.generateSql(CreateTableGenerator.java:45) at liquibase.ext.ora.splittable.SplitTableGenerator.Transition(SplitTableGenerator.java:131) at liquibase.ext.ora.splittable.SplitTableGenerator.generateSql(SplitTableGenerator.java:35) at liquibase.ext.ora.splittable.SplitTableGenerator.generateSql(SplitTableGenerator.java:1) at liquibase.sqlgenerator.SqlGeneratorChain.generateSql(SqlGeneratorChain.java:29) at liquibase.sqlgenerator.SqlGeneratorFactory.generateSql(SqlGeneratorFactory.java:119) at liquibase.ext.ora.splittable.SplitTableChangeTest.parseAndGenerate(SplitTableChangeTest.java:113) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71) at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
   

Do you have any suggestion? Why NUMBER isn’t supported by precision?

Tomek

What version of liquibase are you using?

Nathan

version 2.0.b1

Tomek

That is a bug in beta1 (and beta2).  We redid the type conversion logic in trunk for 2.0 beta3 (hoiping to et out as soon as I can get the maven build and build server working correctly). 

If you are using liquibase for any production work, 2.0 is not ready and probably contains bugs.  You should stick with 1.9 until the 2.0 final release is out.  If you are wanting the 2.0 betas, you can check out trunk and build it locally, or wait for beta3.

Nathan

I have a similar problem with the bigint type. It doesn’t respect the size parameter when running on oracle. It always outputs as NUMBER(38).

Running on 2.0-RC1