{"record":{"id":"12583e875f33419d","repo":"risingwavelabs/risingwave","slug":"vector-is-not-supported-for-bigquery-sink","errorCode":null,"errorMessage":"VECTOR is not supported for BigQuery sink.","messagePattern":"VECTOR is not supported for BigQuery sink\\.","errorType":"validation","errorClass":"SinkError::BigQuery","httpStatus":null,"severity":"error","filePath":"src/connector/src/sink/big_query.rs","lineNumber":433,"sourceCode":"                Ok(format!(\"STRUCT<{}>\", elements_vec.join(\", \")))\n            }\n            DataType::List(l) => {\n                let element_string = Self::get_string_and_check_support_from_datatype(l.elem())?;\n                Ok(format!(\"ARRAY<{}>\", element_string))\n            }\n            DataType::Bytea => Ok(\"BYTES\".to_owned()),\n            DataType::Jsonb => Ok(\"JSON\".to_owned()),\n            DataType::Variant => Err(SinkError::BigQuery(anyhow::anyhow!(\n                \"VARIANT is not supported for BigQuery sink.\"\n            ))),\n            DataType::Serial => Ok(\"INT64\".to_owned()),\n            DataType::Int256 => Err(SinkError::BigQuery(anyhow::anyhow!(\n                \"INT256 is not supported for BigQuery sink.\"\n            ))),\n            DataType::Map(_) => Err(SinkError::BigQuery(anyhow::anyhow!(\n                \"MAP is not supported for BigQuery sink.\"\n            ))),\n            DataType::Vector(_) => Err(SinkError::BigQuery(anyhow::anyhow!(\n                \"VECTOR is not supported for BigQuery sink.\"\n            ))),\n        }\n    }\n\n    fn map_field(rw_field: &Field) -> Result<TableFieldSchema> {\n        let tfs = match &rw_field.data_type {\n            DataType::Boolean => TableFieldSchema::bool(&rw_field.name),\n            DataType::Int16 | DataType::Int32 | DataType::Int64 | DataType::Serial => {\n                TableFieldSchema::integer(&rw_field.name)\n            }\n            DataType::Float32 => {\n                return Err(SinkError::BigQuery(anyhow::anyhow!(\n                    \"REAL is not supported for BigQuery sink. Please convert to FLOAT64 or other supported types.\"\n                )));\n            }\n            DataType::Float64 => TableFieldSchema::float(&rw_field.name),\n            DataType::Decimal => TableFieldSchema::numeric(&rw_field.name),","sourceCodeStart":415,"sourceCodeEnd":451,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/sink/big_query.rs#L415-L451","documentation":"The BigQuery sink's type mapping function `get_string_and_check_support_from_datatype` encountered `DataType::Vector`, which has no mapping to a BigQuery column type. VECTOR (embedding/vector-index) columns are not supported by this sink, so it raises `SinkError::BigQuery` and halts.","triggerScenarios":"Creating or validating a BigQuery sink whose source schema includes a VECTOR-typed column (e.g. from a vector index or embedding column).","commonSituations":"Users embedding ML vectors in RisingWave tables and attempting to replicate them to BigQuery; vector types are a newer RisingWave feature and most sinks predate their support.","solutions":["Exclude the vector column from the sink by selecting only supported columns.","Serialize the vector to JSONB or VARCHAR (e.g. cast to a string representation) before sinking.","Store the vector as an ARRAY<FLOAT64>-compatible representation (e.g. float array) if downstream BigQuery usage allows."],"exampleFix":"// before\nCREATE SINK s FROM mv WITH (...) TYPE bigquery; -- mv.embedding VECTOR(3)\n\n// after: expose vector as JSON string\nCREATE MATERIALIZED VIEW mv2 AS SELECT cast_to_json(embedding) AS embedding FROM mv;\nCREATE SINK s FROM mv2 WITH (...) TYPE bigquery;","handlingStrategy":"validation","validationCode":"-- Verify no VECTOR columns before sinking:\nSELECT column_name, data_type\nFROM rw_catalog.rw_columns\nWHERE relation_id = ('<schema>.<mv_name>')::regclass\n  AND data_type ILIKE 'vector%';","typeGuard":"fn is_bigquery_supported(dt: &DataType) -> bool {\n    !matches!(dt, DataType::Vector(_) | DataType::Map(_) | DataType::Int256 | DataType::Variant)\n}","tryCatchPattern":null,"preventionTips":["Keep vector/embedding columns out of sinked views; project them into separate non-sinked MVs.","Serialize vectors to JSONB when cross-store export is required.","Re-check sink support when upgrading RisingWave, as new types may lack sink mappings."],"tags":["bigquery","sink","unsupported-type","vector"],"backgroundTag":"unsupported-operation","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"}