{"record":{"id":"249fb8748e8e054e","repo":"prestodb/presto","slug":"unsupported-type-for-year","errorCode":null,"errorMessage":"Unsupported type for 'year': ","messagePattern":"Unsupported type for 'year': ","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransforms.java","lineNumber":107,"sourceCode":"                if (type.equals(TIMESTAMP)) {\n                    LongUnaryOperator transformYear = value -> epochYear(value);\n                    return new ColumnTransform(transform, INTEGER,\n                            block -> transformBlock(TIMESTAMP, block, transformYear),\n                            ValueTransform.from(TIMESTAMP, transformYear));\n                }\n                if (type.equals(TIMESTAMP_MICROSECONDS)) {\n                    LongUnaryOperator transformYear = value -> epochYear(Math.floorDiv(value, 1000));\n                    return new ColumnTransform(transform, INTEGER,\n                            block -> transformBlock(TIMESTAMP_MICROSECONDS, block, transformYear),\n                            ValueTransform.from(TIMESTAMP_MICROSECONDS, transformYear));\n                }\n                if (type.equals(TIMESTAMP_WITH_TIME_ZONE)) {\n                    LongUnaryOperator transformYear = value -> epochYear(unpackMillisUtc(value));\n                    return new ColumnTransform(transform, INTEGER,\n                            block -> transformBlock(TIMESTAMP_WITH_TIME_ZONE, block, transformYear),\n                            ValueTransform.from(TIMESTAMP_WITH_TIME_ZONE, transformYear));\n                }\n                throw new UnsupportedOperationException(\"Unsupported type for 'year': \" + field);\n            case \"month\":\n                if (type.equals(DATE)) {\n                    LongUnaryOperator transformMonth = value -> epochMonth(DAYS.toMillis(value));\n                    return new ColumnTransform(transform, INTEGER,\n                            block -> transformBlock(DATE, block, transformMonth),\n                            ValueTransform.from(DATE, transformMonth));\n                }\n                if (type.equals(TIMESTAMP)) {\n                    LongUnaryOperator transformMonth = value -> epochMonth(value);\n                    return new ColumnTransform(transform, INTEGER,\n                            block -> transformBlock(TIMESTAMP, block, transformMonth),\n                            ValueTransform.from(TIMESTAMP, transformMonth));\n                }\n                if (type.equals(TIMESTAMP_MICROSECONDS)) {\n                    LongUnaryOperator transformMonth = value -> epochMonth(Math.floorDiv(value, 1000));\n                    return new ColumnTransform(transform, INTEGER,\n                            block -> transformBlock(TIMESTAMP_MICROSECONDS, block, transformMonth),\n                            ValueTransform.from(TIMESTAMP_MICROSECONDS, transformMonth));","sourceCodeStart":89,"sourceCodeEnd":125,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransforms.java#L89-L125","documentation":"PartitionTransforms.getColumnTransform implements the Iceberg year transform only for DATE, TIMESTAMP (and microsecond variants); any other type reaching the year case falls through to this NOT_SUPPORTED error, meaning a partition spec applies year() to an incompatible column type.","triggerScenarios":"Thrown at presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransforms.java:107 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Change the partition transform so year() is only applied to date/timestamp columns","Recreate the table's partition spec with a transform matching the column type"],"exampleFix":null,"handlingStrategy":"validation","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"}