{"record":{"id":"619be11f4f7421ec","repo":"prestodb/presto","slug":"not-supported-619be1","errorCode":"NOT_SUPPORTED","errorMessage":" is not supported","messagePattern":" is not supported","errorType":"error_code","errorClass":"SemanticException","httpStatus":null,"severity":"error","filePath":"presto-analyzer/src/main/java/com/facebook/presto/sql/analyzer/SemanticExceptions.java","lineNumber":46,"sourceCode":"    private SemanticExceptions() {}\n\n    public static SemanticException missingAttributeException(Expression node, QualifiedName name)\n    {\n        throw new SemanticException(\n                MISSING_ATTRIBUTE,\n                node,\n                name.getPrefix().isPresent() ? \"'%s' cannot be resolved\" : \"Column '%s' cannot be resolved\",\n                name);\n    }\n\n    public static SemanticException ambiguousAttributeException(Expression node, QualifiedName name)\n    {\n        throw new SemanticException(AMBIGUOUS_ATTRIBUTE, node, \"Column '%s' is ambiguous\", name);\n    }\n\n    public static SemanticException notSupportedException(Node node, String notSupportedFeatureDescription)\n    {\n        throw new SemanticException(NOT_SUPPORTED, node, notSupportedFeatureDescription + \" is not supported\");\n    }\n\n    public static String subQueryNotSupportedError(Node node, String notSupportedFeatureDescription)\n    {\n        if (node.getLocation().isPresent()) {\n            NodeLocation nodeLocation = node.getLocation().get();\n            return format(\"line %s:%s: %s\", nodeLocation.getLineNumber(), nodeLocation.getColumnNumber(), notSupportedFeatureDescription + \" is not supported\");\n        }\n        return notSupportedFeatureDescription + \" is not supported\";\n    }\n}\n","sourceCodeStart":28,"sourceCodeEnd":58,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-analyzer/src/main/java/com/facebook/presto/sql/analyzer/SemanticExceptions.java#L28-L58","documentation":"SemanticExceptions.notSupportedException wraps an arbitrary feature description into a NOT_SUPPORTED SemanticException, appending ' is not supported'. It is Presto's generic rejection path for SQL features the analyzer does not implement.","triggerScenarios":"Using a SQL construct that the current Presto analyzer/connector does not support, passed in as notSupportedFeatureDescription by the caller (e.g. certain subquery placements, DDL features, or expressions).","commonSituations":"Migrating queries from other engines (MySQL, Hive, Snowflake) with non-standard syntax; using newer SQL features on an older Presto version.","solutions":["Read the full message to identify the unsupported feature","Rewrite the query using supported constructs (e.g. move a subquery into a CTE/JOIN)","Upgrade Presto if the feature is supported in a newer release"],"exampleFix":"-- before\nSELECT * FROM t WHERE (SELECT max(x) FROM t2) = y   -- subquery not supported here\n-- after\nWITH m AS (SELECT max(x) AS mx FROM t2)\nSELECT t.* FROM t, m WHERE m.mx = t.y","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { /* run query */ } catch (SemanticException e) { if (\"NOT_SUPPORTED\".equals(e.getErrorCode().getName())) { log.warn(\"Unsupported feature: {}\", e.getMessage()); /* rewrite query */ } throw e; }","preventionTips":["Check Presto SQL documentation for supported syntax per version","Rewrite non-standard constructs (subqueries in SELECT, exotic DDL) into supported forms","Test migrated queries against Presto before production"],"tags":["sql","not-supported","compatibility"],"backgroundTag":"feature-not-supported","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"}