来自另一个表的H2 SYSTEM_RANGE参数

时间:2019-01-01 23:15:31

标签: postgresql join h2

这就是这种情况。本质上,我们有一个新的业务需求,即某个进程不能向磁盘写入任何内容。到目前为止,它一直在PostgreSQL上运行,但是由于PostgreSQL不支持内存数据库,因此我们试图切换到支持db的数据库。到目前为止,最好的选择似乎是H2。 (原因之一是我们的某些逻辑需要递归查询,H2似乎支持该查询。它也支持相同的SQL样式语法,而我不希望重写数百行SQL。)但是,我遇到一些问题。我们有一些函数,而H2不支持SQL函数(并且我真的不希望将我们的函数重新编码为Java,除非它比我想象的要容易得多),所以我试图内联它们。该函数在select语句中用作字段,并使用generate_series返回多行,基本上执行了自动JOIN。请注意,传递给generate_series的值是从相关行中的值派生的。 (即,对于表T的每一行,最终输出中可能存在0-N行,具体取决于T中的行。)

但是,H2中的情况略有不同。除了generate_series以外,还有system_range,其中A)仅间接记录(文档中没有任何地方提到的额外的step字段),而B)显然必须在FROM中使用子句,而不是SELECT表达式。但是,如果它作为一个JOIN在FROM子句中,则我无权访问JOIN中其他表的字段,并且无法生成所需的范围。 (请注意,我们正在处理时间戳,因此数字很可能太大而无法生成可能的完整范围并从中选择所需的范围。)

那么,如何从H2中的一行生成动态的N行? (或者,什么是替代解决方案?)

0 个答案:

没有答案