Skip to content

Commit

Permalink
Split select_expression.xml into select.xml and select_expression.xml.
Browse files Browse the repository at this point in the history
  • Loading branch information
haocao committed Sep 7, 2017
1 parent 3210f30 commit 830e710
Show file tree
Hide file tree
Showing 6 changed files with 256 additions and 266 deletions.
28 changes: 0 additions & 28 deletions sharding-jdbc-core/src/test/resources/integrate/assert/select.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<sqls>
<sql id="assertSelectDateFuncWithSingleTable">
<sharding-rule value="tbl">
<data expected="select/SelectDateFuncWithSingleTable.xml" />
</sharding-rule>
</sql>
<sql id="assertSelectNotEqualsWithSingleTable">
<sharding-rule value="tbl">
<data parameter="100000" expected="select/SelectNotEqualsWithSingleTable.xml" />
Expand Down Expand Up @@ -142,27 +137,4 @@
<data parameter="1,9,1000,1909" expected="select_aggregate/SelectCountWithBindingTable_1.xml" />
</sharding-rule>
</sql>
<sql id="assertSelectRegexpWithSingleTable">
<sharding-rule value="tbl">
<data parameter="'init',100000,100001" expected="select/SelectIteratorSql_0.xml" />
<data parameter="'init',100900,100901" expected="select/SelectIteratorSql_1.xml" />
<data parameter="'init',100000,100900" expected="select/SelectIteratorSql_2.xml" />
<data parameter="'init',100000,100200" expected="select/SelectIteratorSql_3.xml" />
</sharding-rule>
<sharding-rule value="db">
<data parameter="'init',100001,100002" expected="select/SelectIteratorSql_0.xml" />
<data parameter="'init',200101,200102" expected="select/SelectIteratorSql_1.xml" />
<data parameter="'init',100001,200102" expected="select/SelectIteratorSql_2.xml" />
<data parameter="'init',100001,100101" expected="select/SelectIteratorSql_3.xml" />
</sharding-rule>
<sharding-rule value="masterslave,dbtbl">
<data parameter="'init',100000,100001" expected="select/SelectIteratorSql_0.xml" />
<data parameter="'init',190900,190901" expected="select/SelectIteratorSql_1.xml" />
<data parameter="'init',100000,100900" expected="select/SelectIteratorSql_2.xml" />
<data parameter="'init',100000,100200" expected="select/SelectIteratorSql_3.xml" />
</sharding-rule>
<sharding-rule>
<data parameter="'init',10,11" />
</sharding-rule>
</sql>
</sqls>
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<sqls>
<sql id="assertSelectDateFuncWithSingleTable">
<sharding-rule value="tbl">
<data expected="select/SelectDateFuncWithSingleTable.xml" />
</sharding-rule>
</sql>
<sql id="assertSelectRegexpWithSingleTable">
<sharding-rule value="tbl">
<data parameter="'init',100000,100001" expected="select/SelectIteratorSql_0.xml" />
<data parameter="'init',100900,100901" expected="select/SelectIteratorSql_1.xml" />
<data parameter="'init',100000,100900" expected="select/SelectIteratorSql_2.xml" />
<data parameter="'init',100000,100200" expected="select/SelectIteratorSql_3.xml" />
</sharding-rule>
<sharding-rule value="db">
<data parameter="'init',100001,100002" expected="select/SelectIteratorSql_0.xml" />
<data parameter="'init',200101,200102" expected="select/SelectIteratorSql_1.xml" />
<data parameter="'init',100001,200102" expected="select/SelectIteratorSql_2.xml" />
<data parameter="'init',100001,100101" expected="select/SelectIteratorSql_3.xml" />
</sharding-rule>
<sharding-rule value="masterslave,dbtbl">
<data parameter="'init',100000,100001" expected="select/SelectIteratorSql_0.xml" />
<data parameter="'init',190900,190901" expected="select/SelectIteratorSql_1.xml" />
<data parameter="'init',100000,100900" expected="select/SelectIteratorSql_2.xml" />
<data parameter="'init',100000,100200" expected="select/SelectIteratorSql_3.xml" />
</sharding-rule>
<sharding-rule>
<data parameter="'init',10,11" />
</sharding-rule>
</sql>
</sqls>
207 changes: 207 additions & 0 deletions sharding-jdbc-core/src/test/resources/parser/select.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8"?>
<asserts>
<assert id="assertSelectNotEqualsWithSingleTable" parameters="1">
<tables>
<table name="t_order_item" />
</tables>
<order-by-columns>
<order-by-column name="item_id" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectNotEqualsWithSingleTableForExclamationEqual" parameters="1">
<tables>
<table name="t_order_item" />
</tables>
<order-by-columns>
<order-by-column name="item_id" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectNotEqualsWithSingleTableForNotIn" parameters="1">
<tables>
<table name="t_order_item" />
</tables>
<order-by-columns>
<order-by-column name="item_id" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectEqualsWithSingleTable" parameters="1,1">
<tables>
<table name="t_order" />
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="EQUAL">
<value index="0" literal="1" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="EQUAL">
<value index="1" literal="1" type="int" />
</condition>
</conditions>
</assert>
<!-- // TODO 这里可优化,将两个字段AND = 替换为永false -->
<assert id="assertSelectEqualsWithSameShardingColumns" parameters="1,2">
<tables>
<table name="t_order" />
</tables>
<conditions>
<condition column-name="order_id" table-name="t_order" operator="EQUAL">
<value index="0" literal="1" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="EQUAL">
<value index="1" literal="2" type="int" />
</condition>
</conditions>
</assert>
<assert id="assertSelectBetweenWithSingleTable" parameters="1,10,2,5">
<tables>
<table name="t_order" />
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="BETWEEN">
<value index="0" literal="1" type="int" />
<value index="1" literal="10" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="BETWEEN">
<value index="2" literal="2" type="int" />
<value index="3" literal="5" type="int" />
</condition>
</conditions>
<order-by-columns>
<order-by-column name="user_id" order-by-type="ASC" />
<order-by-column name="order_id" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectInWithSingleTable" parameters="1,2,3,9,10">
<tables>
<table name="t_order" />
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="IN">
<value index="0" literal="1" type="int" />
<value index="1" literal="2" type="int" />
<value index="2" literal="3" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="IN">
<value index="3" literal="9" type="int" />
<value index="4" literal="10" type="int" />
</condition>
</conditions>
<order-by-columns>
<order-by-column name="user_id" order-by-type="ASC" />
<order-by-column name="order_id" order-by-type="ASC" />
</order-by-columns>
</assert>
<!-- // TODO 目前对于IN多结果不同做到交集处理 仅仅是简单的加入 -->
<assert id="assertSelectInWithSameShardingColumns" parameters="100,1001,1001,1002">
<tables>
<table name="t_order" />
</tables>
<conditions>
<condition column-name="order_id" table-name="t_order" operator="IN">
<value index="0" literal="1000" type="int" />
<value index="1" literal="1001" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="IN">
<value index="2" literal="1001" type="int" />
<value index="3" literal="1002" type="int" />
</condition>
</conditions>
<order-by-columns>
<order-by-column name="order_id" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectIterator" parameters="1,2">
<tables>
<table name="t_order_item" alias="t"/>
</tables>
<conditions>
<condition column-name="item_id" table-name="t_order_item" operator="IN">
<value index="0" literal="1" type="int" />
<value index="1" literal="2" type="int" />
</condition>
</conditions>
</assert>
<assert id="assertSelectNoShardingTable">
<tables>
<table name="t_order" alias="o"/>
<table name="t_order_item" alias="i"/>
</tables>
<order-by-columns>
<order-by-column owner="i" name="item_id" alias="ORDER_BY_DERIVED_0" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectLikeWithCount" parameters="'init',1,2,9,10">
<tables>
<table name="t_order" alias="o"/>
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="IN">
<value index="1" literal="1" type="int" />
<value index="2" literal="2" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="BETWEEN">
<value index="3" literal="9" type="int" />
<value index="4" literal="10" type="int" />
</condition>
</conditions>
<aggregation-select-items>
<aggregation-select-item inner-expression="(0)" aggregation-type="COUNT" alias="orders_count"/>
</aggregation-select-items>
</assert>
<assert id="assertSelectWithBindingTable" parameters="1,2,9,10">
<tables>
<table name="t_order" alias="o"/>
<table name="t_order_item" alias="i"/>
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="IN">
<value index="0" literal="1" type="int" />
<value index="1" literal="2" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="BETWEEN">
<value index="2" literal="9" type="int" />
<value index="3" literal="10" type="int" />
</condition>
</conditions>
<order-by-columns>
<order-by-column owner="i" name="item_id" alias="ORDER_BY_DERIVED_0" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectWithBindingTableAndConfigTable" parameters="1,2,9,10,'init'">
<tables>
<table name="t_order" alias="o"/>
<table name="t_order_item" alias="i"/>
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="IN">
<value index="0" literal="1" type="int" />
<value index="1" literal="2" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="BETWEEN">
<value index="2" literal="9" type="int" />
<value index="3" literal="10" type="int" />
</condition>
</conditions>
<order-by-columns>
<order-by-column owner="i" name="item_id" alias="ORDER_BY_DERIVED_0" order-by-type="ASC" />
</order-by-columns>
</assert>
<assert id="assertSelectCountWithBindingTableWithJoin" parameters="1,2,9,10">
<tables>
<table name="t_order" alias="o"/>
<table name="t_order_item" alias="i"/>
</tables>
<conditions>
<condition column-name="user_id" table-name="t_order" operator="IN">
<value index="0" literal="1" type="int" />
<value index="1" literal="2" type="int" />
</condition>
<condition column-name="order_id" table-name="t_order" operator="BETWEEN">
<value index="2" literal="9" type="int" />
<value index="3" literal="10" type="int" />
</condition>
</conditions>
<aggregation-select-items>
<aggregation-select-item inner-expression="(*)" aggregation-type="COUNT" alias="items_count"/>
</aggregation-select-items>
</assert>
</asserts>
Loading

0 comments on commit 830e710

Please sign in to comment.