{"record":{"id":"8cb47af66a4e294d","repo":"risingwavelabs/risingwave","slug":"don-t-support-float32-and-int256","errorCode":null,"errorMessage":"Don't support Float32 and Int256","messagePattern":"Don't support Float32 and Int256","errorType":"validation","errorClass":"SinkError::BigQuery","httpStatus":null,"severity":"error","filePath":"src/connector/src/sink/big_query.rs","lineNumber":1009,"sourceCode":"            field.r#type = Some(field_descriptor_proto::Type::Message.into());\n            let name = format!(\"Struct{}\", name);\n            let sub_proto = build_protobuf_schema(s.iter(), name.clone())?;\n            field.type_name = Some(name);\n            return Ok((field, Some(sub_proto)));\n        }\n        DataType::List(l) => {\n            let (mut field, proto) = build_protobuf_field(l.elem(), index, name)?;\n            field.label = Some(field_descriptor_proto::Label::Repeated.into());\n            return Ok((field, proto));\n        }\n        DataType::Bytea => field.r#type = Some(field_descriptor_proto::Type::Bytes.into()),\n        DataType::Jsonb => field.r#type = Some(field_descriptor_proto::Type::String.into()),\n        DataType::Variant => {\n            return Err(SinkError::BigQuery(anyhow::anyhow!(\"Don't support Variant\")));\n        }\n        DataType::Serial => field.r#type = Some(field_descriptor_proto::Type::Int64.into()),\n        DataType::Float32 | DataType::Int256 => {\n            return Err(SinkError::BigQuery(anyhow::anyhow!(\n                \"Don't support Float32 and Int256\"\n            )));\n        }\n        DataType::Map(_) => return Err(SinkError::BigQuery(anyhow::anyhow!(\"Don't support Map\"))),\n        DataType::Vector(_) => {\n            return Err(SinkError::BigQuery(anyhow::anyhow!(\"Don't support Vector\")));\n        }\n    }\n    Ok((field, None))\n}\n\n#[cfg(test)]\nmod test {\n\n    use std::assert_matches;\n    use std::collections::HashMap;\n\n    use risingwave_common::catalog::{Field, Schema};","sourceCodeStart":991,"sourceCodeEnd":1027,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/sink/big_query.rs#L991-L1027","documentation":"During protobuf schema construction for the BigQuery sink, FLOAT32 and INT256 column types have no supported protobuf field mapping, so build_protobuf_field returns this error and sink creation fails. The sink intentionally rejects these types instead of silently lossy-casting.","triggerScenarios":"BigQuerySinkWriter::new -> build_protobuf_schema encounters a column of DataType::Float32 or DataType::Int256 in the sink schema.","commonSituations":"Sinking a table with `real`/float32 columns or hugeint/int256 columns to BigQuery; upstream MV type changes introducing these types.","solutions":["Cast FLOAT32 columns to DOUBLE PRECISION (Float64) in the sink query: `CREATE SINK s AS SELECT x::double precision AS x FROM mv`.","Cast INT256 columns to BIGINT if values fit, or to a supported DECIMAL mapping.","Exclude the offending column from the sink schema via an explicit column list.","Request support for these types in the BigQuery connector if needed."],"exampleFix":"// before\nCREATE SINK s FROM mv;  -- mv.val is real\n// after\nCREATE SINK s AS SELECT id, val::double AS val FROM mv;","handlingStrategy":"validation","validationCode":"-- Reject Float32/Int256 columns before CREATE SINK:\n-- inspect the schema and cast: float32 -> double precision, int256 -> bigint/decimal.","typeGuard":null,"tryCatchPattern":"match sink_creation {\n    Err(SinkError::BigQuery(e)) if e.to_string().contains(\"Don't support Float32 and Int256\") => {\n        // cast offending columns in the sink SELECT and retry\n    }\n    other => other?,\n}","preventionTips":["Prefer DOUBLE PRECISION over REAL/FLOAT32 when targeting BigQuery.","Avoid INT256 columns in tables that feed a BigQuery sink, or cast to BIGINT/DECIMAL.","Add schema checks in CI for pipelines that end in BigQuery sinks.","Re-check sinks after upstream type changes."],"tags":["bigquery","unsupported-type","schema","rust"],"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"}