diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 41093a2d92..c49b4a368b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -2217,7 +2217,10 @@ final class SelectQueryImpl extends AbstractResultQuery imp .visit(K_FROM).sqlIndentStart(" (") .subquery(true); - toSQLReference0(ctx, new AliasOverride(originalFields, aliasedFields), null); + // [#13560] [#17947] Communicate the enforcement of MULTISET content to the CursorImpl. + if (ctx.executeContext() != null) + ctx.executeContext().data(DATA_MULTISET_CONTENT, true); + ctx.data(DATA_MULTISET_CONTENT, true, c -> toSQLReference0(c, new AliasOverride(originalFields, aliasedFields), null)); ctx.subquery(false) .sqlIndentEnd(") ") diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java b/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java index 3877ed989d..0bc49c7273 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java @@ -306,6 +306,7 @@ final class XMLHandler extends DefaultHandler { if ("record".equalsIgnoreCase(qName) && f.getDataType().isRecord()) { peek.values.add(newRecord(true, s.recordType, s.row, ctx.configuration()).operate(s::into)); s = states.pop(); + s.inRecord--; break x; } else if ("result".equalsIgnoreCase(qName) && f.getDataType().isMultiset()) {