kimmking opened a new issue #8099:
URL: https://github.com/apache/shardingsphere/issues/8099


   Hi, there are two db named test0&test1, 
   test0 have some tables: account, person, test0{0-2}
   test1 have some tables: account, test0{0-2}
   
   then we config a logic schema to make test as a logic sharding table test in 
a proxy.
   and then we use mysql command to access proxy, selecting data from test will 
work well, and from account/person will be NPE.
   ```
   mysql> select * from test;
   +--------------------+------+---------------------+
   | id                 | name | created             |
   +--------------------+------+---------------------+
   |                  6 | KK06 | 2020-10-13 15:06:03 |
   |                 12 | KK12 | 2020-10-13 15:06:27 |
   |                120 | KK00 | 2020-10-14 12:18:11 |
   +--------------------+------+---------------------+
   3 rows in set (0.19 sec)
   
   mysql> select * from account;
   ERROR 10002 (C1000): 2Unknown exception: [null]
   mysql> select * from person;
   ERROR 10002 (C1000): 2Unknown exception: [null]
   ```
   
   Configurations:
   ```
   schemaName: testproxy
   
   dataSources:
     test0:
       url: jdbc:mysql://127.0.0.1:3306/test0?serverTimezone=UTC&useSSL=false
       username: root
       password: 
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
     test1:
       url: jdbc:mysql://127.0.0.1:3306/test1?serverTimezone=UTC&useSSL=false
       username: root
       password: 
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
   
   rules:
   - !SHARDING
     tables:
       test:
         actualDataNodes: test${0..1}.test0${0..2}
         tableStrategy:
           standard:
             shardingColumn: id
             shardingAlgorithmName: test_inline
         keyGenerateStrategy:
             column: id
             keyGeneratorName: snowflake
     defaultDatabaseStrategy:
       standard:
         shardingColumn: id
         shardingAlgorithmName: database_inline
     defaultTableStrategy:
       none:
   
     shardingAlgorithms:
       database_inline:
         type: INLINE
         props:
           algorithm-expression: test${id % 2}
       test_inline:
         type: INLINE
         props:
           algorithm-expression: test0${id % 3}
   
     keyGenerators:
         snowflake:
           type: SNOWFLAKE
           props:
               worker-id: 123
   
   ```
   
![image](https://user-images.githubusercontent.com/807508/98536287-8547b100-22c2-11eb-9961-4cbed9620ba5.png)
   
   
   Selecting data from test will work well, and from account/person will be NPE.
   
   ```
   [ERROR] 19:27:07.803 [ShardingSphere-Command-4] 
o.a.s.p.f.c.CommandExecutorTask - Exception occur: 
   java.util.NoSuchElementException: null
        at 
java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:721)
        at 
java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:742)
        at 
org.apache.shardingsphere.sharding.route.engine.type.single.SingleTableRoutingEngine.findDataSourceName(SingleTableRoutingEngine.java:64)
        at 
org.apache.shardingsphere.sharding.route.engine.type.single.SingleTableRoutingEngine.route(SingleTableRoutingEngine.java:52)
        at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:70)
        at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:55)
        at 
org.apache.shardingsphere.infra.route.engine.impl.PartialSQLRouteExecutor.route(PartialSQLRouteExecutor.java:59)
        at 
org.apache.shardingsphere.infra.route.engine.SQLRouteEngine.route(SQLRouteEngine.java:57)
        at 
org.apache.shardingsphere.infra.context.kernel.KernelProcessor.generateExecutionContext(KernelProcessor.java:52)
        at 
org.apache.shardingsphere.proxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine.execute(JDBCDatabaseCommunicationEngine.java:77)
        at 
org.apache.shardingsphere.proxy.backend.text.query.QueryBackendHandler.execute(QueryBackendHandler.java:61)
        at 
org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor.execute(MySQLComQueryPacketExecutor.java:62)
        at 
org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:100)
        at 
org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:76)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   ```
   
![image](https://user-images.githubusercontent.com/807508/98536263-79f48580-22c2-11eb-8eb5-701645fb9f10.png)
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to