{"record":{"id":"bd0cef0e760052c9","repo":"alibaba/DataX","slug":"can-t-support-this-columntype-s-bd0cef","errorCode":null,"errorMessage":"== can't support this columnType:%s","messagePattern":"== can't support this columnType:(.+?)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/com/alibaba/datax/core/transport/transformer/FilterTransformer.java","lineNumber":240,"sourceCode":"            }\n        } else if (column instanceof LongColumn || column instanceof DateColumn) {\n            Long ori = column.asLong();\n            long val = Long.parseLong(value);\n\n            if (ori == val) {\n                return null;\n            } else {\n                return record;\n            }\n        } else if (column instanceof StringColumn || column instanceof BytesColumn || column instanceof BoolColumn) {\n            String ori = column.asString();\n            if (ori.compareTo(value) == 0) {\n                return null;\n            } else {\n                return record;\n            }\n        } else {\n            throw new RuntimeException(\"== can't support this columnType:\" + column.getClass().getSimpleName());\n        }\n\n    }\n\n    /**\n     * DateColumn将比较long值，StringColumn，ByteColumn以及BooleanColumn比较其String值\n     *\n     * @param record\n     * @param value\n     * @param column\n     * @return 如果不相等，则过滤。\n     */\n    private Record doNotEqual(Record record, String value, Column column) {\n\n        //如果字段为空，只比较目标字段为\"null\", 否则null字段均过滤。\n        if(column.getRawData() == null){\n            if(value.equalsIgnoreCase(\"null\")){\n                return record;","sourceCodeStart":222,"sourceCodeEnd":258,"githubUrl":"https://github.com/alibaba/DataX/blob/80ec23d5c5328eb90ca364d2749e92dfaf44541e/core/src/main/java/com/alibaba/datax/core/transport/transformer/FilterTransformer.java#L222-L258","documentation":"Inside dx_filter's doEqual (operators = and ==), only Long/Double/Date (compared numerically) and String/Bytes/Bool (compared as strings) are supported; any other column type throws RuntimeException('== can't support this columnType:...') under TRANSFORMER_RUN_EXCEPTION. Records whose value equals the parameter are filtered out (return null).","triggerScenarios":"Equality-filtering a column that is a custom Column subclass not in the supported set — typically only possible in plugins that introduce novel Column types, since all stock types are covered.","commonSituations":"Custom reader plugins emitting bespoke Column implementations; older DataX forks missing a newer Column type branch.","solutions":["Upgrade DataX to a release whose dx_filter covers your Column type.","In custom plugins, map data to stock Column types (StringColumn etc.) instead of custom ones.","Compare a different (supported) column."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"Column c = record.getColumn(idx);\nboolean eqOk = c instanceof LongColumn || c instanceof DoubleColumn || c instanceof DateColumn\n        || c instanceof StringColumn || c instanceof BytesColumn || c instanceof BoolColumn;\nif (!eqOk) throw new IllegalArgumentException(\"== unsupported for \" + c.getClass().getSimpleName());","typeGuard":"static boolean equalityComparable(Column c) {\n    return c instanceof LongColumn || c instanceof DoubleColumn || c instanceof DateColumn\n        || c instanceof StringColumn || c instanceof BytesColumn || c instanceof BoolColumn;\n}","tryCatchPattern":null,"preventionTips":["Map custom reader data to stock Column types.","Keep DataX core updated so new Column types gain filter support."],"tags":["datax","transformer","dx-filter","column-type"],"backgroundTag":null,"analyzedSha":"80ec23d5c5328eb90ca364d2749e92dfaf44541e","analyzedAt":"2026-08-14T15:33:51.187Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}