From 439d7f66d44e61445915efdca335cad8e270149b Mon Sep 17 00:00:00 2001 From: Dain Sundstrom Date: Thu, 24 Aug 2023 17:32:11 -0700 Subject: [PATCH] Disable function deprecation checks on workers --- .../sql/analyzer/ExpressionAnalyzer.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java index ef35941f324c..ab3f964b1ca9 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java @@ -1313,12 +1313,19 @@ else if (node.getArguments().size() > 127) { resolvedFunctions.put(NodeRef.of(node), function); - FunctionMetadata functionMetadata = plannerContext.getMetadata().getFunctionMetadata(session, function); - if (functionMetadata.isDeprecated()) { - warningCollector.add(new TrinoWarning(DEPRECATED_FUNCTION, - format("Use of deprecated function: %s: %s", - functionMetadata.getSignature().getName(), - functionMetadata.getDescription()))); + // FunctionMetadata should only be fetched on the coordinator, as workers do not have FunctionMetadata for all functions + // Since warning collector is also only set on the coordinator, this check is sufficient + // TODO remove this when workers no longer reanalyze expressions + if (warningCollector != WarningCollector.NOOP) { + FunctionMetadata functionMetadata = plannerContext.getMetadata().getFunctionMetadata(session, function); + if (functionMetadata.isDeprecated()) { + warningCollector.add(new TrinoWarning( + DEPRECATED_FUNCTION, + format( + "Use of deprecated function: %s: %s", + functionMetadata.getSignature().getName(), + functionMetadata.getDescription()))); + } } Type type = signature.getReturnType();