提交 f11e8fa8 authored 作者: Evgenij Ryazanov's avatar Evgenij Ryazanov

Use more correct logic in Value.convertToRow()

上级 b1249945
...@@ -1337,18 +1337,19 @@ public abstract class Value extends VersionedValue { ...@@ -1337,18 +1337,19 @@ public abstract class Value extends VersionedValue {
return ValueArray.get(a); return ValueArray.get(a);
} }
private ValueRow convertToRow() { private Value convertToRow() {
Value[] a; Value[] a;
switch (getValueType()) { if (getValueType() == RESULT_SET) {
case ARRAY: ResultInterface result = ((ValueResultSet) this).getResult();
a = ((ValueArray) this).getList(); if (result.hasNext()) {
break; a = result.currentRow();
case BLOB: if (result.hasNext()) {
case CLOB: throw DbException.get(ErrorCode.SCALAR_SUBQUERY_CONTAINS_MORE_THAN_ONE_ROW);
case RESULT_SET: }
a = new Value[] { ValueString.get(getString()) }; } else {
break; return ValueNull.INSTANCE;
default: }
} else {
a = new Value[] { this }; a = new Value[] { this };
} }
return ValueRow.get(a); return ValueRow.get(a);
......
...@@ -84,5 +84,13 @@ SELECT ARRAY[1, NULL] IN (SELECT A FROM TEST); ...@@ -84,5 +84,13 @@ SELECT ARRAY[1, NULL] IN (SELECT A FROM TEST);
SELECT ROW (ARRAY[1, NULL]) IN (SELECT A FROM TEST); SELECT ROW (ARRAY[1, NULL]) IN (SELECT A FROM TEST);
>> null >> null
-- Compatibility with H2 1.4.197 and older
SELECT A FROM TEST WHERE A = (1, 2);
>> [1, 2]
-- Compatibility with H2 1.4.197 and older
INSERT INTO TEST VALUES ((1, 3));
> update count: 1
DROP TABLE TEST; DROP TABLE TEST;
> ok > ok
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论