HSQL postgres对话框无法识别

时间:2017-07-21 12:57:20

标签: integration-testing hsqldb in-memory-database hypersql

我想使用HSQL进行集成测试。因此,我想设置与我用于生产的完全相同的脚本的测试模式。这是postgresql方言。在测试脚本中,我试图设置方言,但它似乎不起作用。

至少对于uuid数据类型和约束,我得到语法错误异常。例如。我得到了:

  

CREATE TABLE testtable(id bigint NOT NULL,some_uuid uuid NOT NULL,   name character characters(32)NOT NULL,CONSTRAINT testtable PRIMARY KEY   (id))WITH(OIDS = FALSE);嵌套异常是   java.sql.SQLSyntaxErrorException:未找到类型或用户缺少类型   特权:UUID

以下脚本:

SET DATABASE SQL SYNTAX PGS TRUE;

CREATE TABLE testtable
(
  id bigint NOT NULL,
  some_uuid uuid NOT NULL,
  name character varying(32) NOT NULL,
  CONSTRAINT testtable PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

我得到了:

  

无法执行类路径资源的SQL脚本语句#2   [setupTestData.sql]:CREATE TABLE testtable(id bigint NOT NULL,name   字符变化(32)NOT NULL,CONSTRAINT testtable PRIMARY KEY(id)   )WITH(OIDS = FALSE);嵌套异常是   java.sql.SQLSyntaxErrorException:意外令牌:(

这个脚本:

SET DATABASE SQL SYNTAX PGS TRUE;

CREATE TABLE testtable
(
  id bigint NOT NULL,
  --some_uuid uuid NOT NULL,
  name character varying(32) NOT NULL,
  CONSTRAINT testtable PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

1 个答案:

答案 0 :(得分:0)

HSQLDB 2.3.4及更高版本支持UUID。

HSQLDB目前不支持PostgreSQL扩展WITH (ODS= FALSE)