[
https://issues.apache.org/jira/browse/CALCITE-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17366139#comment-17366139
]
Vladimir Sitnikov commented on CALCITE-4655:
--------------------------------------------
In practice, `protoRowType` is a `private` field in `JdbcTable` which is never
initialized:
https://github.com/apache/calcite/blob/4e679f03771c89ffa463051b5698ead1d935748b/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcTable.java#L78
I suggest we remove {{JdbcTable#protoRowType}} field to avoid confusion.
> NullPointerException in JdbcTable.scan
> --------------------------------------
>
> Key: CALCITE-4655
> URL: https://issues.apache.org/jira/browse/CALCITE-4655
> Project: Calcite
> Issue Type: Improvement
> Affects Versions: 1.26.0, 1.27.0
> Reporter: Ulrich Kramer
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Calling {{JdbcTable.scan}} will result in a {{NullPointerException}} because
> inside {{JdbcTable.fieldClasses}} {{protoRowType}} is null.
> This could easily be fixed by replacing
> {code:java}
> final RelDataType rowType = requireNonNull(protoRowType,
> "protoRowType").apply(typeFactory);
> {code}
> with
> {code:java}
> final RelDataType rowType = getRowType(typeFactory);
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)