[
https://issues.apache.org/jira/browse/METAMODEL-251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15296446#comment-15296446
]
Hans Drexler commented on METAMODEL-251:
----------------------------------------
I am getting unit test errors now, because MM code is relying on MM returning
null for missing SelectItem objects in some cases. In
MetaModelHelper.getLeftJoin(...), when ds2 is empty, MM uses a shortcut
{code}
if (ds2data.isEmpty()) {
// no need to join, simply return a new view (with null values) on
// the previous dataset.
return getSelection(selectItems, ds1);
}
{code}
This shortcut is no longer valid, as it returns a DataSet that does not have
header entries for the columns of ds2 (the empty dataset). That used to work,
but no longer... I'll try to constriuct a dataset that correctly holds header
items for all select items in the joined DataSet.
> MetaModel should fail when accessing a column that is not a select item
> -----------------------------------------------------------------------
>
> Key: METAMODEL-251
> URL: https://issues.apache.org/jira/browse/METAMODEL-251
> Project: Apache MetaModel
> Issue Type: Bug
> Affects Versions: 4.5.2
> Environment: Postgres
> Reporter: Hans Drexler
> Attachments: MetaModel251Sample.java
>
>
> In our software, we create a query with SelectItems for 6 out of the 7
> columns of a postgres data base table. We actually forgot to add the seventh
> column as a SelectItem.
> {code}
> query.select(selectItems)
> .from(someTable)
> {code}
> When consuming the rows returned by this query, the code actually fetches the
> column that was not a select item, using a construct like:
> {code}
> row.getValue(table.getColumnByName('foo'));
> {code}
> This returns null values most of the time. But under stress, the code starts
> to throw exceptions.
> It would be much better if MetaModel throws an exception when the code
> attempts to access a column that is not part of the query (fail fast).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)