tuohai666 opened a new issue #9128: URL: https://github.com/apache/shardingsphere/issues/9128
## Bug Report **For English only**, other languages will not accept. Before report a bug, make sure you have: - Searched open and closed [GitHub issues](https://github.com/apache/shardingsphere/issues). - Read documentation: [ShardingSphere Doc](https://shardingsphere.apache.org/document/current/en/overview). Please pay attention on issues you submitted, because we maybe need more details. If no response anymore and we cannot reproduce it on current information, we will **close it**. Please answer these questions before submitting your issue. Thanks! ### Which version of ShardingSphere did you use? 5.0.0-RC1-SNAPSHOT ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy? ShardingSphere-Proxy ### Expected behavior Execute SQL correct: ``` INSERT INTO sbtest1 (id, k, c, pad) VALUES (0, 3139517, '03479125669-32040819443-03355165255-52111481902-13729595466-88950331955-59604667413-31466738652-78577439514-66595601179', '43031111567-72991856629-50303107332-49542224783-40645061293'); ``` ### Actual behavior MySQL cli: ``` mysql> INSERT INTO sbtest1 (id, k, c, pad) VALUES (0, 3139517, '03479125669-32040819443-03355165255-52111481902-13729595466-88950331955-59604667413-31466738652-78577439514-66595601179', '43031111567-72991856629-50303107332-49542224783-40645061293'); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.shardingsphere.sharding.rewrite.token.pojo.TableToken@10befc44 (id, k, c, pad) ' at line 1 ``` ShardingSphere's log: ``` [INFO ] 2021-01-22 16:17:12.491 [ShardingSphere-Command-5] ShardingSphere-SQL - Logic SQL: INSERT INTO sbtest1 (id, k, c, pad) VALUES (0, 3139517, '03479125669-32040819443-03355165255-52111481902-13729595466-88950331955-59604667413-31466738652-78577439514-66595601179', '43031111567-72991856629-50303107332-49542224783-40645061293') [INFO ] 2021-01-22 16:17:12.491 [ShardingSphere-Command-5] ShardingSphere-SQL - SQLStatement: MySQLInsertStatement(setAssignment=Optional.empty, onDuplicateKeyColumns=Optional.empty) [INFO ] 2021-01-22 16:17:12.491 [ShardingSphere-Command-5] ShardingSphere-SQL - Actual SQL: ds_0 ::: INSERT INTO org.apache.shardingsphere.sharding.rewrite.token.pojo.TableToken@10befc44 (id, k, c, pad) VALUES org.apache.shardingsphere.sharding.rewrite.token.pojo.ShardingInsertValuesToken@a404766 [ERROR] 2021-01-22 16:17:12.509 [ShardingSphere-Command-5] o.a.s.p.f.c.CommandExecutorTask - Exception occur: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.shardingsphere.sharding.rewrite.token.pojo.TableToken@10befc44 (id, k, c, pad) ' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2491) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2449) at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:845) at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:939) at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:106) at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.impl.ProxyStatementExecutorCallback.execute(ProxyStatementExecutorCallback.java:40) at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.ProxyJDBCExecutorCallback.executeSQL(ProxyJDBCExecutorCallback.java:72) at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.ProxyJDBCExecutorCallback.executeSQL(ProxyJDBCExecutorCallback.java:65) at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.ProxyJDBCExecutorCallback.executeSQL(ProxyJDBCExecutorCallback.java:43) at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback.execute(JDBCExecutorCallback.java:82) at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback.execute(JDBCExecutorCallback.java:61) at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.syncExecute(ExecutorEngine.java:99) at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.parallelExecute(ExecutorEngine.java:95) at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.execute(ExecutorEngine.java:80) at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor.execute(JDBCExecutor.java:66) at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.ProxyJDBCExecutor.execute(ProxyJDBCExecutor.java:61) at org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.useDriverToExecute(ProxySQLExecutor.java:150) at org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.execute(ProxySQLExecutor.java:120) at org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.execute(ProxySQLExecutor.java:109) at org.apache.shardingsphere.proxy.backend.communication.DatabaseCommunicationEngine.execute(DatabaseCommunicationEngine.java:117) at org.apache.shardingsphere.proxy.backend.communication.DatabaseCommunicationEngine.execute(DatabaseCommunicationEngine.java:105) at org.apache.shardingsphere.proxy.backend.text.data.impl.SchemaAssignedDatabaseBackendHandler.execute(SchemaAssignedDatabaseBackendHandler.java:55) at org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor.execute(MySQLComQueryPacketExecutor.java:57) at org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:93) at org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:71) 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) ``` ### Reason analyze (If you can) Object name is rewritten into actual SQL ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc. config-sharding.yaml ``` schemaName: sharding_db dataSources: ds_0: url: jdbc:mysql://127.0.0.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false username: root password: connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 100 minPoolSize: 100 maintenanceIntervalMilliseconds: 30000 ds_1: url: jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false username: root password: connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 100 minPoolSize: 100 maintenanceIntervalMilliseconds: 30000 rules: - !SHARDING tables: sbtest1: actualDataNodes: ds_${0..1}.sbtest1_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_1 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest2: actualDataNodes: ds_${0..1}.sbtest2_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_2 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest3: actualDataNodes: ds_${0..1}.sbtest3_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_3 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest4: actualDataNodes: ds_${0..1}.sbtest4_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_4 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest5: actualDataNodes: ds_${0..1}.sbtest5_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_5 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest6: actualDataNodes: ds_${0..1}.sbtest6_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_6 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest7: actualDataNodes: ds_${0..1}.sbtest7_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_7 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest8: actualDataNodes: ds_${0..1}.sbtest8_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_8 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest9: actualDataNodes: ds_${0..1}.sbtest9_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_9 keyGenerateStrategy: column: id keyGeneratorName: snowflake sbtest10: actualDataNodes: ds_${0..1}.sbtest10_${1..50} tableStrategy: standard: shardingColumn: id shardingAlgorithmName: table_inline_10 keyGenerateStrategy: column: id keyGeneratorName: snowflake defaultDatabaseStrategy: standard: shardingColumn: id shardingAlgorithmName: database_inline shardingAlgorithms: database_inline: type: INLINE props: algorithm-expression: ds_${id % 2} table_inline_1: type: INLINE props: algorithm-expression: sbtest1_${id % 51} table_inline_2: type: INLINE props: algorithm-expression: sbtest2_${id % 51} table_inline_3: type: INLINE props: algorithm-expression: sbtest3_${id % 51} table_inline_4: type: INLINE props: algorithm-expression: sbtest4_${id % 51} table_inline_5: type: INLINE props: algorithm-expression: sbtest5_${id % 51} table_inline_6: type: INLINE props: algorithm-expression: sbtest6_${id % 51} table_inline_7: type: INLINE props: algorithm-expression: sbtest7_${id % 51} table_inline_8: type: INLINE props: algorithm-expression: sbtest8_${id % 51} table_inline_9: type: INLINE props: algorithm-expression: sbtest9_${id % 51} table_inline_10: type: INLINE props: algorithm-expression: sbtest10_${id % 51} keyGenerators: snowflake: type: SNOWFLAKE props: worker-id: 123 ``` server.yaml ``` authentication: users: root: password: root sharding: password: sharding authorizedSchemas: sharding_db props: max-connections-size-per-query: 1 acceptor-size: 16 # The default value is available processors count * 2. executor-size: 16 # Infinite by default. proxy-frontend-flush-threshold: 128 # The default value is 128. # LOCAL: Proxy will run with LOCAL transaction. # XA: Proxy will run with XA transaction. # BASE: Proxy will run with B.A.S.E transaction. proxy-transaction-type: LOCAL xa-transaction-manager-type: Atomikos proxy-opentracing-enabled: false proxy-hint-enabled: false query-with-cipher-column: true sql-show: true check-table-metadata-enabled: false lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock ``` ### Example codes for reproduce this issue (such as a github link). ---------------------------------------------------------------- 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]
