{"record":{"id":"68b9f9ea95d40d3d","repo":"risingwavelabs/risingwave","slug":"unsupported-sql-server-data-type-column-nam","errorCode":null,"errorMessage":"Unsupported Sql Server data type: {:?}, column name: {}","messagePattern":"Unsupported Sql Server data type: (.+?), column name: (.+?)","errorType":"validation","errorClass":"ConnectorError","httpStatus":null,"severity":"error","filePath":"src/connector/src/source/cdc/external/sql_server.rs","lineNumber":205,"sourceCode":"fn mssql_type_to_rw_type(col_type: &str, col_name: &str) -> ConnectorResult<DataType> {\n    let dtype = match col_type.to_lowercase().as_str() {\n        \"bit\" => DataType::Boolean,\n        \"binary\" | \"varbinary\" => DataType::Bytea,\n        \"tinyint\" | \"smallint\" => DataType::Int16,\n        \"integer\" | \"int\" => DataType::Int32,\n        \"bigint\" => DataType::Int64,\n        \"real\" => DataType::Float32,\n        \"float\" => DataType::Float64,\n        \"decimal\" | \"numeric\" => DataType::Decimal,\n        \"date\" => DataType::Date,\n        \"time\" => DataType::Time,\n        \"datetime\" | \"datetime2\" | \"smalldatetime\" => DataType::Timestamp,\n        \"datetimeoffset\" => DataType::Timestamptz,\n        \"char\" | \"nchar\" | \"varchar\" | \"nvarchar\" | \"text\" | \"ntext\" | \"xml\"\n        | \"uniqueidentifier\" => DataType::Varchar,\n        \"money\" => DataType::Decimal,\n        mssql_type => {\n            return Err(anyhow!(\n                \"Unsupported Sql Server data type: {:?}, column name: {}\",\n                mssql_type,\n                col_name\n            )\n            .into());\n        }\n    };\n    Ok(dtype)\n}\n\n#[derive(Debug)]\npub struct SqlServerExternalTableReader {\n    rw_schema: Schema,\n    pk_indices: Vec<usize>,\n    field_names: String,\n    client: tokio::sync::Mutex<SqlServerClient>,\n}\n","sourceCodeStart":187,"sourceCodeEnd":223,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/source/cdc/external/sql_server.rs#L187-L223","documentation":"SqlServer CDC schema mapping fails when a source column has a SQL Server data type that has no RisingWave DataType mapping in `mssql_type_to_rw_type`. The function matches a fixed whitelist of type names (ints, decimals, date/time, strings, money, etc.) and bails for anything else so unknown data is never silently mis-typed.","triggerScenarios":"CDC source on a SQL Server table whose column type is not in the whitelist, e.g. `hierarchyid`, `geography`, `geometry`, `sql_variant`, `binary`/`varbinary`/`image`, `timestamp`/`rowversion`, `bit` variants or user-defined types, discovered during `connect` while building the table schema.","commonSituations":"Syncing legacy SQL Server tables with spatial or binary columns; tables with rowversion columns used for optimistic concurrency; user-defined type aliases that resolve to unsupported base types.","solutions":["Drop or exclude the unsupported column from the CDC table (create a view or a table without it).","ALTER the column to a supported equivalent, e.g. varbinary -> varchar (base64/hex), geography -> varchar.","Add a mapping arm for the type in `mssql_type_to_rw_type` in src/connector/src/source/cdc/external/sql_server.rs and rebuild."],"exampleFix":"// before\nmssql_type => {\n    return Err(anyhow!(\"Unsupported Sql Server data type: {:?}, column name: {}\", mssql_type, col_name).into());\n}\n// after (support binary types as varchar via hex)\n\"binary\" | \"varbinary\" | \"image\" => DataType::Varchar,\nmssql_type => {\n    return Err(anyhow!(\"Unsupported Sql Server data type: {:?}, column name: {}\", mssql_type, col_name).into());\n}","handlingStrategy":"validation","validationCode":"-- Before creating the CDC source, check column types:\nSELECT name, system_type_id, TYPE_NAME(system_type_id) AS type_name\nFROM sys.columns WHERE object_id = OBJECT_ID('dbo.mytable');\n-- Ensure every type is in the supported set: tinyint,smallint,int,bigint,bit,decimal,numeric,\n-- float,real,date,time,datetime,datetime2,smalldatetime,datetimeoffset,char,nchar,varchar,nvarchar,text,ntext,xml,uniqueidentifier,money,smallmoney","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Audit table schemas with sys.columns before onboarding to CDC.","Avoid spatial, binary, rowversion and sql_variant columns in CDC tables.","Track RisingWave release notes for newly supported SQL Server types."],"tags":["cdc","sql-server","schema","unsupported-type"],"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-23T08:17:48.524Z"}