apache / shardingsphere

Distributed SQL transaction & query engine for data sharding, scaling, encryption, and more - on any database.
Apache License 2.0
19.88k stars 6.73k forks source link

Unsupported SQL operation: unsupported TableSegment type occurs when I execute `select * from t1,t2 where t1.id(+)=t2.id` with oracle #28799

Open strongduanmu opened 1 year ago

strongduanmu commented 1 year ago

Bug Report

Which version of ShardingSphere did you use?

299fecc

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

ShardingSphere-JDBC

Expected behavior

Parse select * from t1,t2 where t1.id(+)=t2.id successfully.

Actual behavior

org.apache.shardingsphere.infra.exception.core.external.sql.type.generic.UnsupportedSQLOperationException: Unsupported SQL operation: unsupported TableSegment type: class org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ColumnWithJoinOperatorSegment.
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.segment.expression.ExpressionConverter.convert(ExpressionConverter.java:147)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.segment.expression.impl.BinaryOperationExpressionConverter.convertSqlNodes(BinaryOperationExpressionConverter.java:128)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.segment.expression.impl.BinaryOperationExpressionConverter.convert(BinaryOperationExpressionConverter.java:105)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.segment.expression.ExpressionConverter.convert(ExpressionConverter.java:91)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.segment.where.WhereConverter.convert(WhereConverter.java:34)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.statement.select.SelectStatementConverter.lambda$convertSelect$3(SelectStatementConverter.java:68)
    at java.base/java.util.Optional.flatMap(Optional.java:294)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.statement.select.SelectStatementConverter.convertSelect(SelectStatementConverter.java:68)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.statement.select.SelectStatementConverter.convert(SelectStatementConverter.java:52)
    at org.apache.shardingsphere.sqlfederation.optimizer.converter.SQLNodeConverterEngine.convert(SQLNodeConverterEngine.java:53)

Reason analyze (If you can)

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

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

github-actions[bot] commented 11 months ago

There hasn't been any activity on this issue recently, and in order to prioritize active issues, it will be marked as stale.