@@ -4,7 +4,7 @@ use convergence::protocol::{DataTypeOid, ErrorResponse, FieldDescription, SqlSta
44use convergence:: protocol_ext:: DataRowBatch ;
55use datafusion:: arrow:: array:: {
66 BooleanArray , Date32Array , Date64Array , Float16Array , Float32Array , Float64Array , Int16Array , Int32Array ,
7- Int64Array , Int8Array , StringArray , TimestampMicrosecondArray , TimestampMillisecondArray , TimestampNanosecondArray ,
7+ Int64Array , Int8Array , StringArray , StringViewArray , TimestampMicrosecondArray , TimestampMillisecondArray , TimestampNanosecondArray ,
88 TimestampSecondArray , UInt16Array , UInt32Array , UInt64Array , UInt8Array ,
99} ;
1010use datafusion:: arrow:: datatypes:: { DataType , Schema , TimeUnit } ;
@@ -48,6 +48,7 @@ pub fn record_batch_to_rows(arrow_batch: &RecordBatch, pg_batch: &mut DataRowBat
4848 DataType :: Float32 => row. write_float4 ( array_val ! ( Float32Array , col, row_idx) ) ,
4949 DataType :: Float64 => row. write_float8 ( array_val ! ( Float64Array , col, row_idx) ) ,
5050 DataType :: Utf8 => row. write_string ( array_val ! ( StringArray , col, row_idx) ) ,
51+ DataType :: Utf8View => row. write_string ( array_val ! ( StringViewArray , col, row_idx) ) ,
5152 DataType :: Date32 => {
5253 row. write_date ( array_val ! ( Date32Array , col, row_idx, value_as_date) . ok_or_else ( || {
5354 ErrorResponse :: error ( SqlState :: InvalidDatetimeFormat , "unsupported date type" )
@@ -103,6 +104,7 @@ pub fn data_type_to_oid(ty: &DataType) -> Result<DataTypeOid, ErrorResponse> {
103104 DataType :: Float16 | DataType :: Float32 => DataTypeOid :: Float4 ,
104105 DataType :: Float64 => DataTypeOid :: Float8 ,
105106 DataType :: Utf8 => DataTypeOid :: Text ,
107+ DataType :: Utf8View => DataTypeOid :: Text ,
106108 DataType :: Date32 | DataType :: Date64 => DataTypeOid :: Date ,
107109 DataType :: Timestamp ( _, None ) => DataTypeOid :: Timestamp ,
108110 other => {
0 commit comments