{"record":{"id":"c60434c62c95135e","repo":"apache/seatunnel","slug":"the-column-named-s-is-not-exists","errorCode":null,"errorMessage":"The column named [%s] is not exists","messagePattern":"The column named \\[(.+?)\\] is not exists","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-paimon/src/main/java/org/apache/seatunnel/connectors/seatunnel/paimon/source/converter/SqlToPaimonPredicateConverter.java","lineNumber":403,"sourceCode":"                    return Long.parseLong(strValue);\n                case FLOAT:\n                    return Float.parseFloat(strValue);\n                case DOUBLE:\n                    return Double.parseDouble(strValue);\n                case DATE:\n                    return DateTimeUtils.toInternal(DateUtils.parse(strValue));\n                case TIME_WITHOUT_TIME_ZONE:\n                    return DateTimeUtils.toInternal(TimeUtils.parse(strValue));\n                case TIMESTAMP_WITHOUT_TIME_ZONE:\n                case TIMESTAMP_WITH_LOCAL_TIME_ZONE:\n                    return Timestamp.fromLocalDateTime(\n                            org.apache.seatunnel.common.utils.DateTimeUtils.parse(strValue));\n                default:\n                    throw new IllegalArgumentException(\n                            \"Unsupported Paimon data type :\" + dataType.getTypeRoot());\n            }\n        }\n        throw new IllegalArgumentException(\n                String.format(\"The column named [%s] is not exists\", columnName));\n    }\n\n    private static Object getJSQLParserDataTypeValue(Expression expression) {\n        if (expression instanceof LongValue) {\n            return ((LongValue) expression).getValue();\n        } else if (expression instanceof StringValue || expression instanceof HexValue) {\n            return BinaryString.fromString(((StringValue) expression).getValue());\n        } else if (expression instanceof DoubleValue) {\n            return ((DoubleValue) expression).getValue();\n        } else if (expression instanceof DateValue) {\n            return ((DateValue) expression).getValue();\n        } else if (expression instanceof TimeValue) {\n            return ((TimeValue) expression).getValue();\n        } else if (expression instanceof TimestampValue) {\n            return ((TimestampValue) expression).getValue();\n        }\n        throw new IllegalArgumentException(\"Unsupported expression value type: \" + expression);","sourceCodeStart":385,"sourceCodeEnd":421,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-paimon/src/main/java/org/apache/seatunnel/connectors/seatunnel/paimon/source/converter/SqlToPaimonPredicateConverter.java#L385-L421","documentation":"convertValueByPaimonDataType looks up the column name in the provided Paimon RowType to find its data type; if the name is absent it throws this error. Usually the WHERE clause references a column not in the table schema, or with mismatched quoting/casing.","triggerScenarios":"A WHERE clause references a column missing from the rowType: misspelled name, wrong case in a case-sensitive schema, leftover column after schema change, or a rowType that differs from the queried table.","commonSituations":"Typos in SQL filters; schema drift (column renamed/dropped) while cached SQL remains; quoted identifiers whose retained quotes/case do not match rowType field names.","solutions":["Check the column name spelling against the Paimon table schema.","Match casing exactly to the declared field name (lookup is name-exact).","Strip quotes/backticks consistently; use the bare declared name in the rowType lookup.","If the schema changed, update the query or the rowType passed to the converter."],"exampleFix":"// before: WHERE usernme = 'bob' | // after: WHERE username = 'bob'","handlingStrategy":"validation","validationCode":"Set<String> cols = new HashSet<>(rowType.getFieldNames()); String bare = name.replace(\"`\",\"\").replace(\"\\\"\",\"\"); if (!cols.contains(bare)) throw new IllegalArgumentException(\"Unknown filter column: \" + bare);","typeGuard":null,"tryCatchPattern":"try { pred = converter.convertSqlWhereToPaimonPredicate(where, rowType); } catch (IllegalArgumentException e) { if (e.getMessage().contains(\"is not exists\")) throw new IllegalArgumentException(\"Unknown filter column; check schema\", e); throw e; }","preventionTips":["Validate all WHERE column names against the live table schema before pushdown.","Match case exactly and strip quotes/backticks consistently.","Re-validate cached queries after schema evolution."],"tags":["paimon","sql","schema","column-not-found"],"backgroundTag":"resource-not-found","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}