Issue 1:
Hi community,

Now the subproject examples has used the flatten-maven-plugin to reduce duplicate version declarations (since #13512).

It is valuable, otherwise we still have to change a lot of version numbers during release (like this #21625)

Therefore, I am going to use ${revision} to define the version number in the same way for ShardingSphere, to facilitate maintenance.

Issue 2:
Bug Report

For English only, other languages will not accept.

Before report a bug, make sure you have:

Searched open and closed GitHub issues.

Read documentation: ShardingSphere Doc.

Please pay attention on issues you submitted, because we maybe need more details.

If no response more than 7 days 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?

4.0.0-RC2 binary

Which project did you use? Sharding-JDBC or Sharding-Proxy?

Sharding-Proxy

Expected behavior

insert into table return ok

Actual behavior

ERROR 10002 (C1000): 2Unknown exception: [no table route info]

Reason analyze (If you can)

Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.

conf/server.yaml

authentication:
users:
cofree_dev:
password: cofree_dev
props:
sql.show: true

conf/config-mydemo.yaml

schemaName: testdb

dataSources:
ds_Default:
url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&serverTimezone=UTC&useSSL=false
username: cofree_dev
password: cofree_dev
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
ds_0:
url: jdbc:mysql://127.0.0.1:3306/testdb_d0?characterEncoding=utf8&serverTimezone=UTC&useSSL=false
username: cofree_dev
password: cofree_dev
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
ds_1:
url: jdbc:mysql://127.0.0.1:3306/testdb_d1?characterEncoding=utf8&serverTimezone=UTC&useSSL=false
username: cofree_dev
password: cofree_dev
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
ds_2:
url: jdbc:mysql://127.0.0.1:3306/testdb_d2?characterEncoding=utf8&serverTimezone=UTC&useSSL=false
username: cofree_dev
password: cofree_dev
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50

shardingRule:
tables:
common_regions:
actualDataNodes: ds_Default.common_regions
myexample_op_log:
actualDataNodes: ds_${0..2}.myexample_op_log
databaseStrategy:
inline:
shardingColumn: organization_id
algorithmExpression: ds${organization_id % 3}
tableStrategy:
none:
keyGenerator:
type: SNOWFLAKE
column: id
my_demos:
actualDataNodes: ds_${0..2}.my_demos
databaseStrategy:
inline:
shardingColumn: organization_id
algorithmExpression: ds${organization_id % 3}
tableStrategy:
none:
keyGenerator:
type: SNOWFLAKE
column: id
my_demo_items:
actualDataNodes: ds_${0..2}.my_demo_items_${0..2}
databaseStrategy:
inline:
shardingColumn: organization_id
algorithmExpression: ds${organization_id % 3}
tableStrategy:
inline:
shardingColumn: organization_id
algorithmExpression: my_demo_items_${organization_id % 2}
keyGenerator:
type: SNOWFLAKE
column: id
bindingTables:
- common_regions,myexample_op_log,my_demos,my_demo_items
defaultDatabaseStrategy:
none:
# inline:
# shardingColumn: organization_id
# algorithmExpression: ds_${organization_id % 3}
defaultTableStrategy:
none:

sql to create database:

CREATE DATABASE `testdb` DEFAULT CHARACTER SET = `utf8` DEFAULT COLLATE = `utf8_general_ci`;
CREATE DATABASE `testdb_d0` DEFAULT CHARACTER SET = `utf8` DEFAULT COLLATE = `utf8_general_ci`;
CREATE DATABASE `testdb_d1` DEFAULT CHARACTER SET = `utf8` DEFAULT COLLATE = `utf8_general_ci`;
CREATE DATABASE `testdb_d2` DEFAULT CHARACTER SET = `utf8` DEFAULT COLLATE = `utf8_general_ci`;

sql to create tables:

testdb:

use testdb;
DROP TABLE IF EXISTS `common_regions`;
CREATE TABLE `common_regions` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT NULL,
`lft` int(11) DEFAULT NULL,
`rgt` int(11) DEFAULT NULL,
`depth` int(11) DEFAULT NULL,
`scope` int(11) NOT NULL DEFAULT '0',
`code` varchar(255) NOT NULL DEFAULT '' COMMENT '唯一代码标识',
`code_alias` varchar(255) DEFAULT NULL COMMENT '标识别名',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '标题名称',
`name_en` varchar(255) NOT NULL DEFAULT '' COMMENT '标题名称英文',
`description` varchar(255) DEFAULT NULL COMMENT '说明备注',
`created_at` datetime NOT NULL COMMENT '创建时间',
`created_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建者名称',
`created_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建者id',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
`updated_name` varchar(255) NOT NULL DEFAULT '' COMMENT '更新者名称',
`updated_by` int(11) NOT NULL DEFAULT '0' COMMENT '更新者id',
`disabled_at` int(11) NOT NULL DEFAULT '0' COMMENT '禁用时间戳',
`disabled_by` int(11) NOT NULL DEFAULT '0' COMMENT '禁用者id',
`disabled_name` varchar(255) NOT NULL DEFAULT '' COMMENT '禁用者名称',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`parent_id`,`scope`,`code`),
UNIQUE KEY `name` (`parent_id`,`scope`,`name`)
) ENGINE=InnoDB AUTO_INCREMENT=274 DEFAULT CHARSET=utf8;

testdb_d0-testdb_d2:

# ************************************************************
# Sequel Pro SQL dump
# Version 481
#
# https://www.sequelpro.com/
# https://github.com/sequelpro/sequelpro
#
# Host: 127.0.0.1 (MySQL 5.7.26-0ubuntu0.18.04.1-log)
# Database: testdb_d0
# Generation Time: 2019-11-21 12:00:59 +0000
# ************************************************************

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
SET NAMES utf8mb4;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

# Dump of table my_demo_items_0
# ------------------------------------------------------------

DROP TABLE IF EXISTS `my_demo_items_0`;

CREATE TABLE `my_demo_items_0` (
`id` int(11) NOT NULL,
`organization_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属组织id',
`head_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属主条目id',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '条目名称',
`code` varchar(40) NOT NULL DEFAULT '' COMMENT '条目标识',
`price` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '价格',
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '样例详细说明',
`created_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建者ID',
`created_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建者名称',
`created_at` datetime NOT NULL COMMENT '创建时间戳',
`updated_by` int(11) DEFAULT '0' COMMENT '更新者ID',
`updated_name` varchar(255) DEFAULT NULL COMMENT '更新者名称',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间戳',
PRIMARY KEY (`id`),
KEY `organization_id` (`organization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='我的样例条目';

# Dump of table my_demo_items_1
# ------------------------------------------------------------

DROP TABLE IF EXISTS `my_demo_items_1`;

CREATE TABLE `my_demo_items_1` (
`id` int(11) NOT NULL,
`organization_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属组织id',
`head_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属主条目id',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '条目名称',
`code` varchar(40) NOT NULL DEFAULT '' COMMENT '条目标识',
`price` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '价格',
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '样例详细说明',
`created_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建者ID',
`created_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建者名称',
`created_at` datetime NOT NULL COMMENT '创建时间戳',
`updated_by` int(11) DEFAULT '0' COMMENT '更新者ID',
`updated_name` varchar(255) DEFAULT NULL COMMENT '更新者名称',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间戳',
PRIMARY KEY (`id`),
KEY `organization_id` (`organization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='我的样例条目';

# Dump of table my_demo_items_2
# ------------------------------------------------------------

DROP TABLE IF EXISTS `my_demo_items_2`;

CREATE TABLE `my_demo_items_2` (
`id` int(11) NOT NULL,
`organization_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属组织id',
`head_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属主条目id',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '条目名称',
`code` varchar(40) NOT NULL DEFAULT '' COMMENT '条目标识',
`price` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '价格',
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '样例详细说明',
`created_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建者ID',
`created_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建者名称',
`created_at` datetime NOT NULL COMMENT '创建时间戳',
`updated_by` int(11) DEFAULT '0' COMMENT '更新者ID',
`updated_name` varchar(255) DEFAULT NULL COMMENT '更新者名称',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间戳',
PRIMARY KEY (`id`),
KEY `organization_id` (`organization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='我的样例条目';

# Dump of table my_demos
# ------------------------------------------------------------

DROP TABLE IF EXISTS `my_demos`;

CREATE TABLE `my_demos` (
`id` int(11) NOT NULL,
`organization_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属组织id',
`assign_id` int(11) NOT NULL DEFAULT '0' COMMENT '负责人id',
`process_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '处理状态 0初始化/1已提交/2已审核/3已退回/4处理中/5处理失败/6处理成功/7已取消/8已关闭',
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '标题(组织内唯一)',
`code` varchar(40) DEFAULT '' COMMENT 'Code标识(组织内唯一)',
`price` decimal(9,2) NOT NULL DEFAULT '0.00' COMMENT '价格',
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '样例详细说明',
`meta` text NOT NULL COMMENT '附加属性',
`created_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建者ID',
`created_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建者名称',
`created_at` datetime NOT NULL COMMENT '创建时间戳',
`updated_by` int(11) DEFAULT '0' COMMENT '更新者ID',
`updated_name` varchar(255) DEFAULT NULL COMMENT '更新者名称',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间戳',
`disabled_by` int(11) DEFAULT '0' COMMENT '删除者ID',
`disabled_name` varchar(255) DEFAULT NULL COMMENT '删除者名称',
`disabled_at` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间戳',
PRIMARY KEY (`id`),
UNIQUE KEY `title` (`title`,`organization_id`,`disabled_at`),
UNIQUE KEY `code` (`code`,`organization_id`,`disabled_at`),
KEY `organization_id` (`organization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='我的样例';

# Dump of table myexample_op_log
# ------------------------------------------------------------

DROP TABLE IF EXISTS `myexample_op_log`;

CREATE TABLE `myexample_op_log` (
`id` int(11) unsigned NOT NULL,
`system_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属系统ID',
`organization_id` int(11) NOT NULL DEFAULT '0' COMMENT '所属组织ID',
`op_user_id` int(10) NOT NULL DEFAULT '0' COMMENT '操作人员ID',
`op_user_name` varchar(50) NOT NULL COMMENT '操作人员名称',
`op_model` varchar(50) NOT NULL DEFAULT '' COMMENT '操作模块',
`op_action` varchar(50) NOT NULL DEFAULT '' COMMENT '操作类型',
`op_data` varchar(2048) DEFAULT '' COMMENT '操作相关数据',
`op_remark` varchar(255) NOT NULL DEFAULT '' COMMENT '操作说明',
`op_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '操作触发时间戳',
`created_at` datetime NOT NULL COMMENT '创建时间',
`created_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建者id',
`created_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建者名称',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
`updated_by` int(11) NOT NULL DEFAULT '0' COMMENT '更新者id',
`updated_name` varchar(255) NOT NULL DEFAULT '' COMMENT '更新者名称',
PRIMARY KEY (`id`),
KEY `op_model` (`system_id`,`organization_id`,`op_model`) USING BTREE,
KEY `op_user_id` (`op_user_id`) USING BTREE,
KEY `organization_id` (`organization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='库存分配操作日志';

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Example codes for reproduce this issue (such as a github link).

mysql client connect console:

mysql -ucofree_dev -pcofree_dev -h127.0.0.1 -P3307

My SQL try to insert into my_demos table GOT failed:

use testdb;

INSERT INTO `my_demos` (
`organization_id`,
`assign_id`,
`process_status`,
`title`,
`code`,
`price`,
`description`,
`meta`,
`created_by`,
`created_name`,
`created_at`,
`updated_by`,
`updated_name`,
`updated_at`,
`disabled_by`,
`disabled_name`,
`disabled_at`
) VALUES (
1, 123, 4, 'devt1', 'devt1', '0.00', 'devt1', 'devt1meta', 9527, 'aaa', '2019-11-21 19:26:00', 9527, 'aaa', '2019-11-21 19:26:00', 0, 'aaa', 0);

logs/stdout.log

[INFO ] 12:06:46.045 [epollEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0xbd58bd68, L:/0.0.0.0:3307] READ: [id: 0xf0cbf665, L:/127.0.0.1:3307 - R:/127.0.0.1:46694]
[INFO ] 12:06:46.046 [epollEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0xbd58bd68, L:/0.0.0.0:3307] READ COMPLETE
line 1:7 extraneous input 'DATABASE' expecting {'!', '~', '+', '-', '*', '.', '(', '{', '?', '@', TRUNCATE, POSITION, VIEW, DISTINCT, CASE, CAST, TRIM, SUBSTRING, IF, NOT, NULL, TRUE, FALSE, EXISTS, ALL, ANY, OFFSET, BEGIN, COMMIT, ROLLBACK, SAVEPOINT, BOOLEAN, CHAR, INTERVAL, DATE, TIME, TIMESTAMP, LOCALTIME, LOCALTIMESTAMP, YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MICROSECOND, MAX, MIN, SUM, COUNT, AVG, CURRENT, ENABLE, DISABLE, INSTANCE, DO, DEFINER, CASCADED, LOCAL, CLOSE, OPEN, NEXT, NAME, TABLES, TABLESPACE, COLUMNS, FIELDS, INDEXES, STATUS, REPLACE, MODIFY, DISTINCTROW, VALUE, DUPLICATE, FIRST, LAST, AFTER, OJ, ACCOUNT, USER, ROLE, START, TRANSACTION, ROW, WITHOUT, BINARY, ESCAPE, SUBPARTITION, STORAGE, SUPER, SUBSTR, TEMPORARY, THAN, UNBOUNDED, UPGRADE, VALIDATION, ROLLUP, SOUNDS, UNKNOWN, OFF, ALWAYS, COMMITTED, LEVEL, NO, PASSWORD, PRIVILEGES, ACTION, ALGORITHM, AUTOCOMMIT, BTREE, CHAIN, CHARSET, CHECKSUM, CIPHER, CLIENT, COALESCE, COMMENT, COMPACT, COMPRESSED, COMPRESSION, CONNECTION, CONSISTENT, CONVERT, DATA, DISCARD, DISK, ENCRYPTION, END, ENGINE, EVENT, EXCHANGE, EXECUTE, EXTRACT, FILE, FIXED, FOLLOWING, GLOBAL, HASH, IMPORT_, LESS, MATCH, MEMORY, NONE, NOW, PARSER, PARTIAL, PARTITIONING, PERSIST, PRECEDING, PROCESS, PROXY, QUICK, REBUILD, REDUNDANT, RELOAD, REMOVE, REORGANIZE, REPAIR, REVERSE, SESSION, SHUTDOWN, SIMPLE, SLAVE, VISIBLE, INVISIBLE, ENFORCED, AGAINST, LANGUAGE, MODE, QUERY, EXTENDED, EXPANSION, VARIANCE, MAX_ROWS, MIN_ROWS, HIGH_PRIORITY, SQL_BIG_RESULT, SQL_BUFFER_RESULT, SQL_CACHE, SQL_CALC_FOUND_ROWS, SQL_NO_CACHE, SQL_SMALL_RESULT, STATS_AUTO_RECALC, STATS_PERSISTENT, STATS_SAMPLE_PAGES, ROW_FORMAT, STRAIGHT_JOIN, WEIGHT_STRING, COLUMN_FORMAT, INSERT_METHOD, KEY_BLOCK_SIZE, PACK_KEYS, PERSIST_ONLY, BIT_AND, BIT_OR, BIT_XOR, GROUP_CONCAT, JSON_ARRAYAGG, JSON_OBJECTAGG, STD, STDDEV, STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP, AUTO_INCREMENT, AVG_ROW_LENGTH, DELAY_KEY_WRITE, CURRENT_TIMESTAMP, ROTATE, MASTER, BINLOG, ERROR, SCHEDULE, COMPLETION, EVERY, HOST, SOCKET, PORT, SERVER, WRAPPER, OPTIONS, OWNER, RETURNS, CONTAINS, SECURITY, INVOKER, TEMPTABLE, MERGE, UNDEFINED, DATAFILE, FILE_BLOCK_SIZE, EXTENT_SIZE, INITIAL_SIZE, AUTOEXTEND_SIZE, MAX_SIZE, NODEGROUP, WAIT, LOGFILE, UNDOFILE, UNDO_BUFFER_SIZE, REDO_BUFFER_SIZE, HANDLER, PREV, ORGANIZATION, DEFINITION, DESCRIPTION, REFERENCE, FOLLOWS, PRECEDES, IMPORT, CONCURRENT, XML, DUMPFILE, SHARE, IDENTIFIER_, STRING_, NUMBER_, HEX_DIGIT_, BIT_NUM_}
line 1:16 no viable alternative at input '()'
[INFO ] 12:06:51.549 [ShardingSphere-Command-8] ShardingSphere-SQL - Rule Type: sharding
[INFO ] 12:06:51.550 [ShardingSphere-Command-8] ShardingSphere-SQL - Logic SQL: show tables
[INFO ] 12:06:51.550 [ShardingSphere-Command-8] ShardingSphere-SQL - SQLStatement: TransparentOptimizedStatement(tables=Tables(tables=[], schema=Optional.absent()))
[INFO ] 12:06:51.550 [ShardingSphere-Command-8] ShardingSphere-SQL - Actual SQL: ds_Default ::: show tables
[INFO ] 12:06:51.550 [ShardingSphere-Command-8] ShardingSphere-SQL - Actual SQL: ds_2 ::: show tables
[INFO ] 12:06:51.569 [ShardingSphere-Command-9] ShardingSphere-SQL - Rule Type: sharding
[INFO ] 12:06:51.569 [ShardingSphere-Command-9] ShardingSphere-SQL - Logic SQL: SHOW COLUMNS FROM common_regions FROM testdb
[INFO ] 12:06:51.569 [ShardingSphere-Command-9] ShardingSphere-SQL - SQLStatement: TransparentOptimizedStatement(tables=Tables(tables=[Table(name=common_regions, alias=Optional.absent())], schema=Optional.absent()))
[INFO ] 12:06:51.570 [ShardingSphere-Command-9] ShardingSphere-SQL - Actual SQL: ds_Default ::: SHOW COLUMNS FROM common_regions
[INFO ] 12:06:51.579 [ShardingSphere-Command-10] ShardingSphere-SQL - Rule Type: sharding
[INFO ] 12:06:51.580 [ShardingSphere-Command-10] ShardingSphere-SQL - Logic SQL: SHOW COLUMNS FROM my_demo_items FROM testdb
[INFO ] 12:06:51.580 [ShardingSphere-Command-10] ShardingSphere-SQL - SQLStatement: TransparentOptimizedStatement(tables=Tables(tables=[Table(name=my_demo_items, alias=Optional.absent())], schema=Optional.absent()))
[INFO ] 12:06:51.580 [ShardingSphere-Command-10] ShardingSphere-SQL - Actual SQL: ds_0 ::: SHOW COLUMNS FROM my_demo_items_0
[INFO ] 12:06:51.590 [ShardingSphere-Command-11] ShardingSphere-SQL - Rule Type: sharding
[INFO ] 12:06:51.590 [ShardingSphere-Command-11] ShardingSphere-SQL - Logic SQL: SHOW COLUMNS FROM my_demos FROM testdb
[INFO ] 12:06:51.590 [ShardingSphere-Command-11] ShardingSphere-SQL - SQLStatement: TransparentOptimizedStatement(tables=Tables(tables=[Table(name=my_demos, alias=Optional.absent())], schema=Optional.absent()))
[INFO ] 12:06:51.590 [ShardingSphere-Command-11] ShardingSphere-SQL - Actual SQL: ds_0 ::: SHOW COLUMNS FROM my_demos
[INFO ] 12:06:51.599 [ShardingSphere-Command-12] ShardingSphere-SQL - Rule Type: sharding
[INFO ] 12:06:51.599 [ShardingSphere-Command-12] ShardingSphere-SQL - Logic SQL: SHOW COLUMNS FROM myexample_op_log FROM testdb
[INFO ] 12:06:51.600 [ShardingSphere-Command-12] ShardingSphere-SQL - SQLStatement: TransparentOptimizedStatement(tables=Tables(tables=[Table(name=myexample_op_log, alias=Optional.absent())], schema=Optional.absent()))
[INFO ] 12:06:51.600 [ShardingSphere-Command-12] ShardingSphere-SQL - Actual SQL: ds_0 ::: SHOW COLUMNS FROM myexample_op_log
[ERROR] 12:07:13.902 [ShardingSphere-Command-13] o.a.s.s.f.c.CommandExecutorTask - Exception occur:
java.lang.IllegalStateException: no table route info
at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
at org.apache.shardingsphere.core.route.type.standard.StandardRoutingEngine.routeTables(StandardRoutingEngine.java:209)
at org.apache.shardingsphere.core.route.type.standard.StandardRoutingEngine.route(StandardRoutingEngine.java:190)
at org.apache.shardingsphere.core.route.type.standard.StandardRoutingEngine.routeByShardingConditionsWithCondition(StandardRoutingEngine.java:117)
at org.apache.shardingsphere.core.route.type.standard.StandardRoutingEngine.routeByShardingConditions(StandardRoutingEngine.java:111)
at org.apache.shardingsphere.core.route.type.standard.StandardRoutingEngine.getDataNodes(StandardRoutingEngine.java:96)
at org.apache.shardingsphere.core.route.type.standard.StandardRoutingEngine.route(StandardRoutingEngine.java:74)
at org.apache.shardingsphere.core.route.router.sharding.ParsingSQLRouter.route(ParsingSQLRouter.java:78)
at org.apache.shardingsphere.core.route.StatementRoutingEngine.route(StatementRoutingEngine.java:56)
at org.apache.shardingsphere.core.SimpleQueryShardingEngine.route(SimpleQueryShardingEngine.java:60)
at org.apache.shardingsphere.core.BaseShardingEngine.executeRoute(BaseShardingEngine.java:86)
at org.apache.shardingsphere.core.BaseShardingEngine.shard(BaseShardingEngine.java:70)
at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.wrapper.StatementExecutorWrapper.doShardingRoute(StatementExecutorWrapper.java:75)
at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.wrapper.StatementExecutorWrapper.route(StatementExecutorWrapper.java:61)
at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine.execute(JDBCDatabaseCommunicationEngine.java:80)
at org.apache.shardingsphere.shardingproxy.backend.text.query.QueryBackendHandler.execute(QueryBackendHandler.java:54)
at org.apache.shardingsphere.shardingproxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor.execute(MySQLComQueryPacketExecutor.java:72)
at org.apache.shardingsphere.shardingproxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:86)
at org.apache.shardingsphere.shardingproxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:66)
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)