[ 
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)

Reply via email to