HSQL升级到1.8:... DEFAULT' NaN'更改为... database.script中的DEFAULT 0E0 / 0E0导致HsqlException:HSQL 2.3.2中的意外令牌/

时间:2015-06-16 19:32:00

标签: upgrade hsqldb nan

我有一个使用HSQL 1.7.2的应用程序,它包含一些DOUBLE列的默认值为NaN的表定义。发布后,用1.7.2,

SET SCRIPTFORMAT TEXT
SHUTDOWN SCRIPT

以下内容出现在database.script文件中:

CREATE TABLE ... DOUBLE DEFAULT 'NaN' NOT NULL ...

我尝试升级到HSQL 2.3.2,但我首先要升级到1.8。我发现在升级到1.8之后,database.script文件有:

CREATE TABLE ... DOUBLE DEFAULT 0E0/0E0 NOT NULL ...

当我用HSQL 2.3.2打开这个数据库时,我得到" SQLException:脚本文件行中的错误..."在" /"第一次出现。回溯包括"由以下原因引起:org.hsqldb.HsqlException:意外令牌:/"。

我用double_nan=false搞砸了很多,没有成功。

有人对我有任何建议吗?

1 个答案:

答案 0 :(得分:1)

在版本2.x中删除了对NaN的支持作为默认值。这将在下次更新时恢复。

目前,将默认值更改为NULL并在表上添加TRIGGER以将NULL条目转换为NaN。

必须指定属性hsqldb.double_nan=false或为数据库执行语句SET DATABASE SQL DOUBLE NAN FALSE以接受NaN数据值。