@@ -24,8 +24,8 @@ use arrow_schema::*;
2424use datafusion_common:: field_not_found;
2525use datafusion_common:: internal_err;
2626use datafusion_expr:: WindowUDF ;
27- use sqlparser:: ast:: ExactNumberInfo ;
2827use sqlparser:: ast:: TimezoneInfo ;
28+ use sqlparser:: ast:: { ArrayElemTypeDef , ExactNumberInfo } ;
2929use sqlparser:: ast:: { ColumnDef as SQLColumnDef , ColumnOption } ;
3030use sqlparser:: ast:: { DataType as SQLDataType , Ident , ObjectName , TableAlias } ;
3131
@@ -297,14 +297,15 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
297297
298298 pub ( crate ) fn convert_data_type ( & self , sql_type : & SQLDataType ) -> Result < DataType > {
299299 match sql_type {
300- SQLDataType :: Array ( Some ( inner_sql_type) ) => {
300+ SQLDataType :: Array ( ArrayElemTypeDef :: AngleBracket ( inner_sql_type) )
301+ | SQLDataType :: Array ( ArrayElemTypeDef :: SquareBracket ( inner_sql_type) ) => {
301302 let data_type = self . convert_simple_data_type ( inner_sql_type) ?;
302303
303304 Ok ( DataType :: List ( Arc :: new ( Field :: new (
304305 "field" , data_type, true ,
305306 ) ) ) )
306307 }
307- SQLDataType :: Array ( None ) => {
308+ SQLDataType :: Array ( ArrayElemTypeDef :: None ) => {
308309 not_impl_err ! ( "Arrays with unspecified type is not supported" )
309310 }
310311 other => self . convert_simple_data_type ( other) ,
@@ -330,7 +331,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
330331 SQLDataType :: Char ( _)
331332 | SQLDataType :: Varchar ( _)
332333 | SQLDataType :: Text
333- | SQLDataType :: String => Ok ( DataType :: Utf8 ) ,
334+ | SQLDataType :: String ( _ ) => Ok ( DataType :: Utf8 ) ,
334335 SQLDataType :: Timestamp ( None , tz_info) => {
335336 let tz = if matches ! ( tz_info, TimezoneInfo :: Tz )
336337 || matches ! ( tz_info, TimezoneInfo :: WithTimeZone )
@@ -400,7 +401,12 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
400401 | SQLDataType :: Dec ( _)
401402 | SQLDataType :: BigNumeric ( _)
402403 | SQLDataType :: BigDecimal ( _)
403- | SQLDataType :: Clob ( _) => not_impl_err ! (
404+ | SQLDataType :: Clob ( _)
405+ | SQLDataType :: Bytes ( _)
406+ | SQLDataType :: Int64
407+ | SQLDataType :: Float64
408+ | SQLDataType :: Struct ( _)
409+ => not_impl_err ! (
404410 "Unsupported SQL type {sql_type:?}"
405411 ) ,
406412 }
0 commit comments