[ https://issues.apache.org/jira/browse/FLINK-30981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Juntao Hu updated FLINK-30981: ------------------------------ Description: Execute `t_env.explainSql("ANY VALID SQL")` will throw error: {code:java} Traceback (most recent call last): File "ISSUE/FLINK-25622.py", line 42, in <module> main() File "ISSUE/FLINK-25622.py", line 34, in main print(t_env.explain_sql( File "/Users/vancior/Documents/Github/flink-back/flink-python/pyflink/table/table_environment.py", line 799, in explain_sql return self._j_tenv.explainSql(stmt, j_extra_details) File "/Users/vancior/miniconda3/envs/flink-python/lib/python3.8/site-packages/py4j/java_gateway.py", line 1322, in __call__ return_value = get_return_value( File "/Users/vancior/Documents/Github/flink-back/flink-python/pyflink/util/exceptions.py", line 146, in deco return f(*a, **kw) File "/Users/vancior/miniconda3/envs/flink-python/lib/python3.8/site-packages/py4j/protocol.py", line 330, in get_return_value raise Py4JError( py4j.protocol.Py4JError: An error occurred while calling o11.explainSql. Trace: org.apache.flink.api.python.shaded.py4j.Py4JException: Method explainSql([class java.lang.String, class [Lorg.apache.flink.table.api.ExplainDetail;]) does not exist at org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:321) at org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:329) at org.apache.flink.api.python.shaded.py4j.Gateway.invoke(Gateway.java:274) at org.apache.flink.api.python.shaded.py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at org.apache.flink.api.python.shaded.py4j.commands.CallCommand.execute(CallCommand.java:79) at org.apache.flink.api.python.shaded.py4j.GatewayConnection.run(GatewayConnection.java:238) at java.base/java.lang.Thread.run(Thread.java:829) {code} [30668|https://issues.apache.org/jira/browse/FLINK-30668] changed TableEnvironment#explainSql to an interface default method, while both TableEnvironmentInternal and TableEnvironmentImpl not overwriting it, it triggers a bug in py4j, see [https://github.com/py4j/py4j/issues/506] . was: Execute `t_env.explainSql("ANY VALID SQL")` will throw error: {code:java} Traceback (most recent call last): File "ISSUE/FLINK-25622.py", line 42, in <module> main() File "ISSUE/FLINK-25622.py", line 34, in main print(t_env.explain_sql( File "/Users/vancior/Documents/Github/flink-back/flink-python/pyflink/table/table_environment.py", line 799, in explain_sql return self._j_tenv.explainSql(stmt, j_extra_details) File "/Users/vancior/miniconda3/envs/flink-python/lib/python3.8/site-packages/py4j/java_gateway.py", line 1322, in __call__ return_value = get_return_value( File "/Users/vancior/Documents/Github/flink-back/flink-python/pyflink/util/exceptions.py", line 146, in deco return f(*a, **kw) File "/Users/vancior/miniconda3/envs/flink-python/lib/python3.8/site-packages/py4j/protocol.py", line 330, in get_return_value raise Py4JError( py4j.protocol.Py4JError: An error occurred while calling o11.explainSql. Trace: org.apache.flink.api.python.shaded.py4j.Py4JException: Method explainSql([class java.lang.String, class [Lorg.apache.flink.table.api.ExplainDetail;]) does not exist at org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:321) at org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:329) at org.apache.flink.api.python.shaded.py4j.Gateway.invoke(Gateway.java:274) at org.apache.flink.api.python.shaded.py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at org.apache.flink.api.python.shaded.py4j.commands.CallCommand.execute(CallCommand.java:79) at org.apache.flink.api.python.shaded.py4j.GatewayConnection.run(GatewayConnection.java:238) at java.base/java.lang.Thread.run(Thread.java:829) {code} [#30668] changed TableEnvironment#explainSql to an interface default method, while both TableEnvironmentInternal and TableEnvironmentImpl not overwriting it, it triggers a bug in py4j, see [https://github.com/py4j/py4j/issues/506] . > explain_sql throws java method not exist > ---------------------------------------- > > Key: FLINK-30981 > URL: https://issues.apache.org/jira/browse/FLINK-30981 > Project: Flink > Issue Type: Bug > Components: API / Python > Affects Versions: 1.17.0 > Reporter: Juntao Hu > Priority: Major > Fix For: 1.17.0, 1.18.0 > > > Execute `t_env.explainSql("ANY VALID SQL")` will throw error: > {code:java} > Traceback (most recent call last): > File "ISSUE/FLINK-25622.py", line 42, in <module> > main() > File "ISSUE/FLINK-25622.py", line 34, in main > print(t_env.explain_sql( > File > "/Users/vancior/Documents/Github/flink-back/flink-python/pyflink/table/table_environment.py", > line 799, in explain_sql > return self._j_tenv.explainSql(stmt, j_extra_details) > File > "/Users/vancior/miniconda3/envs/flink-python/lib/python3.8/site-packages/py4j/java_gateway.py", > line 1322, in __call__ > return_value = get_return_value( > File > "/Users/vancior/Documents/Github/flink-back/flink-python/pyflink/util/exceptions.py", > line 146, in deco > return f(*a, **kw) > File > "/Users/vancior/miniconda3/envs/flink-python/lib/python3.8/site-packages/py4j/protocol.py", > line 330, in get_return_value > raise Py4JError( > py4j.protocol.Py4JError: An error occurred while calling o11.explainSql. > Trace: > org.apache.flink.api.python.shaded.py4j.Py4JException: Method > explainSql([class java.lang.String, class > [Lorg.apache.flink.table.api.ExplainDetail;]) does not exist > at > org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:321) > at > org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:329) > at > org.apache.flink.api.python.shaded.py4j.Gateway.invoke(Gateway.java:274) > at > org.apache.flink.api.python.shaded.py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) > at > org.apache.flink.api.python.shaded.py4j.commands.CallCommand.execute(CallCommand.java:79) > at > org.apache.flink.api.python.shaded.py4j.GatewayConnection.run(GatewayConnection.java:238) > at java.base/java.lang.Thread.run(Thread.java:829) {code} > [30668|https://issues.apache.org/jira/browse/FLINK-30668] changed > TableEnvironment#explainSql to an interface default method, while both > TableEnvironmentInternal and TableEnvironmentImpl not overwriting it, it > triggers a bug in py4j, see [https://github.com/py4j/py4j/issues/506] . -- This message was sent by Atlassian Jira (v8.20.10#820010)