You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/03/30 06:44:47 UTC

[shardingsphere] branch master updated: refactor: use translatable instead of filterable. (#24824)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 0f78d8d70c5 refactor: use translatable instead of filterable. (#24824)
0f78d8d70c5 is described below

commit 0f78d8d70c53bfe491c5e67cc35753ddabf3c68a
Author: boyjoy1127 <10...@users.noreply.github.com>
AuthorDate: Thu Mar 30 14:44:38 2023 +0800

    refactor: use translatable instead of filterable. (#24824)
    
    * refactor: use translatable instead of filterable.
    
    * refactor: use translatable instead of filterable.
    
    * refactor: use translatable instead of filterable.
    
    * refactor: use federation query to deal with SQL with "WHEN".
    
    ---------
    
    Co-authored-by: boyjoy1127 <bo...@126.com>
---
 .../advanced/AdvancedSQLFederationExecutor.java      |  8 ++++----
 .../empty_rules/mysql/preview_federation_select.xml  | 20 ++++++++++----------
 .../opengauss/preview_federation_select.xml          | 20 ++++++++++----------
 .../postgresql/preview_federation_select.xml         | 20 ++++++++++----------
 4 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/kernel/sql-federation/executor/advanced/src/main/java/org/apache/shardingsphere/sqlfederation/advanced/AdvancedSQLFederationExecutor.java b/kernel/sql-federation/executor/advanced/src/main/java/org/apache/shardingsphere/sqlfederation/advanced/AdvancedSQLFederationExecutor.java
index 95517456dd7..7856bb949fb 100644
--- a/kernel/sql-federation/executor/advanced/src/main/java/org/apache/shardingsphere/sqlfederation/advanced/AdvancedSQLFederationExecutor.java
+++ b/kernel/sql-federation/executor/advanced/src/main/java/org/apache/shardingsphere/sqlfederation/advanced/AdvancedSQLFederationExecutor.java
@@ -47,15 +47,15 @@ import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRule
 import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import org.apache.shardingsphere.sqlfederation.SQLFederationDataContext;
 import org.apache.shardingsphere.sqlfederation.advanced.resultset.SQLFederationResultSet;
-import org.apache.shardingsphere.sqlfederation.executor.FilterableTableScanExecutor;
 import org.apache.shardingsphere.sqlfederation.executor.TableScanExecutorContext;
+import org.apache.shardingsphere.sqlfederation.executor.TranslatableTableScanExecutor;
 import org.apache.shardingsphere.sqlfederation.optimizer.SQLOptimizeContext;
 import org.apache.shardingsphere.sqlfederation.optimizer.SQLOptimizeEngine;
 import org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContext;
 import org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContextFactory;
 import org.apache.shardingsphere.sqlfederation.optimizer.context.parser.OptimizerParserContext;
 import org.apache.shardingsphere.sqlfederation.optimizer.executor.TableScanExecutor;
-import org.apache.shardingsphere.sqlfederation.optimizer.metadata.filter.FilterableSchema;
+import org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableSchema;
 import org.apache.shardingsphere.sqlfederation.optimizer.util.SQLFederationPlannerUtils;
 import org.apache.shardingsphere.sqlfederation.spi.SQLFederationExecutor;
 import org.apache.shardingsphere.sqlfederation.spi.SQLFederationExecutorContext;
@@ -128,8 +128,8 @@ public final class AdvancedSQLFederationExecutor implements SQLFederationExecuto
                                                      final ShardingSphereSchema schema,
                                                      final JDBCExecutorCallback<? extends ExecuteResult> callback, final SQLFederationExecutorContext federationContext) {
         TableScanExecutorContext executorContext = new TableScanExecutorContext(databaseName, schemaName, props, federationContext);
-        TableScanExecutor executor = new FilterableTableScanExecutor(prepareEngine, jdbcExecutor, callback, optimizerContext, globalRuleMetaData, executorContext, data);
-        return new FilterableSchema(schemaName, schema, protocolType, JAVA_TYPE_FACTORY, executor);
+        TableScanExecutor executor = new TranslatableTableScanExecutor(prepareEngine, jdbcExecutor, callback, optimizerContext, globalRuleMetaData, executorContext, data);
+        return new TranslatableSchema(schemaName, schema, protocolType, JAVA_TYPE_FACTORY, executor);
     }
     
     @SuppressWarnings("unchecked")
diff --git a/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/mysql/preview_federation_select.xml b/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/mysql/preview_federation_select.xml
index 0aaa3e58980..df2c216d6b7 100644
--- a/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/mysql/preview_federation_select.xml
+++ b/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/mysql/preview_federation_select.xml
@@ -20,15 +20,15 @@
         <column name="data_source_name" />
         <column name="actual_sql" />
     </metadata>
-    <row values="write_ds_0| SELECT * FROM `t_user_item_0` UNION ALL SELECT * FROM `t_user_item_10` UNION ALL SELECT * FROM `t_user_item_20` UNION ALL SELECT * FROM `t_user_item_30`" />
-    <row values="write_ds_1| SELECT * FROM `t_user_item_1` UNION ALL SELECT * FROM `t_user_item_11` UNION ALL SELECT * FROM `t_user_item_21` UNION ALL SELECT * FROM `t_user_item_31`" />
-    <row values="write_ds_2| SELECT * FROM `t_user_item_2` UNION ALL SELECT * FROM `t_user_item_12` UNION ALL SELECT * FROM `t_user_item_22` UNION ALL SELECT * FROM `t_user_item_32`" />
-    <row values="write_ds_3| SELECT * FROM `t_user_item_3` UNION ALL SELECT * FROM `t_user_item_13` UNION ALL SELECT * FROM `t_user_item_23` UNION ALL SELECT * FROM `t_user_item_33`" />
-    <row values="write_ds_4| SELECT * FROM `t_user_item_4` UNION ALL SELECT * FROM `t_user_item_14` UNION ALL SELECT * FROM `t_user_item_24` UNION ALL SELECT * FROM `t_user_item_34`" />
-    <row values="write_ds_5| SELECT * FROM `t_user_item_5` UNION ALL SELECT * FROM `t_user_item_15` UNION ALL SELECT * FROM `t_user_item_25` UNION ALL SELECT * FROM `t_user_item_35`" />
-    <row values="write_ds_6| SELECT * FROM `t_user_item_6` UNION ALL SELECT * FROM `t_user_item_16` UNION ALL SELECT * FROM `t_user_item_26` UNION ALL SELECT * FROM `t_user_item_36`" />
-    <row values="write_ds_7| SELECT * FROM `t_user_item_7` UNION ALL SELECT * FROM `t_user_item_17` UNION ALL SELECT * FROM `t_user_item_27` UNION ALL SELECT * FROM `t_user_item_37`" />
-    <row values="write_ds_8| SELECT * FROM `t_user_item_8` UNION ALL SELECT * FROM `t_user_item_18` UNION ALL SELECT * FROM `t_user_item_28` UNION ALL SELECT * FROM `t_user_item_38`" />
-    <row values="write_ds_9| SELECT * FROM `t_user_item_9` UNION ALL SELECT * FROM `t_user_item_19` UNION ALL SELECT * FROM `t_user_item_29` UNION ALL SELECT * FROM `t_user_item_39`" />
     <row values="read_ds_0| SELECT * FROM `t_single_table`" />
+    <row values="write_ds_0| SELECT * FROM `t_user_item_0` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_10` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_20` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_30` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_1| SELECT * FROM `t_user_item_1` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_11` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_21` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_31` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_2| SELECT * FROM `t_user_item_2` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_12` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_22` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_32` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_3| SELECT * FROM `t_user_item_3` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_13` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_23` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_33` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_4| SELECT * FROM `t_user_item_4` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_14` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_24` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_34` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_5| SELECT * FROM `t_user_item_5` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_15` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_25` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_35` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_6| SELECT * FROM `t_user_item_6` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_16` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_26` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_36` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_7| SELECT * FROM `t_user_item_7` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_17` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_27` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_37` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_8| SELECT * FROM `t_user_item_8` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_18` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_28` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_38` WHERE CAST(`user_id` AS SIGNED) = 1" />
+    <row values="write_ds_9| SELECT * FROM `t_user_item_9` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_19` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_29` WHERE CAST(`user_id` AS SIGNED) = 1 UNION ALL SELECT * FROM `t_user_item_39` WHERE CAST(`user_id` AS SIGNED) = 1" />
 </dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/opengauss/preview_federation_select.xml b/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/opengauss/preview_federation_select.xml
index 8775628a16c..06f3c1f7eeb 100644
--- a/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/opengauss/preview_federation_select.xml
+++ b/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/opengauss/preview_federation_select.xml
@@ -20,15 +20,15 @@
         <column name="data_source_name" />
         <column name="actual_sql" />
     </metadata>
-    <row values="write_ds_0| SELECT * FROM &quot;public&quot;.&quot;t_user_item_0&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_10&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_20&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_30&quot;" />
-    <row values="write_ds_1| SELECT * FROM &quot;public&quot;.&quot;t_user_item_1&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_11&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_21&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_31&quot;" />
-    <row values="write_ds_2| SELECT * FROM &quot;public&quot;.&quot;t_user_item_2&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_12&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_22&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_32&quot;" />
-    <row values="write_ds_3| SELECT * FROM &quot;public&quot;.&quot;t_user_item_3&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_13&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_23&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_33&quot;" />
-    <row values="write_ds_4| SELECT * FROM &quot;public&quot;.&quot;t_user_item_4&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_14&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_24&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_34&quot;" />
-    <row values="write_ds_5| SELECT * FROM &quot;public&quot;.&quot;t_user_item_5&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_15&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_25&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_35&quot;" />
-    <row values="write_ds_6| SELECT * FROM &quot;public&quot;.&quot;t_user_item_6&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_16&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_26&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_36&quot;" />
-    <row values="write_ds_7| SELECT * FROM &quot;public&quot;.&quot;t_user_item_7&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_17&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_27&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_37&quot;" />
-    <row values="write_ds_8| SELECT * FROM &quot;public&quot;.&quot;t_user_item_8&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_18&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_28&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_38&quot;" />
-    <row values="write_ds_9| SELECT * FROM &quot;public&quot;.&quot;t_user_item_9&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_19&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_29&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_39&quot;" />
     <row values="read_ds_0| SELECT * FROM &quot;public&quot;.&quot;t_single_table&quot;" />
+    <row values="write_ds_0| SELECT * FROM &quot;public&quot;.&quot;t_user_item_0&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_10&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_20&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_30&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_1| SELECT * FROM &quot;public&quot;.&quot;t_user_item_1&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_11&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_21&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_31&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_2| SELECT * FROM &quot;public&quot;.&quot;t_user_item_2&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_12&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_22&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_32&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_3| SELECT * FROM &quot;public&quot;.&quot;t_user_item_3&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_13&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_23&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_33&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_4| SELECT * FROM &quot;public&quot;.&quot;t_user_item_4&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_14&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_24&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_34&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_5| SELECT * FROM &quot;public&quot;.&quot;t_user_item_5&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_15&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_25&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_35&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_6| SELECT * FROM &quot;public&quot;.&quot;t_user_item_6&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_16&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_26&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_36&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_7| SELECT * FROM &quot;public&quot;.&quot;t_user_item_7&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_17&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_27&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_37&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_8| SELECT * FROM &quot;public&quot;.&quot;t_user_item_8&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_18&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_28&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_38&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_9| SELECT * FROM &quot;public&quot;.&quot;t_user_item_9&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_19&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_29&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_39&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
 </dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/postgresql/preview_federation_select.xml b/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/postgresql/preview_federation_select.xml
index 8775628a16c..06f3c1f7eeb 100644
--- a/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/postgresql/preview_federation_select.xml
+++ b/test/e2e/sql/src/test/resources/cases/ral/dataset/empty_rules/postgresql/preview_federation_select.xml
@@ -20,15 +20,15 @@
         <column name="data_source_name" />
         <column name="actual_sql" />
     </metadata>
-    <row values="write_ds_0| SELECT * FROM &quot;public&quot;.&quot;t_user_item_0&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_10&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_20&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_30&quot;" />
-    <row values="write_ds_1| SELECT * FROM &quot;public&quot;.&quot;t_user_item_1&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_11&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_21&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_31&quot;" />
-    <row values="write_ds_2| SELECT * FROM &quot;public&quot;.&quot;t_user_item_2&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_12&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_22&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_32&quot;" />
-    <row values="write_ds_3| SELECT * FROM &quot;public&quot;.&quot;t_user_item_3&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_13&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_23&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_33&quot;" />
-    <row values="write_ds_4| SELECT * FROM &quot;public&quot;.&quot;t_user_item_4&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_14&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_24&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_34&quot;" />
-    <row values="write_ds_5| SELECT * FROM &quot;public&quot;.&quot;t_user_item_5&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_15&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_25&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_35&quot;" />
-    <row values="write_ds_6| SELECT * FROM &quot;public&quot;.&quot;t_user_item_6&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_16&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_26&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_36&quot;" />
-    <row values="write_ds_7| SELECT * FROM &quot;public&quot;.&quot;t_user_item_7&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_17&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_27&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_37&quot;" />
-    <row values="write_ds_8| SELECT * FROM &quot;public&quot;.&quot;t_user_item_8&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_18&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_28&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_38&quot;" />
-    <row values="write_ds_9| SELECT * FROM &quot;public&quot;.&quot;t_user_item_9&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_19&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_29&quot; UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_39&quot;" />
     <row values="read_ds_0| SELECT * FROM &quot;public&quot;.&quot;t_single_table&quot;" />
+    <row values="write_ds_0| SELECT * FROM &quot;public&quot;.&quot;t_user_item_0&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_10&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_20&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_30&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_1| SELECT * FROM &quot;public&quot;.&quot;t_user_item_1&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_11&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_21&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_31&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_2| SELECT * FROM &quot;public&quot;.&quot;t_user_item_2&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_12&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_22&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_32&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_3| SELECT * FROM &quot;public&quot;.&quot;t_user_item_3&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_13&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_23&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_33&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_4| SELECT * FROM &quot;public&quot;.&quot;t_user_item_4&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_14&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_24&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_34&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_5| SELECT * FROM &quot;public&quot;.&quot;t_user_item_5&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_15&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_25&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_35&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_6| SELECT * FROM &quot;public&quot;.&quot;t_user_item_6&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_16&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_26&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_36&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_7| SELECT * FROM &quot;public&quot;.&quot;t_user_item_7&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_17&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_27&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_37&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_8| SELECT * FROM &quot;public&quot;.&quot;t_user_item_8&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_18&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_28&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_38&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
+    <row values="write_ds_9| SELECT * FROM &quot;public&quot;.&quot;t_user_item_9&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_19&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_29&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1 UNION ALL SELECT * FROM &quot;public&quot;.&quot;t_user_item_39&quot; WHERE CAST(&quot;user_id&quot; AS INTEGER) = 1" />
 </dataset>