{"record":{"id":"3f2156f3425d7867","repo":"risingwavelabs/risingwave","slug":"point-type-not-supported","errorCode":null,"errorMessage":"POINT type not supported","messagePattern":"POINT type not supported","errorType":"validation","errorClass":"ConnectorError","httpStatus":null,"severity":"error","filePath":"src/connector/src/source/cdc/external/mysql.rs","lineNumber":426,"sourceCode":"        ColumnType::Binary(_) | ColumnType::Varbinary(_) => DataType::Bytea,\n        ColumnType::Text(_)\n        | ColumnType::TinyText(_)\n        | ColumnType::MediumText(_)\n        | ColumnType::LongText(_) => DataType::Varchar,\n        ColumnType::Blob(_)\n        | ColumnType::TinyBlob\n        | ColumnType::MediumBlob\n        | ColumnType::LongBlob => DataType::Bytea,\n        ColumnType::Enum(_) => DataType::Varchar,\n        ColumnType::Json => DataType::Jsonb,\n        ColumnType::Set(_) => {\n            return Err(anyhow!(\"SET type not supported\").into());\n        }\n        ColumnType::Geometry(_) => {\n            return Err(anyhow!(\"GEOMETRY type not supported\").into());\n        }\n        ColumnType::Point(_) => {\n            return Err(anyhow!(\"POINT type not supported\").into());\n        }\n        ColumnType::LineString(_) => {\n            return Err(anyhow!(\"LINE string type not supported\").into());\n        }\n        ColumnType::Polygon(_) => {\n            return Err(anyhow!(\"POLYGON type not supported\").into());\n        }\n        ColumnType::MultiPoint(_) => {\n            return Err(anyhow!(\"MULTI POINT type not supported\").into());\n        }\n        ColumnType::MultiLineString(_) => {\n            return Err(anyhow!(\"MULTI LINE STRING type not supported\").into());\n        }\n        ColumnType::MultiPolygon(_) => {\n            return Err(anyhow!(\"MULTI POLYGON type not supported\").into());\n        }\n        ColumnType::GeometryCollection(_) => {\n            return Err(anyhow!(\"GEOMETRY COLLECTION type not supported\").into());","sourceCodeStart":408,"sourceCodeEnd":444,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/source/cdc/external/mysql.rs#L408-L444","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before (upstream MySQL)\nCREATE TABLE places (id INT PRIMARY KEY, loc POINT NOT NULL);\n// after\nCREATE TABLE places (id INT PRIMARY KEY, loc TEXT AS (ST_AsText(loc)));","handlingStrategy":"validation","validationCode":"// Before creating a MySQL CDC table, check the upstream schema:\nlet unsupported = [\"POINT\", \"GEOMETRY\", \"LINESTRING\", \"POLYGON\", \"MULTIPOINT\", \"MULTILINESTRING\", \"MULTIPOLYGON\", \"GEOMETRYCOLLECTION\"];\nfor col in mysql_columns {\n    if unsupported.iter().any(|t| col.data_type.eq_ignore_ascii_case(t)) {\n        return Err(format!(\"column {} has unsupported spatial type {}\", col.name, col.data_type));\n    }\n}","typeGuard":null,"tryCatchPattern":"match create_mysql_cdc_table().await {\n    Err(e) if e.to_string().contains(\"type not supported\") => {\n        eprintln!(\"Drop or convert spatial column before CDC: {e}\");\n    }\n    Err(e) => return Err(e),\n    Ok(t) => t,\n}","preventionTips":["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."],"tags":["cdc","mysql","unsupported-type","spatial"],"backgroundTag":"unsupported-enum-value","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}