Skip to content
This repository was archived by the owner on Mar 12, 2020. It is now read-only.

Commit ab27c89

Browse files
author
Eric Meyer
committed
Makes subqueries use NullDefaultCaseInsensitiveParameterSource. If subquery uses a bound parameter that is not present in the main item properties, then null is used for the parameter value.
1 parent 7e03102 commit ab27c89

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

src/main/java/com/t11e/discovery/datatool/CreateActionRowCallbackHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ else if (previousValue instanceof Collection)
169169

170170
private void performSubqueriesAndStreamItem(final String id, final Map<String, Object> properties)
171171
{
172-
final CaseInsensitveParameterSource subqueryParams = new CaseInsensitveParameterSource(properties);
172+
final CaseInsensitveParameterSource subqueryParams = new NullDefaultCaseInsensitiveParameterSource(properties);
173173
for (int i = 0; i < subqueries.size(); ++i)
174174
{
175175
final SubQuery subquery = subqueries.get(i);
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.t11e.discovery.datatool;
2+
3+
import java.util.Map;
4+
5+
6+
public class NullDefaultCaseInsensitiveParameterSource
7+
extends CaseInsensitveParameterSource
8+
{
9+
10+
public NullDefaultCaseInsensitiveParameterSource()
11+
{
12+
super();
13+
}
14+
15+
public NullDefaultCaseInsensitiveParameterSource(final Map<String, Object> params)
16+
{
17+
super(params);
18+
}
19+
20+
public NullDefaultCaseInsensitiveParameterSource(final String paramName, final Object value)
21+
{
22+
super(paramName, value);
23+
}
24+
25+
@Override
26+
public boolean hasValue(final String paramName)
27+
{
28+
return true;
29+
}
30+
}

src/test/java/com/t11e/discovery/datatool/SubqueryTest.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,13 @@
3636
<snapshot>
3737
<set-item idColumn="id">
3838
<query><![CDATA[
39-
select * from SubqueryContent
39+
select c.*, '' as "bound" from SubqueryContent c
4040
]]></query>
4141
<subquery property="color" type="delimited"><![CDATA[
4242
select asnumber from SubqueryColors where parent_id=:id order by name
43+
]]></subquery>
44+
<subquery property="sometimes_has_bound" ><![CDATA[
45+
select 'hello' as "greeting" from SubqueryColors where parent_id=:id and '' != :bound
4346
]]></subquery>
4447
</set-item>
4548
<remove-item idColumn="id">

0 commit comments

Comments
 (0)