<h2 dir="auto">Bug Report</h2>
<p dir="auto">Connecting to mysql using sharding-jdbc 4.0.0-rc3 always fails to start.</p>
<h3 dir="auto">Which version of ShardingSphere did you use?</h3>
<p dir="auto">ShardingSphere 4.0.0-RC1 4.0.0-RC2 4.0.0-RC3</p>
<h3 dir="auto">Which project did you use? Sharding-JDBC or Sharding-Proxy?</h3>
<p dir="auto">Sharding-JDBC</p>
<h3 dir="auto">Expected behavior</h3>
<p dir="auto">Properly configured environment, the project can not start properly, the following error:<br>
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'shardingDataSource' threw exception; nested exception is java.lang.NumberFormatException: For input string: "YES"</p>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto">At project startup</p>
<h3 dir="auto">Reason analyze (If you can)</h3>
<p dir="auto">In org.apache.shardingsphere.core.execute.metadata.TableMetaDataLoader#getColumnMetaDataList method and in<br>
boolean isAutoIncrement = resultSet.getBoolean("IS_AUTOINCREMENT");<br>
line,attempt to convert the string 'NO' or 'YES' to a Boolean</p>
<h3 dir="auto">Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.</h3>
<h3 dir="auto">Example codes for reproduce this issue (such as a github link).</h3>
<p dir="auto">Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shardingDataSource' defined in class path resource [org/apache/shardingsphere/shardingjdbc/spring/boot/SpringBootConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'shardingDataSource' threw exception; nested exception is java.lang.NumberFormatException: For input string: "YES"</p>
<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">The select result of ‘join with USING(column)’  is correct；</p>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto">The select result of ‘join with USING(column)’  exists problem;The column name and value doesn't match.</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>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="DROP TABLE IF EXISTS t_order; 
DROP TABLE IF EXISTS t_order_item; 
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) NOT NULL, creation_date DATE NOT NULL);
CREATE TABLE t_order_item (item_id INT PRIMARY KEY, order_id INT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
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_item VALUES(100001, 1000, 10, 1, 1, '2017-07-08');
INSERT INTO t_order_item VALUES(100002, 1000, 10, 1, 1, '2017-07-08');
INSERT INTO t_order_item VALUES(100101, 1001, 10, 2, 1, '2017-07-08');
INSERT INTO t_order_item VALUES(100102, 1001, 10, 2, 1, '2017-07-08');

SELECT * FROM t_order o RIGHT JOIN t_order_item i using(order_id) WHERE o.user_id = 10 ORDER BY o.order_id, 7;"><pre class="notranslate"><code class="notranslate">DROP TABLE IF EXISTS t_order; 
DROP TABLE IF EXISTS t_order_item; 
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) NOT NULL, creation_date DATE NOT NULL);
CREATE TABLE t_order_item (item_id INT PRIMARY KEY, order_id INT NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, creation_date DATE NOT NULL);
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_item VALUES(100001, 1000, 10, 1, 1, '2017-07-08');
INSERT INTO t_order_item VALUES(100002, 1000, 10, 1, 1, '2017-07-08');
INSERT INTO t_order_item VALUES(100101, 1001, 10, 2, 1, '2017-07-08');
INSERT INTO t_order_item VALUES(100102, 1001, 10, 2, 1, '2017-07-08');

SELECT * FROM t_order o RIGHT JOIN t_order_item i using(order_id) WHERE o.user_id = 10 ORDER BY o.order_id, 7;
</code></pre></div>
<p dir="auto"><strong>The result of sharding-proxy</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="test_db=&gt; SELECT * FROM t_order o RIGHT JOIN t_order_item i using(order_id) WHERE o.user_id = 10 ORDER BY o.order_id, 7;
 order_id | user_id | status | merchant_id | remark |     creation_date     | item_id | order_id | user_id | product_id |       quantity
----------+---------+--------+-------------+--------+-----------------------+---------+----------+---------+------------+-----------------------
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00.0 |  100001 |       10 |       1 |          1 | 2017-07-08 00:00:00.0
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00.0 |  100002 |       10 |       1 |          1 | 2017-07-08 00:00:00.0
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00.0 |  100101 |       10 |       2 |          1 | 2017-07-08 00:00:00.0
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00.0 |  100102 |       10 |       2 |          1 | 2017-07-08 00:00:00.0
(4 rows)"><pre class="notranslate"><code class="notranslate">test_db=&gt; SELECT * FROM t_order o RIGHT JOIN t_order_item i using(order_id) WHERE o.user_id = 10 ORDER BY o.order_id, 7;
 order_id | user_id | status | merchant_id | remark |     creation_date     | item_id | order_id | user_id | product_id |       quantity
----------+---------+--------+-------------+--------+-----------------------+---------+----------+---------+------------+-----------------------
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00.0 |  100001 |       10 |       1 |          1 | 2017-07-08 00:00:00.0
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00.0 |  100002 |       10 |       1 |          1 | 2017-07-08 00:00:00.0
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00.0 |  100101 |       10 |       2 |          1 | 2017-07-08 00:00:00.0
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00.0 |  100102 |       10 |       2 |          1 | 2017-07-08 00:00:00.0
(4 rows)
</code></pre></div>
<p dir="auto"><strong>The result of opengauss</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="tpccdb=# SELECT * FROM t_order o RIGHT JOIN t_order_item i using(order_id) WHERE o.user_id = 10 ORDER BY o.order_id, 7;
 order_id | user_id | status | merchant_id | remark |    creation_date    | item_id | user_id | product_id | quantity |    creation_date
----------+---------+--------+-------------+--------+---------------------+---------+---------+------------+----------+---------------------
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00 |  100001 |      10 |          1 |        1 | 2017-07-08 00:00:00
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00 |  100002 |      10 |          1 |        1 | 2017-07-08 00:00:00
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00 |  100101 |      10 |          2 |        1 | 2017-07-08 00:00:00
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00 |  100102 |      10 |          2 |        1 | 2017-07-08 00:00:00
(4 rows)"><pre class="notranslate"><code class="notranslate">tpccdb=# SELECT * FROM t_order o RIGHT JOIN t_order_item i using(order_id) WHERE o.user_id = 10 ORDER BY o.order_id, 7;
 order_id | user_id | status | merchant_id | remark |    creation_date    | item_id | user_id | product_id | quantity |    creation_date
----------+---------+--------+-------------+--------+---------------------+---------+---------+------------+----------+---------------------
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00 |  100001 |      10 |          1 |        1 | 2017-07-08 00:00:00
     1000 |      10 | init   |           1 | test   | 2017-07-08 00:00:00 |  100002 |      10 |          1 |        1 | 2017-07-08 00:00:00
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00 |  100101 |      10 |          2 |        1 | 2017-07-08 00:00:00
     1001 |      10 | init   |           2 | test   | 2017-07-08 00:00:00 |  100102 |      10 |          2 |        1 | 2017-07-08 00:00:00
(4 rows)
</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="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
"><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

</code></pre></div>