{"record":{"id":"79da468972bd0589","repo":"prestodb/presto","slug":"unsupported-column-type-79da46","errorCode":null,"errorMessage":"unsupported column type ","messagePattern":"unsupported column type ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java","lineNumber":438,"sourceCode":"        }\n        if (!min.isPresent() || !max.isPresent()) {\n            return Optional.empty();\n        }\n        return Optional.of(new DoubleRange(toDouble(min.get(), columnType), toDouble(max.get(), columnType)));\n    }\n\n    private static double toDouble(Object value, Type columnType)\n    {\n        if (value instanceof String && columnType.equals(DATE)) {\n            return LocalDate.parse((CharSequence) value).toEpochDay();\n        }\n        if (columnType.equals(BIGINT) || columnType.equals(INTEGER) || columnType.equals(DATE)) {\n            return ((Number) value).longValue();\n        }\n        if (columnType.equals(DOUBLE)) {\n            return ((Number) value).doubleValue();\n        }\n        throw new IllegalArgumentException(\"unsupported column type \" + columnType);\n    }\n\n    @Override\n    public TableStatisticsMetadata getStatisticsCollectionMetadata(ConnectorSession session, ConnectorTableMetadata tableMetadata)\n    {\n        return new TableStatisticsMetadata(ImmutableSet.of(), ImmutableSet.of(ROW_COUNT), ImmutableList.of());\n    }\n\n    @Override\n    public ConnectorTableHandle beginStatisticsCollection(ConnectorSession session, ConnectorTableHandle tableHandle)\n    {\n        return (TpchTableHandle) tableHandle;\n    }\n\n    @Override\n    public void finishStatisticsCollection(ConnectorSession session, ConnectorTableHandle tableHandle, Collection<ComputedStatistics> computedStatistics)\n    {\n        // do nothing","sourceCodeStart":420,"sourceCodeEnd":456,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java#L420-L456","documentation":"TpchMetadata.toDouble converts a decoded statistics value to a numeric form, supporting BIGINT/INTEGER/DATE (as long) and DOUBLE. Any other column type reaches the final throw IllegalArgumentException 'unsupported column type'. It enforces that only numeric stats columns are converted.","triggerScenarios":"toRange called with a TPC-H column whose type is e.g. VARCHAR, CHAR, or DECIMAL while computing statistics ranges from a stats block.","commonSituations":"Stale statistics collected before a column type change; stats data referencing columns of unsupported types; misuse of the internal conversion helper for non-numeric columns.","solutions":["Only invoke range-statistics conversion for BIGINT/INTEGER/DATE/DOUBLE columns","Regenerate table statistics after schema changes so types match","Add a DECIMAL (or other needed) branch in toDouble if support is required","Drop/refresh stale stats files whose column types no longer match the table"],"exampleFix":"// before\nObject min = toDouble(columnType, minValue); // columnType = VARCHAR\n// after\nif (columnType.equals(BIGINT) || columnType.equals(INTEGER) || columnType.equals(DATE) || columnType.equals(DOUBLE)) {\n    Object min = toDouble(columnType, minValue);\n}","handlingStrategy":"validation","validationCode":"Set<Type> supported = ImmutableSet.of(BIGINT, INTEGER, DATE, DOUBLE);\nif (!supported.contains(columnType)) {\n    throw new IllegalArgumentException(\"No numeric stats conversion for \" + columnType);\n}","typeGuard":"boolean isStatsConvertible(Type t) {\n    return t.equals(BIGINT) || t.equals(INTEGER) || t.equals(DATE) || t.equals(DOUBLE);\n}","tryCatchPattern":"try {\n    Object v = toDouble(columnType, value);\n} catch (IllegalArgumentException e) {\n    if (e.getMessage().startsWith(\"unsupported column type\")) {\n        return Optional.empty(); // skip this column's range\n    }\n    throw e;\n}","preventionTips":["Restrict statistics collection to numeric columns","Refresh stats after schema/type migrations","Guard internal helpers with type checks before conversion"],"tags":["statistics","type-mapping","tpch"],"backgroundTag":"unsupported-column-type-stats","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"}