{"record":{"id":"c9ac0cfb1b1ac1e8","repo":"prestodb/presto","slug":"partition-aware-grouped-execution-requires-an-impl","errorCode":null,"errorMessage":"partition-aware grouped execution requires an implementation that supports partitionColumnMapping","messagePattern":"partition-aware grouped execution requires an implementation that supports partitionColumnMapping","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/split/SplitSourceProvider.java","lineNumber":30,"sourceCode":" * limitations under the License.\n */\npackage com.facebook.presto.split;\n\nimport com.facebook.presto.Session;\nimport com.facebook.presto.metadata.TableFunctionHandle;\nimport com.facebook.presto.spi.TableHandle;\nimport com.facebook.presto.spi.WarningCollector;\nimport com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy;\n\nimport java.util.Map;\n\npublic interface SplitSourceProvider\n{\n    SplitSource getSplits(Session session, TableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, WarningCollector warningCollector);\n\n    default SplitSource getSplits(Session session, TableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, WarningCollector warningCollector, Map<String, String> partitionColumnMapping)\n    {\n        throw new UnsupportedOperationException(\"partition-aware grouped execution requires an implementation that supports partitionColumnMapping\");\n    }\n\n    SplitSource getSplits(Session session, TableFunctionHandle tableFunctionHandle);\n}\n","sourceCodeStart":12,"sourceCodeEnd":35,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/split/SplitSourceProvider.java#L12-L35","documentation":"SplitSourceProvider's default partition-aware getSplits overload throws UnsupportedOperationException: connectors must override this method to participate in partition-aware grouped execution. The default exists only so connectors without the feature still compile.","triggerScenarios":"Grouped execution with partition awareness is enabled (e.g. partition-aware grouped execution feature flag on) and the engine calls getSplits(session, tableHandle, strategy, warningCollector, partitionColumnMapping) on a connector whose SplitSourceProvider does not override the 5-argument overload.","commonSituations":"Turning on partition-aware grouped execution session/system properties with connectors that have not implemented the new API; running a newer query plan against an older custom connector plugin.","solutions":["Disable partition-aware grouped execution for sessions using this connector (session property controlling the feature)","Implement the partitionColumnMapping overload in the connector's SplitSourceProvider and delegate appropriately to the underlying metadata/broker","Upgrade the connector plugin to a version that supports partition-aware split fetching","Restrict the feature flag to connectors known to support it (e.g. built-in connectors)"],"exampleFix":"// before (connector provider)\n@Override\npublic SplitSource getSplits(Session session, TableHandle table, SplitSchedulingStrategy strategy, WarningCollector warnings) {...}\n// after\n@Override\npublic SplitSource getSplits(Session session, TableHandle table, SplitSchedulingStrategy strategy, WarningCollector warnings, Map<String, String> partitionColumnMapping) {\n    return partitionAwareSplits(session, table, strategy, warnings, partitionColumnMapping);\n}","handlingStrategy":"fallback","validationCode":"// feature flag check before enabling partition-aware grouped execution\nboolean supported = splitSourceProviderOverridesPartitionMapping(connectorName);\nif (!supported) { /* keep partitionColumnMapping empty or disable the flag */ }","typeGuard":null,"tryCatchPattern":"try { return provider.getSplits(session, handle, strategy, warnings, mapping); } catch (UnsupportedOperationException e) { return provider.getSplits(session, handle, strategy, warnings); }","preventionTips":["Enable partition-aware grouped execution only for connectors implementing the 5-arg getSplits","Upgrade connector plugins alongside the engine","Add a startup check listing connectors lacking the override","Gate the feature via session/system property per connector"],"tags":["connector","grouped-execution","unsupported-operation","splits"],"backgroundTag":"partition-aware-grouped-execution-unsupported","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}