irwinai opened a new issue, #23025:
URL: https://github.com/apache/shardingsphere/issues/23025
## Bug Report
### Which version of ShardingSphere did you use?
5.1.1
### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
ShardingSphere-JDBC
### Expected behavior
query success
### Actual behavior
NPE exception
```java
Caused by: java.lang.NullPointerException
at
org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByValue.getOrderValuesCaseSensitiveFromTables(OrderByValue.java:73)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByValue.getOrderValuesCaseSensitive(OrderByValue.java:64)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByValue.<init>(OrderByValue.java:58)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByStreamMergedResult.orderResultSetsToQueue(OrderByStreamMergedResult.java:56)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByStreamMergedResult.<init>(OrderByStreamMergedResult.java:50)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger.build(ShardingDQLResultMerger.java:89)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger.merge(ShardingDQLResultMerger.java:63)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.infra.merge.MergeEngine.executeMerge(MergeEngine.java:90)
~[shardingsphere-infra-merge-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.infra.merge.MergeEngine.merge(MergeEngine.java:80)
~[shardingsphere-infra-merge-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.mergeQuery(ShardingSpherePreparedStatement.java:487)
~[shardingsphere-jdbc-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.getResultSet(ShardingSpherePreparedStatement.java:435)
~[shardingsphere-jdbc-core-5.1.1.jar:5.1.1]
at
org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getFirstResultSet(DefaultResultSetHandler.java:237)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:187)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
~[mybatis-3.5.3.jar:3.5.3]
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
~[mybatis-3.5.3.jar:3.5.3]
at jdk.internal.reflect.GeneratedMethodAccessor346.invoke(Unknown
Source) ~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
~[mybatis-3.5.3.jar:3.5.3]
at com.sun.proxy.$Proxy410.query(Unknown Source) ~[?:?]
at
com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:108)
~[pagehelper-5.1.11.jar:?]
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
~[mybatis-3.5.3.jar:3.5.3]
at com.sun.proxy.$Proxy410.query(Unknown Source) ~[?:?]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
~[mybatis-3.5.3.jar:3.5.3]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:?]
at
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
~[mybatis-spring-2.0.6.jar:2.0.6]
... 95 more
```
### Reason analyze (If you can)
schemaName is converted to lower case when metadata is read
<img width="772" alt="image"
src="https://user-images.githubusercontent.com/4981449/209066630-183d3d38-4925-48bc-9b0f-b9107ab4e95d.png">
and then when merge query ,`getDefaultSchema` will be get null schema
just like "orderSchema".get("orderschema")
<img width="917" alt="image"
src="https://user-images.githubusercontent.com/4981449/209066843-482b824d-d3f6-4ca5-969b-a8ddbf74ec50.png">
so,my question is why the schema name is to `toLowerCase` ?
The solution is that schemaName cannot be capitalized
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail:
[email protected]
For queries about this service, please contact Infrastructure at:
[email protected]