apache/seatunnel · error · IllegalArgumentException
The column named [ ] is not exists
Error message
The column named [%s] is not exists
What it means
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.
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.
Example fix
// before: WHERE usernme = 'bob' | // after: WHERE username = 'bob'
Defensive patterns
Strategy: validation
Validate before calling
Set<String> cols = new HashSet<>(rowType.getFieldNames()); String bare = name.replace("`","").replace("\"",""); if (!cols.contains(bare)) throw new IllegalArgumentException("Unknown filter column: " + bare); Try / catch
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; } Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- column does not exist.
- Empty value list in IN clause is not allowed
- Error parsing SQL.
- Expected Column expression, but got
- Failed to convert value in IN clause
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c60434c62c95135e.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-paimon/src/main/java/org/apache/seatunnel/connectors/seatunnel/paimon/source/converter/SqlToPaimonPredicateConverter.java:403
return Long.parseLong(strValue);
case FLOAT:
return Float.parseFloat(strValue);
case DOUBLE:
return Double.parseDouble(strValue);
case DATE:
return DateTimeUtils.toInternal(DateUtils.parse(strValue));
case TIME_WITHOUT_TIME_ZONE:
return DateTimeUtils.toInternal(TimeUtils.parse(strValue));
case TIMESTAMP_WITHOUT_TIME_ZONE:
case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
return Timestamp.fromLocalDateTime(
org.apache.seatunnel.common.utils.DateTimeUtils.parse(strValue));
default:
throw new IllegalArgumentException(
"Unsupported Paimon data type :" + dataType.getTypeRoot());
}
}
throw new IllegalArgumentException(
String.format("The column named [%s] is not exists", columnName));
}
private static Object getJSQLParserDataTypeValue(Expression expression) {
if (expression instanceof LongValue) {
return ((LongValue) expression).getValue();
} else if (expression instanceof StringValue || expression instanceof HexValue) {
return BinaryString.fromString(((StringValue) expression).getValue());
} else if (expression instanceof DoubleValue) {
return ((DoubleValue) expression).getValue();
} else if (expression instanceof DateValue) {
return ((DateValue) expression).getValue();
} else if (expression instanceof TimeValue) {
return ((TimeValue) expression).getValue();
} else if (expression instanceof TimestampValue) {
return ((TimestampValue) expression).getValue();
}
throw new IllegalArgumentException("Unsupported expression value type: " + expression);View on GitHub (pinned to cf67b549a7)