[ 
https://issues.apache.org/jira/browse/CALCITE-862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14723815#comment-14723815
 ] 

Marc Prud'hommeaux commented on CALCITE-862:
--------------------------------------------

Having SqlTypeName.getNameForJdbcType return ANY if the type isn't found fixes 
this problem so I've made a PR for it:

https://github.com/apache/incubator-calcite/pull/125

> NullPointerException in getColumns with MySQL
> ---------------------------------------------
>
>                 Key: CALCITE-862
>                 URL: https://issues.apache.org/jira/browse/CALCITE-862
>             Project: Calcite
>          Issue Type: Bug
>         Environment: Connected to: MySQL (version 5.5.43-0ubuntu0.14.04.1-log)
> Driver: MySQL-AB JDBC Driver (version mysql-connector-java-5.1.13 ( Revision: 
> ${bzr.revision-id} ))
> MySQL sample database "sakila"
>            Reporter: Marc Prud'hommeaux
>            Assignee: Julian Hyde
>
> {noformat}
> 09:06 ~$ sqlline.calcite.mysql 
> issuing: !connect 
> jdbc:calcite:model=inline:{"version":1.0,"defaultSchema":"mysql","schemas":[{"name":"mysql","type":"jdbc","jdbcUrl":"jdbc:mysql://XXX/sakila","jdbcUser":"XXX","jdbcPassword":"XXX"}]}
>  '' '' org.apache.calcite.jdbc.Driver
> Connecting to 
> jdbc:calcite:model=inline:{"version":1.0,"defaultSchema":"mysql","schemas":[{"name":"mysql","type":"jdbc","jdbcUrl":"jdbc:mysql://XXX/sakila","jdbcUser":"XXX","jdbcPassword":"XXX"}]}
> Connected to: Calcite (version 1.3.0-incubating-SNAPSHOT)
> Driver: Calcite JDBC Driver (version 1.3.0-incubating-SNAPSHOT)
> Autocommit status: true
> Transaction isolation: TRANSACTION_READ_UNCOMMITTED
> sqlline version 1.0.1 by Marc Prud'hommeaux
> 0: jdbc:calcite:model=inline:{"version":1.0,"> !tables
> +------------+--------------+-------------------------+---------------+----------+-----------+-------------+------------+-------------+
> | TABLE_CAT  | TABLE_SCHEM  |       TABLE_NAME        |  TABLE_TYPE   | 
> REMARKS  | TYPE_CAT  | TYPE_SCHEM  | TYPE_NAME  | SELF_REFERE |
> +------------+--------------+-------------------------+---------------+----------+-----------+-------------+------------+-------------+
> |            | metadata     | COLUMNS                 | SYSTEM_TABLE  |       
>    |           |             |            |             |
> |            | metadata     | TABLES                  | SYSTEM_TABLE  |       
>    |           |             |            |             |
> |            | mysql        | actor                   | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | actor_info              | VIEW          |       
>    |           |             |            |             |
> |            | mysql        | address                 | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | category                | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | city                    | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | country                 | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | customer                | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | customer_list           | VIEW          |       
>    |           |             |            |             |
> |            | mysql        | film                    | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | film_actor              | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | film_category           | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | film_list               | VIEW          |       
>    |           |             |            |             |
> |            | mysql        | film_text               | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | inventory               | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | language                | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | payment                 | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | rental                  | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | sales_by_film_category  | VIEW          |       
>    |           |             |            |             |
> |            | mysql        | sales_by_store          | VIEW          |       
>    |           |             |            |             |
> |            | mysql        | staff                   | TABLE         |       
>    |           |             |            |             |
> |            | mysql        | staff_list              | VIEW          |       
>    |           |             |            |             |
> |            | mysql        | store                   | TABLE         |       
>    |           |             |            |             |
> +------------+--------------+-------------------------+---------------+----------+-----------+-------------+------------+-------------+
> 0: jdbc:calcite:model=inline:{"version":1.0,"> !columns country
> +------------+--------------+-------------+--------------+------------+---------------------------------------------------------------+
> | TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  | COLUMN_NAME  | DATA_TYPE  |       
>                                TYPE_NAME                |
> +------------+--------------+-------------+--------------+------------+---------------------------------------------------------------+
> |            | mysql        | country     | country_id   | 5          | 
> SMALLINT NOT NULL                                             |
> |            | mysql        | country     | country      | 12         | 
> VARCHAR(50) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en |
> |            | mysql        | country     | last_update  | 93         | 
> TIMESTAMP(0) NOT NULL                                         |
> +------------+--------------+-------------+--------------+------------+---------------------------------------------------------------+
> 0: jdbc:calcite:model=inline:{"version":1.0,"> !columns film   
> Error: exception while executing query: null (state=,code=0)
> java.sql.SQLException: exception while executing query: null
>       at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>       at 
> org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:432)
>       at 
> org.apache.calcite.avatica.AvaticaConnection.createResultSet(AvaticaConnection.java:485)
>       at 
> org.apache.calcite.avatica.AvaticaDatabaseMetaData.getColumns(AvaticaDatabaseMetaData.java:621)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at sqlline.SqlLine$Reflector.invoke(Unknown Source)
>       at sqlline.SqlLine$Commands.metadata(Unknown Source)
>       at sqlline.SqlLine$Commands.columns(Unknown Source)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at sqlline.SqlLine$ReflectiveCommandHandler.execute(Unknown Source)
>       at sqlline.SqlLine.dispatch(Unknown Source)
>       at sqlline.SqlLine.begin(Unknown Source)
>       at sqlline.SqlLine.mainWithInputRedirection(Unknown Source)
>       at sqlline.SqlLine.main(Unknown Source)
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.calcite.adapter.jdbc.JdbcSchema.sqlType(JdbcSchema.java:291)
>       at 
> org.apache.calcite.adapter.jdbc.JdbcSchema.getRelDataType(JdbcSchema.java:280)
>       at 
> org.apache.calcite.adapter.jdbc.JdbcSchema.getRelDataType(JdbcSchema.java:245)
>       at 
> org.apache.calcite.adapter.jdbc.JdbcTable.getRowType(JdbcTable.java:98)
>       at 
> org.apache.calcite.jdbc.CalciteMetaImpl.columns(CalciteMetaImpl.java:474)
>       at 
> org.apache.calcite.jdbc.CalciteMetaImpl$6.apply(CalciteMetaImpl.java:323)
>       at 
> org.apache.calcite.jdbc.CalciteMetaImpl$6.apply(CalciteMetaImpl.java:321)
>       at 
> org.apache.calcite.linq4j.EnumerableDefaults$8$1.moveNext(EnumerableDefaults.java:1680)
>       at 
> org.apache.calcite.linq4j.EnumerableDefaults$17$1.moveNext(EnumerableDefaults.java:2337)
>       at 
> org.apache.calcite.linq4j.Linq4j$EnumeratorIterator.<init>(Linq4j.java:677)
>       at org.apache.calcite.linq4j.Linq4j.enumeratorIterator(Linq4j.java:103)
>       at 
> org.apache.calcite.linq4j.AbstractEnumerable.iterator(AbstractEnumerable.java:33)
>       at 
> org.apache.calcite.linq4j.Linq4j$IterableEnumerable.iterator(Linq4j.java:551)
>       at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:93)
>       at 
> org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:187)
>       at 
> org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:63)
>       at 
> org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:42)
>       at 
> org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:430)
>       ... 18 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to