<h3 dir="auto">Which version of ShardingSphere did you use?</h3>
<p dir="auto">we find java version: java8, full_version=1.8.0_342, full_path=/home/peilq_sharding/bisheng-jdk1.8.0_342//bin/java<br>
ShardingSphere-5.2.2-SNAPSHOT<br>
Commit ID: dirty-753c0cee8ee6fd3db00536da55b64bc5198a3758<br>
Commit Message: Optimize sqlFederationExecutor init logic when sqlFederationType modify dynamically (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1451253225" data-permission-text="Title is private" data-url="https://github.com/apache/shardingsphere/issues/22209" data-hovercard-type="pull_request" data-hovercard-url="/apache/shardingsphere/pull/22209/hovercard" href="https://github.com/apache/shardingsphere/pull/22209">#22209</a>)<br>
Branch: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/apache/shardingsphere/commit/753c0cee8ee6fd3db00536da55b64bc5198a3758/hovercard" href="https://github.com/apache/shardingsphere/commit/753c0cee8ee6fd3db00536da55b64bc5198a3758"><tt>753c0ce</tt></a><br>
Build time: 2022-11-19T10:18:41+0800</p>
<h3 dir="auto">Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?</h3>
<p dir="auto">ShardingSphere-Proxy</p>
<h3 dir="auto">Expected behavior</h3>
<p dir="auto">In the federation scenario, the view information in zookeeper exists duplicate name even the view has already dropped.</p>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto">In the federation scenario, the view information in zookeeper exists duplicate name even the view has already dropped.</p>
<h3 dir="auto">Reason analyze (If you can)</h3>
<h3 dir="auto">Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.</h3>
<p dir="auto"><strong><code class="notranslate">gsql -d test_db -p 11000 -r -h 7.212.123.28 -U sharding -W sharding -r -a &lt;17.sql &gt;17.ss 2&gt;&amp;1 </code></strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="-- step1.1：相同表 union 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2900 union select * from t_order where order_id &gt; 2500 order by order_id ;
-- 查询视图
select * from select_view limit 3, 5;
-- 删除视图
drop view select_view;
-- step1.2：相同表 union all测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2900 union all select * from t_order where order_id &gt; 2500 order by order_id ;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.3：相同表 union distinct 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2900 union distinct select * from t_order where order_id &gt; 2500 order by order_id ;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.4：相同表 （）union 测试；expect：查询结果正确
create view select_view as (select * from t_order where order_id &gt; 2900 ) union (select * from t_order where order_id &gt; 2500 order by order_id ) order by 1,2;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.5：多个分片表 union 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 union select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2500 order by order_id limit 5, 5;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.6：分片表、单表 union all 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 union all select u.user_id from t_user u order by user_id limit 5, 5;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step2.1：相同表 intersect all 测试；expect：查询结果正确
create view select_view as select * from t_order intersect all select * from t_order order by order_id limit 5, 5;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.2：相同表 intersect 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2000 intersect select * from t_order where order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.3：多个分片表 intersect all 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 intersect all select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2400 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.4：多个分片表 intersect 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 intersect select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2400 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.5：多个分片表 多个intersect 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 intersect select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2400 intersect select i.order_id, i.user_id from t_order_item i where i.order_id &lt; 2700 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.6：分片表、单表 intersect 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 intersect select u.user_id from t_user u order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step3.1：相同表 except all 测试；expect：查询结果正确
create view select_view as select * from t_order except all select * from t_order where order_id &gt; 1500  order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.2：相同表 except 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 1500 except select * from t_order where order_id &gt; 2000 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.3：多个分片表 except all 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 except all select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2000 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.4：多个分片表 except 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2600 except select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.5：分片表、单表 except all 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 except all select u.user_id from t_user u order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.5：分片表、单表 except 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 1500 except select u.user_id from t_user u where user_id &gt;5 order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step4.1：相同表 minus all 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 1500 minus all select * from t_order  where order_id &gt; 1600 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.2：相同表 minus 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2000 minus select * from t_order where order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.3：多个分片表 minus all 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 1500 minus all select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.4：多个分片表 minus 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 1500 minus select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.5：分片表、单表 minus all 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 minus all select u.user_id from t_user u where u.user_id &lt;29 order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.6：分片表、单表 minus 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 minus select u.user_id from t_user u where u.user_id &lt;29  order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.6：分片表、单表 minus distinct 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 minus distinct select u.user_id from t_user u where u.user_id &lt;29 order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step5.1：相同表 UNION/INTERSECT/EXCEPT/MINUS组合优先级测试验证；expect：查询结果正确
create view select_view as (select * from t_order where order_id = 1500 union select * from t_order  where order_id = 1800 )INTERSECT select * from t_order  where status ='finish' order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
create view select_view as select * from t_order where order_id = 1500 union (select * from t_order  where order_id = 1800 INTERSECT select * from t_order  where status ='finish' order by order_id);
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
create view select_view as select * from t_order where order_id = 1500 union select * from t_order  where order_id = 1800 INTERSECT select * from t_order  where status ='finish' order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;"><pre class="notranslate"><code class="notranslate">-- step1.1：相同表 union 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2900 union select * from t_order where order_id &gt; 2500 order by order_id ;
-- 查询视图
select * from select_view limit 3, 5;
-- 删除视图
drop view select_view;
-- step1.2：相同表 union all测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2900 union all select * from t_order where order_id &gt; 2500 order by order_id ;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.3：相同表 union distinct 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2900 union distinct select * from t_order where order_id &gt; 2500 order by order_id ;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.4：相同表 （）union 测试；expect：查询结果正确
create view select_view as (select * from t_order where order_id &gt; 2900 ) union (select * from t_order where order_id &gt; 2500 order by order_id ) order by 1,2;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.5：多个分片表 union 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 union select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2500 order by order_id limit 5, 5;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step1.6：分片表、单表 union all 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 union all select u.user_id from t_user u order by user_id limit 5, 5;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step2.1：相同表 intersect all 测试；expect：查询结果正确
create view select_view as select * from t_order intersect all select * from t_order order by order_id limit 5, 5;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.2：相同表 intersect 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2000 intersect select * from t_order where order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.3：多个分片表 intersect all 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 intersect all select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2400 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.4：多个分片表 intersect 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 intersect select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2400 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.5：多个分片表 多个intersect 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 intersect select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2400 intersect select i.order_id, i.user_id from t_order_item i where i.order_id &lt; 2700 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step2.6：分片表、单表 intersect 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 intersect select u.user_id from t_user u order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step3.1：相同表 except all 测试；expect：查询结果正确
create view select_view as select * from t_order except all select * from t_order where order_id &gt; 1500  order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.2：相同表 except 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 1500 except select * from t_order where order_id &gt; 2000 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.3：多个分片表 except all 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2500 except all select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2000 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.4：多个分片表 except 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 2600 except select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 2500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.5：分片表、单表 except all 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 except all select u.user_id from t_user u order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step3.5：分片表、单表 except 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 1500 except select u.user_id from t_user u where user_id &gt;5 order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step4.1：相同表 minus all 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 1500 minus all select * from t_order  where order_id &gt; 1600 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.2：相同表 minus 测试；expect：查询结果正确
create view select_view as select * from t_order where order_id &gt; 2000 minus select * from t_order where order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.3：多个分片表 minus all 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 1500 minus all select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.4：多个分片表 minus 测试；expect：查询结果正确
create view select_view as select o.order_id, o.user_id from t_order o where o.order_id &gt; 1500 minus select i.order_id, i.user_id from t_order_item i where i.order_id &gt; 1500 order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.5：分片表、单表 minus all 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 minus all select u.user_id from t_user u where u.user_id &lt;29 order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.6：分片表、单表 minus 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 minus select u.user_id from t_user u where u.user_id &lt;29  order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
-- step4.6：分片表、单表 minus distinct 测试；expect：查询结果正确
create view select_view as select o.user_id from t_order o where o.order_id &gt; 2500 minus distinct select u.user_id from t_user u where u.user_id &lt;29 order by user_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;

-- step5.1：相同表 UNION/INTERSECT/EXCEPT/MINUS组合优先级测试验证；expect：查询结果正确
create view select_view as (select * from t_order where order_id = 1500 union select * from t_order  where order_id = 1800 )INTERSECT select * from t_order  where status ='finish' order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
create view select_view as select * from t_order where order_id = 1500 union (select * from t_order  where order_id = 1800 INTERSECT select * from t_order  where status ='finish' order by order_id);
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
create view select_view as select * from t_order where order_id = 1500 union select * from t_order  where order_id = 1800 INTERSECT select * from t_order  where status ='finish' order by order_id;
-- 查询视图
select * from select_view;
-- 删除视图
drop view select_view;
</code></pre></div>
<h3 dir="auto">Example codes for reproduce this issue (such as a github link).</h3>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="drop table if exists t_order; 
create table t_order (order_id int primary key, user_id int not null, status varchar(50) not null, merchant_id int not null, remark varchar(50), creation_date date);
insert into t_order values(1000, 10, 'init', 1, 'test', '2017-07-08');
insert into t_order values(1001, 10, 'init', 2, 'test', '2017-07-08');
insert into t_order values(2000, 20, 'init', 3, 'test', '2017-08-08');
insert into t_order values(2001, 20, 'init', 4, 'test', '2017-08-08');
insert into t_order values(1100, 11,  'init', 5, 'test', '2017-08-08');
insert into t_order values(1101, 11, 'init', 6, 'test', '2017-08-08');
insert into t_order values(2100, 21, 'finish', 7, 'test', '2017-08-08');
insert into t_order values(2101, 21, 'finish', 8, 'test', '2017-08-08');
insert into t_order values(1200, 12, 'finish', 9, 'finish', '2017-08-08');
insert into t_order values(1201, 12, 'finish', 10, 'test22', '2017-08-18');
insert into t_order values(2200, 22, 'finish', 11, 'test', '2017-08-18');
insert into t_order values(2201, 22, 'finish', 12, 'test', '2017-08-18');
insert into t_order values(1300, 13, 'finish', 13, '', '2017-08-18');
insert into t_order values(1301, 13, 'finish', 14, 'test', '2017-08-18');
insert into t_order values(2300, 23, 'finish ', 15, 'test', '2017-08-18');
insert into t_order values(2301, 23, 'finish', 16, 'test', '2017-08-18');
insert into t_order values(1400, 14, 'init', 17, '', '2017-08-18');
insert into t_order values(1401, 14, 'init', 18, 'test', '2017-08-18');
insert into t_order values(2400, 24, 'init', 19, 'test', '2017-08-18');
insert into t_order values(2401, 24, 'init', 20, 'test', '2017-08-18');
insert into t_order values(1500, 15, 'init', 1, '', '2017-08-28');
insert into t_order values(1501, 15, 'init', 2, 'test', '2017-08-28');
insert into t_order values(2500, 25, 'init', 3, 'test', '2017-08-28');
insert into t_order values(2501, 25, 'init', 4, 'test', '2017-08-28');
insert into t_order values(1600, 16, 'init', 5, 'test', '2017-08-28');
insert into t_order values(1601, 16, 'init', 6, '', '2017-08-28');
insert into t_order values(2600, 26, 'init', 7, 'test', '2017-08-28');
insert into t_order values(2601, 26, 'init', 8);
insert into t_order values(1700, 17, 'init', 9, 'test', '2017-08-28');
insert into t_order values(1701, 17, 'finish', 10, 'test', '2017-08-18');
insert into t_order values(2700, 27, 'finish', 11, 'test', '2017-08-18');
insert into t_order values(2701, 27, 'finish', 12, 'test', '2017-08-18');
insert into t_order values(1800, 18, 'finish', 13, 'test', '2017-08-18');
insert into t_order values(1801, 18, 'finish', 14);
insert into t_order values(2800, 28, 'finish', 15, 'test', '2017-08-18');
insert into t_order values(2801, 28, 'finish', 16, 'test', '2017-08-18');
insert into t_order values(1900, 19, 'init', 17, 'test', '2017-08-18');
insert into t_order values(1901, 19, 'init', 18, 'test', '2017-08-18');
insert into t_order values(2900, 29, 'init', 19, 'test', '2017-08-18');
insert into t_order values(2901, 29, 'init', 20, 'test', '2017-08-18');
insert into t_order values(1902, 19, 'init', 17, 'test11', '2017-08-18');
insert into t_order values(1903, 19, 'init', 18, 'test12', '2017-08-18');
insert into t_order values(2902, 29, 'init', 19, 'test', '2017-08-18');
insert into t_order values(2903, 29, 'init', 20, 'test', '2017-08-18');"><pre class="notranslate"><code class="notranslate">drop table if exists t_order; 
create table t_order (order_id int primary key, user_id int not null, status varchar(50) not null, merchant_id int not null, remark varchar(50), creation_date date);
insert into t_order values(1000, 10, 'init', 1, 'test', '2017-07-08');
insert into t_order values(1001, 10, 'init', 2, 'test', '2017-07-08');
insert into t_order values(2000, 20, 'init', 3, 'test', '2017-08-08');
insert into t_order values(2001, 20, 'init', 4, 'test', '2017-08-08');
insert into t_order values(1100, 11,  'init', 5, 'test', '2017-08-08');
insert into t_order values(1101, 11, 'init', 6, 'test', '2017-08-08');
insert into t_order values(2100, 21, 'finish', 7, 'test', '2017-08-08');
insert into t_order values(2101, 21, 'finish', 8, 'test', '2017-08-08');
insert into t_order values(1200, 12, 'finish', 9, 'finish', '2017-08-08');
insert into t_order values(1201, 12, 'finish', 10, 'test22', '2017-08-18');
insert into t_order values(2200, 22, 'finish', 11, 'test', '2017-08-18');
insert into t_order values(2201, 22, 'finish', 12, 'test', '2017-08-18');
insert into t_order values(1300, 13, 'finish', 13, '', '2017-08-18');
insert into t_order values(1301, 13, 'finish', 14, 'test', '2017-08-18');
insert into t_order values(2300, 23, 'finish ', 15, 'test', '2017-08-18');
insert into t_order values(2301, 23, 'finish', 16, 'test', '2017-08-18');
insert into t_order values(1400, 14, 'init', 17, '', '2017-08-18');
insert into t_order values(1401, 14, 'init', 18, 'test', '2017-08-18');
insert into t_order values(2400, 24, 'init', 19, 'test', '2017-08-18');
insert into t_order values(2401, 24, 'init', 20, 'test', '2017-08-18');
insert into t_order values(1500, 15, 'init', 1, '', '2017-08-28');
insert into t_order values(1501, 15, 'init', 2, 'test', '2017-08-28');
insert into t_order values(2500, 25, 'init', 3, 'test', '2017-08-28');
insert into t_order values(2501, 25, 'init', 4, 'test', '2017-08-28');
insert into t_order values(1600, 16, 'init', 5, 'test', '2017-08-28');
insert into t_order values(1601, 16, 'init', 6, '', '2017-08-28');
insert into t_order values(2600, 26, 'init', 7, 'test', '2017-08-28');
insert into t_order values(2601, 26, 'init', 8);
insert into t_order values(1700, 17, 'init', 9, 'test', '2017-08-28');
insert into t_order values(1701, 17, 'finish', 10, 'test', '2017-08-18');
insert into t_order values(2700, 27, 'finish', 11, 'test', '2017-08-18');
insert into t_order values(2701, 27, 'finish', 12, 'test', '2017-08-18');
insert into t_order values(1800, 18, 'finish', 13, 'test', '2017-08-18');
insert into t_order values(1801, 18, 'finish', 14);
insert into t_order values(2800, 28, 'finish', 15, 'test', '2017-08-18');
insert into t_order values(2801, 28, 'finish', 16, 'test', '2017-08-18');
insert into t_order values(1900, 19, 'init', 17, 'test', '2017-08-18');
insert into t_order values(1901, 19, 'init', 18, 'test', '2017-08-18');
insert into t_order values(2900, 29, 'init', 19, 'test', '2017-08-18');
insert into t_order values(2901, 29, 'init', 20, 'test', '2017-08-18');
insert into t_order values(1902, 19, 'init', 17, 'test11', '2017-08-18');
insert into t_order values(1903, 19, 'init', 18, 'test12', '2017-08-18');
insert into t_order values(2902, 29, 'init', 19, 'test', '2017-08-18');
insert into t_order values(2903, 29, 'init', 20, 'test', '2017-08-18');
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="schemaName: test_db
dataSources:
  ds_0:
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 260
    minPoolSize: 10
    password: Test@123
    url: jdbc:opengauss://90.90.44.171:14000/test_db?batchMode=on
    username: tpccuser
  ds_1:
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 260
    minPoolSize: 10
    password: Test@123
    url: jdbc:opengauss://90.90.44.171:15000/test_db?batchMode=on
    username: tpccuser
rules:
- !SHARDING
  tables:
    t_user:
      actualDataNodes: ds_0.t_user
    t_product:
      actualDataNodes: ds_0.t_product
    t_merchant:
      actualDataNodes: ds_1.t_merchant
    t_product_detail:
      actualDataNodes: ds_1.t_product_detail
    t_order:
      actualDataNodes: ds_${0..1}.t_order
      databaseStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: database_inline
    t_order_item:
      actualDataNodes: ds_${0..1}.t_order_item
      databaseStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: database_inline
    t_order_item1:
      actualDataNodes: ds_${0..1}.t_order_item1
      databaseStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: database_inline
    t_new_order:
      actualDataNodes: ds_${0..1}.t_new_order_${0..1}
      databaseStrategy:
        standard:
          shardingAlgorithmName: database_inline
          shardingColumn: user_id
      tableStrategy:
        standard:
          shardingColumn: order_id
          shardingAlgorithmName: table_inline
  bindingTables:
    - t_order,t_order_item
  broadcastTables:
    - t_product_category
    - t_country
  shardingAlgorithms:
    database_inline:
      type: INLINE
      props:
        algorithm-expression: ds_${user_id % 2}
        allow-range-query-with-inline-sharding: true
    table_inline:
      type: INLINE
      props:
        algorithm-expression: t_new_order_${order_id % 2}
        allow-range-query-with-inline-sharding: true
mode:
  type: Cluster
  repository:
    type: ZooKeeper
    props:
      namespace: governance_ds
      server-lists: 7.212.123.28:2181
      retryIntervalMilliseconds: 500
      timeToLiveSeconds: 60
      maxRetries: 3
      operationTimeoutMilliseconds: 500
authority:
  users:
    - user: root@%
      password: root
    - user: sharding
      password: sharding
  privilege:
    type: ALL_PERMITTED
rules:
- !TRANSACTION
  defaultType: XA
  providerType: Atomikos
props:
  sql-show: true"><pre class="notranslate"><code class="notranslate">schemaName: test_db
dataSources:
  ds_0:
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 260
    minPoolSize: 10
    password: Test@123
    url: jdbc:opengauss://90.90.44.171:14000/test_db?batchMode=on
    username: tpccuser
  ds_1:
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 260
    minPoolSize: 10
    password: Test@123
    url: jdbc:opengauss://90.90.44.171:15000/test_db?batchMode=on
    username: tpccuser
rules:
- !SHARDING
  tables:
    t_user:
      actualDataNodes: ds_0.t_user
    t_product:
      actualDataNodes: ds_0.t_product
    t_merchant:
      actualDataNodes: ds_1.t_merchant
    t_product_detail:
      actualDataNodes: ds_1.t_product_detail
    t_order:
      actualDataNodes: ds_${0..1}.t_order
      databaseStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: database_inline
    t_order_item:
      actualDataNodes: ds_${0..1}.t_order_item
      databaseStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: database_inline
    t_order_item1:
      actualDataNodes: ds_${0..1}.t_order_item1
      databaseStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: database_inline
    t_new_order:
      actualDataNodes: ds_${0..1}.t_new_order_${0..1}
      databaseStrategy:
        standard:
          shardingAlgorithmName: database_inline
          shardingColumn: user_id
      tableStrategy:
        standard:
          shardingColumn: order_id
          shardingAlgorithmName: table_inline
  bindingTables:
    - t_order,t_order_item
  broadcastTables:
    - t_product_category
    - t_country
  shardingAlgorithms:
    database_inline:
      type: INLINE
      props:
        algorithm-expression: ds_${user_id % 2}
        allow-range-query-with-inline-sharding: true
    table_inline:
      type: INLINE
      props:
        algorithm-expression: t_new_order_${order_id % 2}
        allow-range-query-with-inline-sharding: true
mode:
  type: Cluster
  repository:
    type: ZooKeeper
    props:
      namespace: governance_ds
      server-lists: 7.212.123.28:2181
      retryIntervalMilliseconds: 500
      timeToLiveSeconds: 60
      maxRetries: 3
      operationTimeoutMilliseconds: 500
authority:
  users:
    - user: root@%
      password: root
    - user: sharding
      password: sharding
  privilege:
    type: ALL_PERMITTED
rules:
- !TRANSACTION
  defaultType: XA
  providerType: Atomikos
props:
  sql-show: true
</code></pre></div>
<h2 dir="auto">Bug Report</h2>
<p dir="auto">Please answer these questions before submitting your issue. Thanks!</p>
<h3 dir="auto">Which version of ShardingSphere did you use?</h3>
<p dir="auto">4.0.0-RC2</p>
<h3 dir="auto">Which project did you use? Sharding-JDBC or Sharding-Proxy?</h3>
<p dir="auto">Sharding-JDBC</p>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/3151306/66921270-63e0ab00-f057-11e9-8233-ce8dd2af6693.png"><img width="986" alt="WechatIMG877" src="https://user-images.githubusercontent.com/3151306/66921270-63e0ab00-f057-11e9-8233-ce8dd2af6693.png" style="max-width: 100%;"></a></p>