risingwavelabs/risingwave · error · ConnectorError

MULTI POINT type not supported

Error message

MULTI POINT type not supported

What it means

Type-mapping guard in mysql_type_to_rw_type: a MULTIPOINT column in a MySQL CDC table cannot be translated to any RisingWave type, so schema parsing/replication for tables containing this spatial type is rejected with this error.

Source

Thrown at src/connector/src/source/cdc/external/mysql.rs:435

        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());
        }
        ColumnType::Unknown(_) => {
            return Err(anyhow!("Unknown MySQL data type").into());
        }
    };

    Ok(dtype)
}

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Exclude the MULTIPOINT column from replication.
  2. Convert to WKT text upstream (ST_AsText) and replicate that.
  3. Use a non-CDC ingestion path.
  4. Verify whether a newer RisingWave supports spatial types.

Example fix

// before
CREATE TABLE clusters (id INT PRIMARY KEY, pts MULTIPOINT);
// after
CREATE TABLE clusters (id INT PRIMARY KEY, pts_wkt TEXT AS (ST_AsText(pts)));
Defensive patterns

Strategy: validation

Validate before calling

if col.data_type.eq_ignore_ascii_case("MULTIPOINT") {
    return Err(format!("column '{}' is MULTIPOINT; unsupported for MySQL CDC", col.name));
}

Try / catch

match connect_mysql_cdc(schema).await {
    Err(e) if e.to_string().contains("MULTI POINT") => eprintln!("Exclude or text-serialize MULTIPOINT column"),
    other => other?,
}

Prevention

When it happens

Trigger: Schema discovery (connect) or schema-change parsing encounters MULTIPOINT in the upstream table.

Common situations: Tables storing clusters of points (e.g. multi-sensor readings); CDC setup or a new MULTIPOINT column added upstream triggers it.

Related errors


AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11). Data as JSON: /api/errors/dd0ea281e49cdea0. Report an issue: GitHub.