Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression: Sql planner fails with unexpected parameters for function $try_cast #21952

Closed
guyco33 opened this issue May 13, 2024 · 2 comments · Fixed by #21955
Closed

Regression: Sql planner fails with unexpected parameters for function $try_cast #21952

guyco33 opened this issue May 13, 2024 · 2 comments · Fixed by #21955
Labels
bug Something isn't working RELEASE-BLOCKER

Comments

@guyco33
Copy link
Member

guyco33 commented May 13, 2024

The following query fails in 447

SELECT
    col_01,
    try_cast(col_02 as bigint) col_02,
    col_03,
    col_04,
    col_05,
    col_06,
    col_07,
    col_08,
    col_09,
    col_10,
    col_11,
    col_12,
    col_13,
    col_14,
    col_15,
    col_16,
    col_17,
    col_18,
    col_19,
    col_20,
    col_21,
    col_22,
    col_23,
    col_24,
    col_25,
    col_26,
    col_27,
    col_28,
    col_29,
    col_30,
    col_31,
    col_32,
    col_33,
    col_34,
    col_35,
    col_36,
    col_37
FROM postgres.public.test_try_cast

stack trace:

io.trino.spi.TrinoException: Unexpected parameters (varchar) for function $try_cast. Expected: $try_cast(F) F:castableTo(T), T
	at io.trino.metadata.FunctionBinder.functionNotFound(FunctionBinder.java:421)
	at io.trino.metadata.FunctionBinder.lambda$bindFunction$0(FunctionBinder.java:69)
	at java.base/java.util.Optional.orElseThrow(Optional.java:403)
	at io.trino.metadata.FunctionBinder.bindFunction(FunctionBinder.java:69)
	at io.trino.metadata.BuiltinFunctionResolver.resolveBuiltinFunction(BuiltinFunctionResolver.java:73)
	at io.trino.metadata.MetadataManager.resolveBuiltinFunction(MetadataManager.java:2488)
	at io.trino.tracing.TracingMetadata.resolveBuiltinFunction(TracingMetadata.java:1284)
	at io.trino.sql.planner.ConnectorExpressionTranslator$ConnectorToSqlExpressionTranslator.translateCall(ConnectorExpressionTranslator.java:290)
	at io.trino.sql.planner.ConnectorExpressionTranslator$ConnectorToSqlExpressionTranslator.translate(ConnectorExpressionTranslator.java:206)
	at io.trino.sql.planner.ConnectorExpressionTranslator.translate(ConnectorExpressionTranslator.java:120)
	at io.trino.sql.planner.iterative.rule.PushProjectionIntoTableScan.lambda$apply$4(PushProjectionIntoTableScan.java:147)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:212)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:556)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:546)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:702)
	at io.trino.sql.planner.iterative.rule.PushProjectionIntoTableScan.apply(PushProjectionIntoTableScan.java:152)
	at io.trino.sql.planner.iterative.rule.PushProjectionIntoTableScan.apply(PushProjectionIntoTableScan.java:65)
	at io.trino.sql.planner.iterative.IterativeOptimizer.transform(IterativeOptimizer.java:216)
	at io.trino.sql.planner.iterative.IterativeOptimizer.exploreNode(IterativeOptimizer.java:181)
	at io.trino.sql.planner.iterative.IterativeOptimizer.exploreGroup(IterativeOptimizer.java:144)
	at io.trino.sql.planner.iterative.IterativeOptimizer.exploreChildren(IterativeOptimizer.java:264)
	at io.trino.sql.planner.iterative.IterativeOptimizer.exploreGroup(IterativeOptimizer.java:146)
	at io.trino.sql.planner.iterative.IterativeOptimizer.optimizeAndMarkPlanChanges(IterativeOptimizer.java:129)
	at io.trino.sql.planner.optimizations.AdaptivePlanOptimizer.optimize(AdaptivePlanOptimizer.java:33)
	at io.trino.sql.planner.LogicalPlanner.runOptimizer(LogicalPlanner.java:301)
	at io.trino.sql.planner.LogicalPlanner.plan(LogicalPlanner.java:264)
	at io.trino.sql.planner.LogicalPlanner.plan(LogicalPlanner.java:236)
	at io.trino.sql.planner.LogicalPlanner.plan(LogicalPlanner.java:231)
	at io.trino.execution.SqlQueryExecution.doPlanQuery(SqlQueryExecution.java:498)
	at io.trino.execution.SqlQueryExecution.planQuery(SqlQueryExecution.java:478)
	at io.trino.execution.SqlQueryExecution.start(SqlQueryExecution.java:416)
	at io.trino.execution.SqlQueryManager.createQuery(SqlQueryManager.java:272)
	at io.trino.dispatcher.LocalDispatchQuery.startExecution(LocalDispatchQuery.java:145)
	at io.trino.dispatcher.LocalDispatchQuery.lambda$waitForMinimumWorkers$2(LocalDispatchQuery.java:129)
	at io.airlift.concurrent.MoreFutures.lambda$addSuccessCallback$12(MoreFutures.java:570)
	at io.airlift.concurrent.MoreFutures$3.onSuccess(MoreFutures.java:545)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1137)
	at io.trino.$gen.Trino_447____20240512_182502_2.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1570)

DDL for creating the table:

CREATE TABLE postgres.public.test_try_cast(
    col_01 varchar,
    col_02 varchar,
    col_03 varchar,
    col_04 varchar,
    col_05 varchar,
    col_06 varchar,
    col_07 varchar,
    col_08 varchar,
    col_09 varchar,
    col_10 varchar,
    col_11 varchar,
    col_12 varchar,
    col_13 varchar,
    col_14 varchar,
    col_15 varchar,
    col_16 varchar,
    col_17 varchar,
    col_18 varchar,
    col_19 varchar,
    col_20 varchar,
    col_21 varchar,
    col_22 varchar,
    col_23 varchar,
    col_24 varchar,
    col_25 varchar,
    col_26 varchar,
    col_27 varchar,
    col_28 varchar,
    col_29 varchar,
    col_30 varchar,
    col_31 varchar,
    col_32 varchar,
    col_33 varchar,
    col_34 varchar,
    col_35 varchar,
    col_36 varchar,
    col_37 varchar)

Same issue happens with Mysql, but couldn't reproduce it in hive or iceberg

@guyco33 guyco33 added bug Something isn't working RELEASE-BLOCKER labels May 13, 2024
@findepi
Copy link
Member

findepi commented May 13, 2024

cc @martint

@guyco33
Copy link
Member Author

guyco33 commented May 13, 2024

probably it relates to #21800

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working RELEASE-BLOCKER
Development

Successfully merging a pull request may close this issue.

2 participants