risingwavelabs/risingwave · error · ConnectorError
POINT type not supported
Error message
POINT type not supported
What it means
mysql_type_to_rw_type maps MySQL column types to RisingWave types and refuses types RW cannot represent or consume from CDC. When the MySQL schema contains a POINT (spatial) column, the mapper aborts with this error instead of producing a DataType. The type is rejected early so table creation/schema-change parsing fails before any data flows.
Source
Thrown at src/connector/src/source/cdc/external/mysql.rs:426
ColumnType::Binary(_) | ColumnType::Varbinary(_) => DataType::Bytea,
ColumnType::Text(_)
| ColumnType::TinyText(_)
| ColumnType::MediumText(_)
| ColumnType::LongText(_) => DataType::Varchar,
ColumnType::Blob(_)
| ColumnType::TinyBlob
| ColumnType::MediumBlob
| ColumnType::LongBlob => DataType::Bytea,
ColumnType::Enum(_) => DataType::Varchar,
ColumnType::Json => DataType::Jsonb,
ColumnType::Set(_) => {
return Err(anyhow!("SET type not supported").into());
}
ColumnType::Geometry(_) => {
return Err(anyhow!("GEOMETRY type not supported").into());
}
ColumnType::Point(_) => {
return Err(anyhow!("POINT type not supported").into());
}
ColumnType::LineString(_) => {
return Err(anyhow!("LINE string type not supported").into());
}
ColumnType::Polygon(_) => {
return Err(anyhow!("POLYGON type not supported").into());
}
ColumnType::MultiPoint(_) => {
return Err(anyhow!("MULTI POINT type not supported").into());
}
ColumnType::MultiLineString(_) => {
return Err(anyhow!("MULTI LINE STRING type not supported").into());
}
ColumnType::MultiPolygon(_) => {
return Err(anyhow!("MULTI POLYGON type not supported").into());
}
ColumnType::GeometryCollection(_) => {
return Err(anyhow!("GEOMETRY COLLECTION type not supported").into());View on GitHub (pinned to 6469eb736d)
Solutions
- Drop or exclude the POINT column from the CDC table definition (create a view/replica table without spatial columns and CDC that).
- Cast the POINT column to a textual form upstream (e.g. ST_AsText(geom) via generated column) so it maps to VARCHAR.
- If spatial support is needed, file/vote for a RisingWave feature request; alternatively land the data via a non-CDC connector that serializes geometry to WKT.
- Check for a newer RisingWave release that may have added spatial type support for MySQL CDC.
Example fix
// before (upstream MySQL) CREATE TABLE places (id INT PRIMARY KEY, loc POINT NOT NULL); // after CREATE TABLE places (id INT PRIMARY KEY, loc TEXT AS (ST_AsText(loc)));
Defensive patterns
Strategy: validation
Validate before calling
// Before creating a MySQL CDC table, check the upstream schema:
let unsupported = ["POINT", "GEOMETRY", "LINESTRING", "POLYGON", "MULTIPOINT", "MULTILINESTRING", "MULTIPOLYGON", "GEOMETRYCOLLECTION"];
for col in mysql_columns {
if unsupported.iter().any(|t| col.data_type.eq_ignore_ascii_case(t)) {
return Err(format!("column {} has unsupported spatial type {}", col.name, col.data_type));
}
} Try / catch
match create_mysql_cdc_table().await {
Err(e) if e.to_string().contains("type not supported") => {
eprintln!("Drop or convert spatial column before CDC: {e}");
}
Err(e) => return Err(e),
Ok(t) => t,
} Prevention
- Audit upstream MySQL tables for spatial types (information_schema.COLUMNS WHERE DATA_TYPE IN ('point','geometry',...)) before enabling CDC.
- Expose spatial data as WKT text via generated columns.
- Keep CDC tables limited to scalar columns.
- Review RisingWave release notes for spatial CDC support before adding geometry columns.
When it happens
Trigger: Creating a CDC table or shared source whose upstream MySQL table has a column of MySQL type POINT (or running parse_schema_change over such a DDL); also triggered by the test path test_mysql_serial_maps_as_unsigned_bigint if a POINT column is present.
Common situations: Upstream MySQL tables using spatial features (e.g. location/geofencing tables with POINT columns from ORM migrations like Django GeoDjango or Rails with postgis-style geometry); users attempt `CREATE TABLE ... WITH ( connector = 'mysql-cdc' )` against such tables.
Related errors
- LINE string type not supported
- POLYGON type not supported
- MULTI POINT type not supported
- MULTI LINE STRING type not supported
- MULTI POLYGON type not supported
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/3f2156f3425d7867.
Report an issue: GitHub.