{"record":{"id":"6b4b0786222f9e52","repo":"prestodb/presto","slug":"clickhouse-pushdown-unsupported-expression-6b4b07","errorCode":"CLICKHOUSE_PUSHDOWN_UNSUPPORTED_EXPRESSION","errorMessage":"Unsupported pushdown for ClickHouse connector with plan node of type ","messagePattern":"Unsupported pushdown for ClickHouse connector with plan node of type ","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-clickhouse/src/main/java/com/facebook/presto/plugin/clickhouse/optimization/ClickHouseQueryGenerator.java","lineNumber":189,"sourceCode":"                    .add(\"pushdown\", pushdown)\n                    .toString();\n        }\n    }\n\n    private class ClickHouseQueryPlanVisitor\n            extends PlanVisitor<ClickHouseQueryGeneratorContext, ClickHouseQueryGeneratorContext>\n    {\n        private final ConnectorSession session;\n\n        protected ClickHouseQueryPlanVisitor(ConnectorSession session)\n        {\n            this.session = session;\n        }\n\n        @Override\n        public ClickHouseQueryGeneratorContext visitPlan(PlanNode node, ClickHouseQueryGeneratorContext context)\n        {\n            throw new PrestoException(CLICKHOUSE_PUSHDOWN_UNSUPPORTED_EXPRESSION, \"Unsupported pushdown for ClickHouse connector with plan node of type \" + node);\n        }\n\n        protected VariableReferenceExpression getVariableReference(RowExpression expression)\n        {\n            if (expression instanceof VariableReferenceExpression) {\n                return ((VariableReferenceExpression) expression);\n            }\n            throw new PrestoException(CLICKHOUSE_PUSHDOWN_UNSUPPORTED_EXPRESSION, \"Unsupported pushdown for ClickHouse connector. Expect variable reference, but get: \" + expression);\n        }\n\n        @Override\n        public ClickHouseQueryGeneratorContext visitMarkDistinct(MarkDistinctNode node, ClickHouseQueryGeneratorContext context)\n        {\n            requireNonNull(context, \"context is null\");\n            return node.getSource().accept(this, context);\n        }\n\n        @Override","sourceCodeStart":171,"sourceCodeEnd":207,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-clickhouse/src/main/java/com/facebook/presto/plugin/clickhouse/optimization/ClickHouseQueryGenerator.java#L171-L207","documentation":"The plan visitor reached a PlanNode kind it cannot translate into ClickHouse SQL (only the specific pushdown node types are handled); visitPlan is the default unsupported-case branch of the query generator.","triggerScenarios":"Thrown at presto-clickhouse/src/main/java/com/facebook/presto/plugin/clickhouse/optimization/ClickHouseQueryGenerator.java:189 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Disable the pushdown that produced the unsupported plan node via session properties","Upgrade the connector so the node type is translated","Report the plan node type to maintainers as a pushdown gap"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}